Deliver Better Software, Faster
Software Development is a complicated process where it is difficult to predict delivery. We saw and will continue to see examples of projects failing because the original deadline wasn’t realistic, and teams were set just to run up against these deadlines. This can discourage the customers when it overruns the schedules as it results in late delivery. To avoid these basic and simple pitfalls, companies have adopted different strategies to deliver faster. But the delivery is not the only thing to consider in this process. Quality is important too. Moreover, it is a mindset to adopt in all the teams rather than a list of patterns to follow and apply. In this entry, we’ll speak about “Deliver Better Software Faster”.
Let’s examine the three parts of this important idea:
- Deliver: as a developer, or a software engineer, your job is to make happy final users and give them powerful tools. Your responsibility goes from designing, writing code to deploy the solution in production, in real environments. It is all about the process or the flow of things that happen to make the software built. You need to fit in that process to make it faster and avoid blocking it: ask before coding and apply best practices within your team.
- Better Software: when you read this, many ideas come to mind, like the software craftsmanship manifesto. We will not talk about it here, but we can summarize it in a few words: better software must meet the requirements to make happy users, and the codebase must meet the requirements to make happy developers. It is a balance of two things to maintain. Remember, “do it right now and not later”.
- Faster: refers to both Deliver and Better Software but is a difficult task and should be done multiple times a day or a week. The first we target to run in production, and the second we ask for better quality. So it requires great attention to detail, but we know that a machine is faster and accurate than a human. Therefore, the solution is to automate the process (test, deploy, etc.) to get things done faster.
Software is like an iceberg – 90% of it is not visible. The primary complexity in the application lies in the difficulties of software projects. Adopting “Deliver Better Software Faster” as a guiding principle can help find and fix all the places that need work or enhancement.