The seven deadly sins of modern software development
By Stuart Kennedy
Grappling with legacy systems to being fixated on project completion and budget rather than outcomes are some of the common challenges and pitfalls that software development teams face each day.
Yamen Sader, a platform engineering partner at Deloitte Australia, highlighted these “deadly sins” at the Pivotal Summit 2019 in Sydney and offered advice on what developers and their managers can do to avoid them.
The growing legacy
This is where a key system of record has become difficult to use due to technology limitations, knowledge gaps, resource shortages or risk of change. Antidotes range from a full replacement to abstracting the old gear as much as possible through application programing interfaces (APIs) and microservices.
The hospital pass
In larger organisations, software changes cross organisational boundaries can lead to multi-team meetings that go nowhere. Fixes include properly aligning teams and maximising self-service and autonomous delivery of value.
The Project
A fixation on funding and tying success to project completion on time and within budget. Actual business outcomes after completion can be ignored. Antidotes include tying accountability to real business value.
The Gandalfs
Organisations have controls have controls and regulations that feed into software development, but these can lead to a “you shall not pass” approach that stifles development. Don’t leave the checks to after the fact of development. Instead, concentrate on governance as code.
Production Snowflake
Don’t maintain test environments that resemble production past their use-by date. Get around the snowflake problem by allowing testing in production where appropriate and putting effort into all forms of testing such as end-to-end and synthetic transaction testing.
The fear of code
This can infiltrate executive levels, says Sader, as the higher you go, the less you want your fortunes tied to developers. Off-the-shelf platforms feel like security blankets.
Confront the fear of code by getting over the binary “buy or build” mentality. “There’s a spectrum there,” says Sader, where off-the-shelf systems can be modified. Code can be made less scary by industrialising how it’s done.
The Accidental PaaS
Don’t over build a software project into a full-blown platform as a service (PaaS). Stop this wasteful process by taking a punt on platforms and pipelines if they align with your requirements. Proceed swiftly to add value rather than getting stuck in trivialities.
While there are many approaches to solving the issues in Sader’s list of seven deadly sins, he notes that changes in practice can lead to desired cultural change. “Small changes aren’t that hard. What we find is that practicing change leads to culture change,” says Sader.