3 To-Dos to Catch Deadlines
Deadlines are generally the nightmares in software development. It’s because we lose deadlines most the time :)
Uncle Bob has a very good video on this below:
Let me share the most important quote in this video:
“The best/correct estimate can be given only after finishing the project”
How’s that sound?
Certainly true from my POV.
So after being agreed on how can we give the correct estimate, let’s come how can we manage the incorrect one :D
1. Break tasks into smaller pieces
We, as developers, like speaking on estimates instead of deadlines. That’s because estimates, as of expected, just guess so they might be wrong. Estimates means no commitment to us.
Deadlines, on the other hand, is an obligation. It means “this is the last day of the project”. That’s why missing the deadlines generally means something bad. That’s why answering a deadline date is hard.
This gets harder when the batch is bigger. Bigger task batch means more things to handle, more uncertainties and risks. Plus, generally business tries to negotiate on the deadline which puts the development team in a harder position.
Keeping all these in mind, breaking tasks into smaller pieces, analyzing them trying to estimate them is easier and more accurate. That’s why instead of thinking about the whole project, try to separate it into modules. More uncoupled modules means easier estimates.
2. Evaluate early the missing possibility
Evaluation of the progress is crucial in a project. Agile software development emphasizes this much. This is important to pace up and see if the deadline still makes sense.
Deadlines are especially important to organize other aspects of the project like marketing, support, etc. That’s why businesses will start setting up plans based on the deadline. Not updating the business on possible misses might cost a lot from different aspects including finance, reputation. This will, of course, affect the development team too. No one would like to work in a team with a bad reputation, I suppose :D
Because of all these reasons, business units other than development should be updated accordingly on the possibility of missing the deadline. Earlier is better as it’ll give more space for them to suit
3. Prioritize
After working some time on a project, there’ll be technical debts, new versions of the used plugins, new approaches that can be imagined for already implemented features, new feature requests from the business.
Managing all this stuff is really important to catch deadlines. Business generally wants extending the planned features without an expansion in the deadline as they chase max. Profit :). This is why being able to say “No” or restructuring accordingly is very important. That means prioritizing the feature requests.
On the other hand, technical tasks must be prioritized as well :) Engineers generally go for perfection in the code which is not required mostly. The code is organic so it changes all the time. Most importantly it must remain maintainable and scalable. Also trying to handle all the possible cases is not required. All work more than this is generally a waste of time. That’s why it might cause missing the deadline.
I discussed 3 different To-Dos which will help of catching the deadlines. Going with estimates is generally the preferred way for the various reasons outlined above but we must be prepared to work with deadlines as well. There’re some edge cases to catch the world for businesses. The competition is getting bigger day by day. That’s why as development teams, we should embrace different requirements/challenges that we can face and be prepared for them.
Deadlines are one of the toughest one and hope this article helps you :)