Tags: collaboration, environmental impact, local suppliers, locally developed software, slow consulting, SMC, Software, software costs, software outsourcing, software waste
Today we have the honor to welcome our guest bloggers, Mr Måns Sandström and Mr Joakim Holm, Adaptiv Sthlm AB. Read their interesting blog about how to green Software and make IT more usable.
Re-interpreting Green IT for Software Development
When reading about Green IT you may get the impression that itʼs only about IT hardware products or, possibly, manufacturing services related to hardware. We submit that this is not true. There is also a large quantity of services surrounding the software running on those IT products.
One such example is own domain: Software development, the design and development of tailor-made or off-the- shelf software. It seems obvious to us that the process you employ when designing the software as well as the actual design of the software has a major environmental impact. Therefore, it saddens us to report that as software practitioners and craftsmen we see IT resources (people, computers, energy) employed in a wasteful manner every day.
#1 Waste: Creating Unwanted Solutions
One great waste in software development is all the energy spent creating functions and products that nobody uses. One study from the Standish Group [JJ] showed that on an average 19% of the features in a given system was used rarely – 45% never. That is approximately 2/3 of the total number of functions. The number of software developers in the U.S. alone (2008) was estimated to 1.3 million. Hence, we may estimate the total number of developers globally to 5-10 million (and growing rapidly). Can you imagine 2/3 of them are wasting time, money, and energy creating ”stuff” nobody really wanted? The need for improved collaboration between clients and suppliers is acute.
In recent years, outsourcing software development to low-wage countries has become popular with larger companies. What these companies fail to understand is that outsourcing software development not only makes the communication slower, but also worse. The possibility of achieving that vital collaboration between customers, users and developers is severely hampered. Consequently, outsourcing works as a catalyst for the problem of creating unwanted solutions. This may be illustrated by a simple thought experiment: What if the situation was reversed? Imagine that you are a Swedish software developer given the task of developing a ticket system for an Indian travel company. What difficulties would you encounter?
#2 Waste: Creating Unwanted Problems
Another major waste today is that we almost always develop systems of poor quality. Keep in mind that software quality is not only what the user perceives, the external quality, but also the internal quality, how defect-free it is and how easy it is for future developers to understand and maintain the product. This latter part is what drives the rapid increase in cost of software maintenance.
Back in school, we were taught that there are no error-free programs. Since then we have learned that it is indeed possible to write programs that behave correctly. Contrary to what people often intuitively believe, it is both cheaper and faster to develop high-quality software. This is sometimes called the General Principle of Software Quality [SMC]. You see, the time spent on fixing bugs is always greater than the time spent on avoiding them. Quite unnecessarily, suppliers deliver low-quality software in a haste, thinking that they are saving money, when in fact the opposite is true.
“Slow Consulting”
We believe that Green IT should be given a higher priority in procurement in general, including procurement of IT services like software development. There are huge, hidden costs of outsourcing development – not to mention the effects on our environment. Outsourced software development is riddled with long lead times, misunderstood needs, and failure to change direction as we learn. This is of course in addition to more wellknown costs like increased documentation needs, coordination, meetings and travels. How many companies take the effect on the environment into account when they plan their outsourcing? We think they should.
Furthermore, we believe that priority should be given to selecting local suppliers for software development. On the surface this may seem more expensive, but when taking the hidden costs mentioned above into account, the ROI calculation for outsourcing looks less attractive.
“Slow Food” is a movement focusing on using local produce, craft skills and health thinking in cooking. We can use the same thinking in software development. We thought about calling our ideas “Slow Consulting”, but we would probably run the risk of a less flattering interpretation. However, it is evident to us that certain goods and services may work well from a distance while others, like developing businesses or software, do not. We are convinced that a locally developed software product is both right for the environment and yield the best results.
Måns Sandström & Joakim Holm Adaptiv Sthlm AB
PS If you are interested in reading our proposals on how to deal with these challenges, read here (in Swedish). References: [JJ]” Johnson, J. (2002), Keynote speech, XP 2002, Sardinia, Italy [SMC]” McConnell, S. (2004), Code Complete, 2nd ed, pp. 474-475