A product manager comes up to a software developer and asks: ‘‘This is the scope of our project. The deadline is in May. Is it doable?’’ ‘‘Well, that’s gonna be tough, but I guess I can do it’’ replies the developer, sighing. ‘‘Alright, but I need our team to commit to that deadline’’ adds the manager. “Hmmm, I don’t know…I really don’t know” concludes the software engineer.
In some cases, developers don’t even have such conversations with managers. They’re just told what work needs to be done and when the due date is. Product managers may feel puzzled why exactly it’s so challenging to get development teams to commit to deadlines, assess how long it will take to develop a feature, and create accurate timelines before beginning to work on the project.
Certainly, when you know what you’re developing, you can say how long it will take. Still, in reality, when you’re building software, you spend much time not only on production, but also on exploring and identifying the problem on the spot. In this article, the JatApp team explains why deadline-driven development doesn’t work and what you can do to deliver the quality product on time.
What’s bad about meeting hard deadlines?
One of the major challenges in software development is to set an accurate date for a project, which you haven’t even started and entirely explored yet. Some companies fall into a trap of deadline-driven development, imposing arbitrary deadlines in an attempt to increase engineers’ productivity.
Whenever team members commit to a specific due date, they put their reputation at risk. Deadline-oriented software engineers and product managers want to show how professional they are by building what was promised within the set period of time. As an outcome, development teams may work long hours to deliver the project without delays, which may stress out employees or affect the quality of the product.
Domino effect of deadline-driven development
It burns out development teams
The closer your deadline is coming, the more likely you’ll feel pressured to finish the work as fast as possible. In the deadline-driven environment, one of the common ways to do this is to work harder. Meeting deadlines may feel good and is likely to make teammates look like supermen, if there are no quality issues, of course.
Yet, building features in haste burns out software developers. The recent survey shows 47% of developers suffer from burnout due to high workload. It goes without saying that there are situations when extra effort is needed. But doing it at the expense of the health and well-being of employees shouldn’t be the case. Having successfully met an aggressive deadline, worn out employees won’t be able to work productively in future and problems with the product quality are likely to arise at some point.
Reasons for developers’ burnout
It compromises product quality
The more pressured team members feel because of the due date, the more likely they are to dismiss things that might seem less important or critical. It’s not uncommon when teams shortcut the last step in software engineering, which is testing the product. An effective software quality process can be as time-consuming as programming itself.
The outcomes of such a rush are far from beneficial for a client. Surely, customers won’t be satisfied with missed deadlines. But they’ll have even more pains, if the product arrives on time but has serious quality issues. In this way, clients will have to wait anyway until teams deliver the product they expected.
Effective ways how to cope with deadlines
Whether it’s due to a requirement change or bug popup, projects may take a longer time than estimated at the planning stage. Yet, you can’t completely get rid of software development deadlines. Without delivery dates, teams may be tempted to procrastinate, lack a clear goal and a sense of accomplishment. Software development companies that deliver projects without delays have a competitive advantage over other market players.
As product teams can’t completely ignore project deadlines, the only possible solution is to manage them effectively. Here are four proven strategies that will help you make peace with your deadlines.
Set dates ranges instead of firm deadlines
When building a product roadmap for long-term projects (say for one to three years), product managers should opt for dates ranges instead of set-in-stone due dates. This would not only help to get a buy-in from internal stakeholders but also ensure that the company’s reputation won’t suffer in case an actual delivery is shifted by a few weeks or so. What’s more, setting flexible deadlines makes it easier to timely respond to changes in client requirements or market demands.
Effective roadmaps need to provide general guidance rather than a detailed concrete plan. Many product managers set deadlines for team tasks at either the quarterly or monthly level. As an example, below you can see a roadmap with tasks planned quarterly.
Break a big project into smaller chunks
As a rule of thumb, the larger the project, the more challenging it becomes to set a realistic deadline due to team dependencies. If the project has too many dependencies, product managers are more likely to fail when trying to align teamwork and set correct due dates for everyone.
Agile teams resolve this problem by breaking big projects into smaller increments. When team members frequently provide smaller chunks of product value, there’s less need to align the work of the entire team. As a result, it becomes easier to define a correct due date for teammates to focus on.
Agile approach to development
Story mapping is a commonly used approach to make big projects in smaller iterations. This method allows teams to identify and prioritize tasks to meet deadlines. In other words, you can define what brings the most value to end users and need to be delivered sooner and what can wait for future releases.
Example of story mapping
Build a minimum viable product (MVP) first
When you deliver the project in small pieces, at some point you’ll have enough releases to go live with a minimum viable product (MVP). An MVP is the basic version of the product that has only core features. It’s launched to the market with the main goal to understand customers’ response early on. Once you have an MVP, it’s much easier to set realistic expectations for further development. Instead of making promises based on your gut feeling, you can create a more accurate timeline backed up with customer feedback.
Rather than delivering complex functionality right away, make sure that your MVP is of high quality. Otherwise, you risk spending more time fixing the semi-working product missing the actual delivery date. Let’s take Airbnb as an example. The American company committed to building a solid MVP. This allowed its engineering teams to timely test whether travelers prefer locals’ apartments over hotels, make necessary iterations in design and site features, and successfully release the polished version of the product without delays.
MVP of Airbnb
Prioritize quality assurance
If your external stakeholders set a due date in 15 days and development work takes 13 days, there’s a high chance that the final product will be of poor quality. If you commit to the deadline and deliver a product with apparent bugs, your reputation can get damaged more than it would have been if you rejected the proposed timeline in the first place.
No degree of planning or setting specific due dates is going to make software development predictable. Still, you can prevent time waste by making software testing your top priority. Instead of sticking to firm deadlines, concentrate on delivering a working feature every small increment of the project.
The test-driven development (TDD) will help in this regard. The TDD strategy has its roots in Agile software development and focuses on writing the quality tests before the code itself. Since the tests are created in advance, development teams don’t have to spend extra time duplicating test scripts. This helps to optimize the development process, and, as a result, timely deliver the product. The picture below illustrates the TTD approach towards software development.
When a company sets due dates for long-term software projects, they risk setting unrealistic expectations, which morally destroy development teams and result in product quality issues. One of the best solutions to prevent deadline-driven development is not to set specific dates for releases and opt for dates ranges instead. It’s also a good idea to break down a large project into short cycles in order to work towards more feasible goals within small timescales.
Once you have enough feature releases, you can deliver an MVP to gather valuable customer feedback and make iterative improvements, where needed. Last but not the least, you may also want to adopt test-driven development to minimize time waste and release bug-free products that meet client expectations.
Need a hand?
The recommendations that we’ve outlined in this article will assist you in meeting deadlines without compromising product quality and team members’ health. Yet, if you lack the right in-house talent, worrying about missing your deadlines may not go away. If that’s the case, consider outsourcing your project to an experienced and Agile software development company.
Since 2015 JatApp has successfully delivered more than 200 projects thanks to Agile Kanban approach to software development. Our company can help you augment your in-house team with our talented project managers and software engineers. They focus on bringing value to product end users while setting realistic expectations at the stage of project planning. It’s no wonder that this value-driven strategy paved our way towards the title of one of the top 1,000 B2B IT companies in the world.
At JatApp we follow the Agile Kanban methodology for project development
Need help with managing software development project deadlines? Contact us and we’ll come back to you at the soonest possible time.