10 Key Factors of Sustainable Software Development

Samuel Schmid
Modeso
Published in
3 min readApr 21, 2015

I was writing an abstract about sustainable software development for a customer when I realised, that there was no suitable abstract in the entire internet which I would like to reference to. So I decided to publish my own point of view.

I look back at more than 14 years experience in software development. I started with Delphi and Visual Basic applications ended up programming high scaling websites and mobile apps. All software has its own challenges, but the key factors for a sustainable success are always the same.

1. Start with the software design and focus on maintainability

Make a deep step into the software architecture and think about the key goals you want to achieve. Always think how maintainability can be improved.

2. Don’t let the daily business push you to change your way of working

Alway keep in mind that maintainability is more important than velocity. By thinking ahead and investing more time at the moment you are solving a problem you reduce the impact of changes in the future.

3. Use an iterative software development process

Iterative development and regular reviews improve quality. You have the chance to improve the software every time you reflect the concept, design, documentation and source code.

4. Define the team as the only constant

I don’t want to say that you cannot change team members. Sometimes it’s even necessary to change some heads. But the core of the team, let’s say 60% to 70%, should be constant.

5. Write clean code

Define some metrics which are important for you to read the source code. You can use tools like SonarQube for continuous inspection of code quality. If you are not familiar with clean code, I suggest to read the book “Clean Code: A Handbook of Agile Software Craftsmanship” from Robert C. Martin.

6. Refactor code to improve its simplicity

Take your time to refactor your code and the code of other team members. Automated test scripts helps you to be confident in what you do.

7. Keep the documentation up to date or don’t write any

If you talk to a software developer about a software documentation you will end up in a discussion about sense and nonsense most of the time. So decide if you want to write a documentation. If you do — it’s essential to keep it up to date.

8. Write automated tests to validate changes

Automated tests doesn’t locate every bug you are coding, but you decrease the risk to overlook one with every test you write.

9. Use tools and scripts for Continuous Integration

Don’t waste your time with recurring work. Take your time to develop helper scripts to shorten time of work like compiling, deploying, testing etc. There are great helpers like jenkins, grunt.js, maven, etc.

10. Use a version control system for source code, tests and documentation

With a version control system you are able to keep your sources up to date and synchronized between your team members without any hassles.

www.modeso.ch - Your partner for web and mobile development

We are a young Swiss company, with its headquarters in the Lake Constance region, which was founded in 2013 and has been on track ever since. Modeso is specialized in the field of web and mobile development. We support companies from startups to large enterprises with highly qualified software developers at fair prices.

--

--