Kerflyn's Blog

Well… It's a blog!

About Sustainable Software Development

with 3 comments

I try to explore some aspect around sustainable development applied to IT. At present, I see two ways of understanding this term.

Green IT: respect to the environment

This is the first thing I think of when I hear “sustainable development”: adopt a behavior that take care of the environment. We are not at the level of the infrastructure, that is the usual field when we speak about green IT. Here, I think about the way we program: the choice should be made across the algorithms and the patterns that do not increase so much the computer temperature and that consume less resources.

  • Choose a low-consumption algorithm
  • Have a behavior that conducts to respect the environment
  • Choose a greener language implementation

The language and more specifically the way it is implemented (i.e. the way your source code is compiled and interpreted) has its importance in relation to green IT. One day, I have heard of a company that has abandoned PHP. Indeed, at this time, the way the PHP engine was implemented implied a high-rate in energy consumption.

But green IT drives us to difficult equations. Certain modifications in the code, in order to turn it to green code, can turn the other part of the code to high-rate in energy consumption. What are the good behavior that a developer should adopt in order to become a green developer? May we, one day, see a label for eco-software craftsman?

IT craftsmanship

There is another aspect behind the “sustainable development” that can be represented by a question: How long will your code last? It is of the interest of a project to create a code that last in time. Not only for the developer himself but also for others. So, there is the question to become a perfect “software craftsman“.

  • The code source is a document that describes how the software works. Thus, write your code so that any other sources of document (specifications, code comments, tests) become useless. By acting like this, any developer will not spent too many time to understand your code and it will not require heavy maintenance in order to evolve.
  • Use of: best practices, design pattern, struggle against anti-pattern, some idioms. Do not use them without a preliminary reflexion, because a pattern can easily turned to a anti-pattern or an idiom can make your code unreadable.

Again, the software craftsmanship is a difficult exercise. On the one side, it requires a strong experience in software development. On the other side, more and more techniques or practices emerge in order to help you create a clean code. I think specifically about TDD, TDR, refactoring, and other practices. Furthermore, IT tools to analyze your code (Checkstyle, PMD, or Sonar in the Java world) help you to make progress in order to provide a better code.

Conclusion

Regardless on how “sustainable IT development” is understood, it requires experience and practice, because we have to think about a wide range of parameters that acts on how the resources are consumed or how the other developers will perceive our code. Nevertheless, there are tools to help us producing clean code and if you are confident in the future, tools will be created to help us producing green code.

Written by fsarradin

2010/08/02 at 18:06

3 Responses

Subscribe to comments with RSS.

  1. […] This post was mentioned on Twitter by The Software Gang, François Sarradin. François Sarradin said: New post: About Sustainable Software Development (http://wp.me/pVQfY-F) […]

  2. Have you look at Gustin Prudner’s work at Entry Software http://entryway.net/ ? He’s very interested an involved in the sustainable / morally-positive work in software development. He’s also heavily involved in the software craftsmanship activities.

    corey haines

    2010/08/03 at 04:48

  3. I was researching on this topic for my assignment, and this post and the comments help me alot, thank you all!

    zic

    2011/04/18 at 13:14


Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: