Software Development Best Practices

When The Secret Developer takes some time out this festive season, they do exactly what you’d expect them to do. They’re reading a series of studies on software engineering best practices.

“Instead of Googling, I Google Scholar. Since most of this stuff is behind a paywall don’t worry about ChatGPT because it’s not even close to being up to getting information from actual studies”

Here is what The Secret Developer gleaned and has decided to share with us all.

Software Engineering As a Discipline

Software development needs to be viewed as a discipline rather than a craft to ensure scalability, reliability, and maintainability. We need a standardization of methodologies, practices, and QA to create software that is fit for purpose.

While the current craft allows for creativity and innovation, we need to move forward. We need to get better.

“It’s about time. We’ve been developing software for decades now, and it seems things are not getting better.”

The Areas To Improve

Here are four critical areas where software engineering needs to improve to become a solid discipline rather than a craft.

Software Security

We need to raise the security levels of applications by including better security features in programming languages as well as applications. We need to improve access control and permissions which are weak links in software engineering.

“Our security guys don’t know how to disable AirDrop on a Mac.“

Defects

We need to work on quality. Poor software quality has damaged the whole economic subsystem that supports software engineering, and this cannot continue. Applications need to make use of inspection, static analysis, and testing. Testing alone is inadequate to achieve high-quality levels.

“Defects are one of the best ways to track poor code. We can also use them to track poor coders.”

Measurement

We need to gain a better understanding of the true economic picture of software development and maintenance; we should move to activity-based costs.

We need to analyze the flaws of cost per defect and lines of code and get to the real economics of software development.

“What is not measured cannot be improved.”

Economics

We need to better understand the economics of software creation and maintenance. We need to evaluate the cost of updating legacy applications as this becomes more important as there are simply more of them in the rear-view mirror.

“If you don’t have the business case, how can you know something is worth doing?”

Conclusion

If software development is going to evolve into a true engineering discipline, we need to make a change.

“Much like writing code, it requires focus”

Previous
Previous

The 5 ChatGPT Prompts That Represented the State of Coding in 2023

Next
Next

The PlayStation Portal is a Bad Profit Portal for Sony