This episode of Azure on Air talks about the choices made in software development. Ricardo, a software developer and tester, thinks that sometimes we focus too much on speed and not enough on quality, making it feel like the “Wild West.” What happens when we prioritize speed, and how can we find a better balance?
Ricardo’s journey from a software developer in test to a builder and writer of software highlights the critical role that quality control, deployment techniques, and robust processes play in successful software development. These practices aren’t just nice-to-haves; they’re essential for the long-term health of any software project.
One of the key takeaways from Ricardo’s experience is the importance of CI/CD pipelines. These tools and practices ensure that code changes are regularly integrated, tested, and deployed, reducing the risk of major issues when it’s time to push to production.
Proper source control and binary promotion processes are fundamental to maintaining code quality and managing releases effectively. These practices help teams track changes, roll back when necessary, and ensure that only thoroughly tested code makes it to production.
Ricardo shares a cautionary tale of a customer who built a function on .NET Core 2.1 and ignored warnings about the need to upgrade. When Microsoft eventually dropped support for that version, the customer faced a crisis, scrambling to get their systems back up and running.
This story underscores a crucial point: software development doesn’t end at deployment. As Ricardo puts it, “Anything you develop in the cloud is ever-evolving and requires continuous investment.”
Modern development tools offer incredible power to prototype and deliver quickly. However, Ricardo warns that these tools are “often abused for the sake of convenience.” Deploying directly from a developer’s workstation to production might seem like a time-saver, but it can lead to significant problems down the line.
Even after years in the industry, Ricardo notes that there’s still a “cognitive disconnect between developing a solution and maintaining it.” This disconnect can lead to short-sighted decisions that prioritize immediate delivery over long-term sustainability.
To address these challenges, many consultancies are developing frameworks and products that help clients accelerate their development process while still adhering to best practices. These toolkits often include YAML templates, Bicep modules, and PowerShell scripts that can bootstrap a project quickly without sacrificing quality.
The pressure to deliver results quickly is ever-present in the software industry. However, as Ricardo and many others have learned, cutting corners on best practices often leads to technical debt that can cripple a project in the long run.
The key is to find tools and processes that enable rapid development without sacrificing quality. By investing in good practices from the start and maintaining a focus on long-term sustainability, development teams can achieve the velocity their stakeholders desire while building robust, maintainable systems that stand the test of time.