Tuesday, February 9, 2010

Frequent problems in IT

Someone asked me to outline the most overlooked problems in IT projects. Here they are:

1) Deadlines. In any project that involves more than two people that are responsible for different sides of the project and don't have access to each others work, the carefully determined final deadline will never be met, and will need to be extended by N weeks, where N is the complexity rating of the project on a scale from 1 to 10. The only solution is giving both people a way to fix each others work without waiting for the other person to respond to the requests.

2) Instructions. Any instruction written by a person with a higher level of knowledge than the intended audience will inevitably be misunderstood, misused or ignored. It doesn't matter how many screenshots you include or how many footnotes you make, and even a video that you make of everything that is involved will not help. This point contributes to the huge popularity of the "*** for Dummies" series of books. The only solution is having the person with least knowledge write the actual instruction, while getting all the knowledge from peers or Google.

3) Vendor Tech Support. Never wait for the vendor to "get back to you" - follow up with them within a reasonable time and make them keep their word on it. If they say they will get back to you within 24 hours, contact them in exactly 24 hours and ask for a heads-up. Don't be afraid to "escalate" the problem if you feel that the support person on the other end is incompetent or doesn't understand the problem in depth. Whenever you schedule a project completion date for something that might possibly involve vendor tech support, try to have at least one issue resolved by them so you can test the ground and get a feeling for how good their support really is, so you can factor a couple unexpected problems into the deadline.

4) Replication. Never willingly take ownership of a problem that cannot be replicated consistently, when it cannot be proven that the problem was created by you. Also, the "I can replicate this consistently" statement is the best way to get a vendor to solve something. There is no solution, since you'll inevitably get stuck with strange, infrequent and untraceable issues at some point.

5) User impact. If you have one problem that affects 50% of users once a month, and another problem that affects 2% of users every day (hypotheticaly), always solve the 50% problem first. The 2% can get used to something or even be trained with a workaround for the mean time, but the 50% will complain endlessly and will inevitably get you in trouble.

6) Coffee. Any person that pours the last cup of coffee from a pot and doesn't make a new pot should be punished. Solution: always leave half a cup of coffee in the pot so you cannot be accused of being that person.