Atualização: October 28, 2021
Editores: Alex Cunha
Bio: Alexandre Cunha is a seasoned software engineer and entrepreneur with over 15 years of experience in delivering complex and challenging projects. As the founder and CTO of ZBRA Solutions, he is passionate about cloud-computing solutions and takes ownership of large projects with ease. Alexandre is dedicated to helping teams build and improve software projects and works closely with product and dev teams to ensure timely and high-quality deliveries.
Over the years I’ve seen many software development projects that follow a typical pattern of failure. They fail because they lack passion, they are executed purely as a transaction. As usual it starts with a set of requirements, a deadline and a budget. Then stakeholders and sales sign off on that promise. When the development team gets notice of the work to be done, it’s all written down and settled with little room for renegotiating deliveries or making changes to the technology stack. At first everything seems to be working well. Then, halfway through the project, some red flags start to show up. Same bugs pop up in every release. Sprints start to drag and the team’s morale suffers. You start hearing the word “rework” more often. Promises are broken. At the end, a software is delivered but compromises are made. The budget has to be extended and trust with stakeholders runs thin. Quality of the final delivery is subpar at best.
It’s easy to blame the developers for these types of failures. But reality is more complicated than that. Most times, in my experience, the mistake happens when the papers are signed. The original agreement of delivery, time frame and budget is usually made between people that not only know little about creating software but often lack the experience and passion to address those difficult challenges ahead of them. Frequently their true motivation is towards adding the transaction to a spreadsheet and moving on to the next project. It’s a sales machine and the wheels must keep turning in order to satisfy shareholders.
I was once referred to a couple who needed help with a dating app they were trying to build for their startup. They had already spent quite a lot of their savings on that app but they couldn’t understand why it wasn’t ready yet. The developers kept saying they needed more time and kept showing progress but the app was never quite ready to be released – a cycle that repeated itself endlessly. When we met, they were frustrated so they explained their idea – which looked clever. They spent about an hour showing me what the team had built up until that point. As our conversation progressed I started to feel bad for them. I knew, even before our call was over, they were working with a team that had no passion. The struggles about bugs, features that made no sense, lack of quality, inconsistent user-interface and constantly missed deliveries were telling the story about a team that had no commitment towards implementing the app they had undertaken. They never took the time to discuss real challenges they had to face and the compromises that might have been necessary. Those are difficult conversations and this team just wanted the transaction, there was no passion involved. The stakeholders – a couple eager to have users onboarding their app – were probably aware of what was going on but they had to hear it from me that their hard earned savings had been invested in code that was no good. Unfortunately for them, I obviously didn’t have a magic wand that could “just fix it”. Software sometimes gets to a point of no return where it simply can’t be fixed, it needs to be redone. Most stakeholders refuse to see that until it’s too late.
Passion is an interesting – and rare – value amongst companies in the software industry. A company that has passion, combined with culture that instills pride within the teams, counts on much better outcomes than companies that don’t have passion for this job. Passion is an important competitive advantage because it pours into all aspects of a business. Passion for software projects – not only the technical aspects and the grind developing something novel – but passion for results. Passion to find and understand the real problems that hide behind those requirements clients lay out early on. Passion to deliver quality products despite time and funds limitations. Making compromises early, before deadlines are reached. And that’s just the start.
Software development is hard. A passionate team has much higher chances of succeeding in delivering on its promises because it’s committed to do what’s right for the user, what’s right for the stakeholders. A passionate team enjoys the ride and thrives on the challenges along the way. It’s a team with true grit. The results then frequently delight users and bring a smile to people’s faces. Finally, once it’s all set and done, the client comes back asking for more. Rinse and repeat.