Controlling deadlines is difficult. We must predict the complexity of the product we are developing and prevent problems.
Sometimes we underestimate the tasks and, consequently, it gets too difficult to deliver the product.
I’ve been through this situation and it’s not cool. The best thing to do is to use your previous experiences to determine if you can or can’t deliver your current project’s product.
I will show you 5 tips to help you to control software deadlines.
1 – Use a software methodology
As you know, there are several software methodologies nowadays. Personally, I really like and recommend SCRUM.
You can tell me, “Oh, but my company would never use it. They are too bureaucratic.” I can tell you that even in very bureaucratic companies it’s possible to use SCRUM.
2 – Adapt the methodology to the company’s culture
It is very difficult to change a company’s culture. It must be changed slowly. We software developers, who know how the methodology works, must help the company implement it. It’s not so difficult.
Even if it’s impossible to follow the SCRUM methodology 100%, using a part of the methodology is MUCH better than not.
So, start using SCRUM slowly, and with some time you will be able to use it better and better.
3 – Mix the best of each methodology
You can mix the most suitable processes for each methodology, too.
For example, you can use Pair Programming from Extreme Programming combined with SCRUM, or you can use KANBAN, too. It’s up to you!
Pair Programming is extremely useful when you have a complex task to solve because it flows much faster. It also can balance your team level faster. If a Junior works with a Senior, the Junior will be able to grow much faster.
Also, it will only be needed on half the number of machines in the company.
The code quality will improve a lot using this technique and, most importantly, it will make bugs easier to find if they exist.
4 – Use complex points
What can be done to measure a task’s complexity? Use complex points!
When you don’t know if you can deliver a product, use complex points.
It’s based on Fibonacci numbers, 1, 2, 3, 5, 8, 13, 21….
So, when you are in the Planning stage, define the complex points of the task.
What must you consider? Technologies, business requirements, and database model. If you don’t know all of these topics, it will be very complex and your complex points will be high!
On the other hand, if you already know the technology, business requirements, and database model, you can assign it lower complex points.
With time, the team will gain maturity and experience with assessing the tasks and assigning complex points. More and more of the team will know if they are able to deliver the product or not.
5 – Learn how to say no
Well, I have said it a lot of times, but do you know why? Because it’s important!
If you know the task is too complex and you won’t be able to deliver it with quality, why would you accept a short deadline? It’s our role to convince managers/clients to give us a suitable deadline. We must elaborate on our arguments to convince them that it is not a wise choice.
So, it’s wiser to develop quality software instead of delivering a product with low quality and lots of bugs. Worse, maybe it would be necessary to throw everything away and start from zero again!
Don’t make this basic mistake of thinking that numbers are more important than quality.