We are some people who have observed software engineering theory and practice of the past decades and have realized that it is now time to revitalize this discipline. We have been quietly planning a “revolution”.
For those who have been following my columns may know that, for a very long time, I have been talking about that we need a theory of software engineering. See my two blog entries, “A problem to fix: We don’t understand the nature of software engineering” February 2009, and “Someday we must become professionals!” March 2009, which describe my thoughts on this issue when it all started over a year ago.
Since then I have advanced gradually. First, I explored this idea by publishing a paper, entitled “In need of a theory in software engineering”, first in China (in Chinese) and then in Australia. Later on I joined forces with two colleagues of mine, Bertrand Meyer, the creator of Eiffel, and Richard Solely, the chairman of OMG. We have formed a community called SEMAT (Software Engineering Method and Theory). Its goal is to make software engineering a more systematic discipline than it has been in the past.
This effort started with a Call for Action a few weeks ago. To put it in a sharply simplified way, we state: 1) software engineering is not a mature discipline, and 2) this situation has to be changed fundamentally ”based on a solid theory, proven principles and best practices that include a kernel of widely-agreed elements,” etc.
This “Call for Action” has generated huge responses. Its statement is signed thus far by 31 experts in the software development arena who are from around the world and who come from many different disciplines, such as computer science, Agile (Scrum, XP, Lean) CMMI, Unified Process, Eclipse & Jazz, design patterns, testing, metrics, empirical study, languages, etc. It is quite significant that so many influential individuals have endorsed the same initiative and shared the same vision where each of them has different views and approaches to software development.
Beyond that, in less than two weeks, there are over 700 people from around the world who have registered as supporters. The community is growing very quickly. Take a look at our Website (www.semat.org) to get the latest update.
Now the hard work has began. Many of those who signed to support the “Call for Action”, of course, have some ideas or solutions to the problem. But no one seems to have what we would like to find, namely, a kernel that is widely accepted. Thus, instead of now starting with seeking the solution, we would like to start to develop a specification of the solution. If all goes well as expected, as a community, we will jointly present such a specification in three months. By then we will host a workshop, at which different ideas for solutions are supposed to be presented.
The big challenge of this initiative is to achieve consensus among so many strong and driving forces. SEMAT differs from other initiatives in that we are not trying to unify the world around a method, but rather, focusing on the creation of a small kernel that contains elements that we always have when we develop software. We call these kernel elements universals. Furthermore, we insist that industry and research communities should be harmonized. Both of them have their strengths and have their unique roles to play, but they need to work together as a team resulting in a synergy for us to be successful.
We are well aware that what we intend to achieve is not an easy task, and in fact could be quite difficult. Therefore, we discuss it openly within the community. To achieve the goal of SEMAT initiative we need a community effort, which requires all of us to work collegially, constructively, and to put our personal interests aside, Each of us should strive to make a contribution to the software world as a whole. The longer we wait, the longer we will continue presenting the society with the image that software is fragile, full of defects and poorly done. Let us stop wasting time and generate some positive impacts. It is smart!