For us at Avalon, it is important that all our consultants strive for sustainability in their work. We will also strive to help our customers work in a sustainable way. By sustainable development we mean all development related to a project. From version control, keeping processes up to date, material selection and all the way down to the code in the software. It can also mean pushing for good recyclability in the products that are being developed and that they are non-toxic, energy efficient and that everyone involved has a social responsibility. A sustainable project must also be easy to hand over to a new person.
To facilitate the process, our internal sustainability group has developed tools that our consultants can use as aids to have a more sustainable focus in the development process. The tools that have been developed are in the form of checklists, one for mechanical designers and one for software developers.
In the latter checklist, focus areas for sustainable software development have been identified and defined. These focus areas mean getting an overview of the work process and the improvement measures that could lead to more sustainable programming. Important points for each developer to bring with them into a new project include:
Version management
Version management enables traceability which can be very important, since it facilitates troubleshooting errors in code that may have arisen from further development, for example.
Documentation
Being clear in the documentation is often decisive for how good the result will be. The documentation must include what the customer and the developer have agreed on in the form of a set of requirements.
The documentation can be divided into different levels where you start with an overall program description of what the program should do, how it should be used and its limitations. It should also show a graphical system architecture of how the system is connected and then deeper with more details in the processes the closer to the developer’s documentation you get.
One small but very important part of the documentation, is the user manual for those who have to do the daily work. Often they do not need to know much details, which is why a good approach is to provide a step by step guide on how to use the system, and in some cases how error codes should be handled. This only works if the programmers have done a good job when creating logs and error codes that are easy to locate in the code.
One step in manageability is that you have good documentation about the system.
Testing
Testing is an important focus point and a concept of quality. There are lots of different tests and it can be good to review which of them the company
uses and if there are other tests that would be beneficial for that particular company. Some types of testing make it easy to detect if something is corrupt or malfunctioning. To make that detection of errors faster, automated tests that can be scheduled can be utilized.
Time for maintenance / refactorization
It is important that there is time to review the code and refactorize it. This means that you have to restructure it, to make it simpler, clearer and easier to maintain. When doing maintenance and corrections, it is also important to update related documentation.
Modular programming
Does the company use modular programming? If not, it may be helpful to clarify the benefits. Modular programming is a software design technique that emphasizes that the functionality of a program is separated into independent, interchangeable modules, so that each contains everything needed to perform only one aspect of the desired functionality. This means that you can easily replace parts of the system without affecting the whole.
Education
Do all project members have the right skills to do a good job? If not, see if there is competence within the company that can help support or train new project members. One way of doing this is to appoint project mentors.
One should also evaluate whether the competence required for the specific assignment should be something that more people should be trained in and then draw up a plan for it.
Specification
Is the specification ready? Is the assignment clear to you as a project member? Do you know how the job should continue? It is important that there is a foundation of specifications so that the developer knows what to do, what is to be achieved and how much freedom there is to solve the task. Without a clear specification, it is difficult to design a great code.
Holistic perspective
It is often important that there is a holistic perspective for the product. If you work on parts without seeing the whole, it becomes difficult to work sustainably from the beginning. It will also be more difficult to see any improvements. It is also related to the modularity of the code. Try to see the big picture right away.
Do you want to know more about how we work with sustainability at Avalon, how you can use the checklist or how we can help you? Do not hesitate to contact hello@avaloninnovation.com