During the old era of the software industry, some companies thought that delivering working software is enough to sustain the business.
It turned out that they were right and
Working software is the primary measure of progress [7th principle in agile manefisto].
But, some companies and developers thought that it’s ok to deliver creepy software as long as it’s working and here where things started to take a wrong direction.
During the last 10 years, there has been an increased use of software in day to day routines, from notes and images taking to managing an entire multi-national organization using an app running on smartphones connected to the internet.
We see smart assistants, social media, e-learning platforms, e-commerce, .., and more.
Anything that was done in the past by working hands is now done by software.
With that increase in software usage especially in mobile apps and the amount of competition between startups and tech giants to acquire customers and increase their engagement, low-quality software is not welcomed anymore.
We are talking about customers using their mobile phones nearly every minute.
They do not expect latency, crashes, losing unsaved work, or bad UI/UX. And they do not care about the technical issues you face due to a sudden increase in traffic or a developer’s mistake in handling service scalability.
With all of that, it’s obvious that delivering only working software is not enough anymore to satisfy customers. And with this in mind, we need to reconsider how we manage, design, develop, and deliver software.
Fast delivery with high quality is a must to sustain customers and business continuity.
But, how to get the job done fast with good quality?
To answer this question, some actions must be taken:
1- Hire the right ones in the right position, not just the best ones.
2- Maintain the product/software roadmap and make it clear to everyone working on it.
3- Hold good communication channels within the team and across teams.
4- Assure that we need fast delivery but quality must not be compromised.
5- Give your team a space to innovate, give it the confidence to get the best out of it.
6- Be honest with your team, keep it informed, and updated.
This list can be long but these are the most important ones in my opinion.
Getting the job done can be challenging in the software industry, if not done the right way.
Having a consistent delivery process and a high bar for quality is not optional in the modern era. And with the harsh competition between companies -thank you internet- combined with high expectations from customers, we need yo revisit how we manage software teams and how we think, plan, and deliver software.