Project Plans and Gantt Charts have floated around in office corridors since Project Managers have existed in the business of software development.
The thing with folks who run around with these documents and knock on your cubicle three times a day, is not they they are bad human beings.
If they could have helped the developer who is running late at meeting his dead-line they would.
But most of them stopped programming at the first opportunity they found.
Typically here is how a developer manager conversation that I often overhear runs:
Manager: "We are running really late. Do you know what is wrong? Why are we taking so much time?"
Developer: "Not sure. I mean it is pretty straight forward but this nested query keeps timing out for no particular reason. I mean this is a simple cursor that takes the data from a table, throws it in a temporary table and then filters out the data we do not need. We have done similar queries in the past and they all run just fine."
Manager: "How much more time do you think we will need?"
Developer: I'm not sure.
Manager: Can we try to do this by the weekend? Its really important.
Developer: Hmm... okay... I will try my best.
Manager: Thanks. I will go ahead and update the status report.
Can you see what is happening here?
First, none of the parties are at fault here. They are just speaking a different language. The developer is clearly seeking help. He wants someone to sit down and take a look at the nested query. The manager would have loved to help, but he cannot. As much as he would love to help, he knows as much about cursors and queries as the developer knows about the Gantt Charts.
Usually in these cases, the manager also misses an important queue: that the developer is seeking help.
The manager switches to the Gantt Chart mode and talks about how much more time the developer would need.
After a while the developer gets the rules of the game and he stops discussing technical issues with his manager. They try to talk the language of the Gantt Chart, except of course, there is only one problem: Developers suck at speaking that language, specially when it involves saying no.
A disconnect begins.
Very soon, the performance of a developer who was otherwise thriving, takes a steep hard nosedive.
The post is not about criticizing managers or developers. I also don't have a recipe for success here. The only advice I can leave you with, if you are managing a team of developers, is, look for slightest of signs when your developers need help and when you notice that they need help, help them. If you cannot help them because you are not technical enough don't hesitate walking up to anyone in the organization who can genuinely help and ask for it.
Until you do that, chances are, that the nested queries will not automatically speed up by the end of the week.