Another step forward for Semat

2012/04/18

As you may know from our Three Year Vision, Semat’s first step was to create a common ground for software engineering. This common ground would be manifested as a kernel of essential elements that are universal to all software development efforts, and a simple language describing methods, practices and the kernel elements. Both the kernel and the language should be widely accepted.  Right now, Semat is in the process of completing the first step, which has resulted in the following:

  • A submission, called “Essence — Kernel and Language for Software Engineering” to the OMG’s RFP (Request for Proposal) “A Foundation for the Agile Creation and Enactment of Software Engineering Methods“. Two other works have been submitted to OMG. The Semat results were very well received by OMG. The Semat submission will incorporate some ideas from the other two submissions into the new “Essence” submission. Semat will also incorporate ideas from the existing standard Spem.
  • Semat will be presented at the International Conference of Software Engineering (ICSE 2012) in Zurich on June 6, 2012. This will happen in the “Refounding Software Engineering” session. It is Semat’s first international publication and more publications are on the way.
  • A new book `The Essence of Software Engineering – Applying the Semat kernel’ is coming – now in peer review. The book’s objective is to put the kernel into a context.  The book describes how the kernel can be used by the practitioners and how they can measure progress in an endeavor independent of which method they use. It also provides suggestions for how they can scale up, scale out or scale in their methods.

The Semat kernel is already being used on two academic project courses at KTH Royal Institute of Technology. On one project course, Mira Kajko-Mattsson is teaching the Semat kernel and evaluates its usefulness within software education. Using the kernel elements, her students continuously evaluate the progress and health of their projects.  On the other KTH project course, Anders Sjögren uses the Essence book as a base for education in software engineering with extensive lab work. Moreover, two other universities use or plan to use the Semat approach when training their students. These are Peking University and Oslo University. Experiences on the use of the Semat kernel in education will be published on Semat’s website in the next couple of months.

Getting a widely agreed upon kernel is just the beginning.  The kernel is a fundament that constitutes a critical milestone for moving forward in refounding software engineering.  To be able to systematically work with practices and methods both in the industry and academia, more work needs to be done in form of creating products, creating practice market places, constructing supporting tools, revising software engineering curricula, doing research and writing books and papers.

Thanks to the kernel, our less experienced developers (and most of us belong to this group) will become professional much easier and much faster.  Standing on the common ground, they will be able to learn from one another much better and move from one team to another much easier.  Since we focus on you, the developers, and not the process engineers, the adoption of the Semet kernel is more of a pull than a push.

The Semat kernel stands on two important principles, which are ‘agile in everything we do’ and ‘separation of concerns’.  For example, we value:

1)      What helps the least experienced developers over what helps the experts?

2)      What helps the practitioners over what helps the process engineers?

3)      Method usage over method definition?

Of course, we must support the experts and process engineers as well, but not by having the practitioners to pay a price. And, of course, we can define methods, but most importantly, we have to make methods useful while we actually work in real endeavors.

Compared to earlier attempts, the Semat approach has several differentiators that make developers more motivated to work with methods.  Maybe the most important one is that the whole approach is actionable. As already described in the Three Year Vision, the developers do not just use it for studying. They use it in their actual daily work when enacting their ways of working and when measuring their progress.   part of the whole game.  All this will help the industry.  The education at a university level will become more fundamental, more systematic and effective. The research will become more disciplined and more useful to the software community.

In parallel with working on the proposal, a small team of people has been working on a new book ‘The Essence of Software Engineering – Applying the Semat kernel’.  The authors are Ivar Jacobson, Pan Wei Ng, Paul Mc Mahon, Ian Spence, Svante Lidman. The book is now in its 3rd draft and about 30 people have reviewed it and given constructive feedback.  We expect that the 4th draft will be widely published.  If you are interested in reviewing and providing feedback, please send an email to ivar@ivarjacobson.com. A copy of the book will be sent to you asap.

– Ivar Jacobson and Mira Kajko-Mattsson

About these ads

5 Responses to “Another step forward for Semat”


  1. So, I attended the SEMAT session at ICSE an was, frankly, dismayed.

    Was it Philippe Kruchten who complained that the “T”, theory, was under represented? I also find that the “E”, engineering, is also lacking. Various people are credited with various expressions along the lines of “an engineer is someone who can do for a small amount of money what any fool could do for a much larger one”. For me this economic aspect is the essential thing that separates engineering from applied science.

    And this means that engineering (of software or anything else) is about tradeoffs and compromise. Engineering isn’t about building the best technical solution possible, it’s about building as good a solution as required, and no better, for a price that secures a profit with delivery before a market window closes. I don’t see any one of those concerns being addressed by SEMAT, which seems to presuppose that success in building software is a matter of programmers following fine-enough grained checklists.

    Most worrying though is that the current Kernel seems to be highly speculative (it has not been validated, so far as I can tell, neither by either peer review nor by industrial experience) and yet is already being taught in universities! That seems highly premature.

    • shihong Says:

      Please let us comment on your observations that the T and the E in SEMAT may be wrongly or less than optimal be represented in the activties around SEMAT. For the T (= Theory or Theories) for software engineering let us recall that we have the goal to provide a general and at the same time specific theory for software engineering. It should be minimal, extensible and lends itself to the use by practitioners, specialist and researcher. “Use” means here that the theory shall be able to support:
      – the construction of new methods from scratch or (more preferably) from existing practices and methods,
      – the comparison of methods and practices
      – the effective use of a method in a software development project

      This is all along the lines that there is nothing more practical than a good theory i.e. we will always work on the T in SEMAT with the goal to obtain a theory (or may be a combination of theories for that matter) which allows to predict, assess, compare, measure etc.

      Having said that, it seems to be a big challenge to come up with such a theory. In our statement at ICSE 2012 we briefly mentioned that we need a set of basic notions and concepts at the heart of SEMAT (we call it Kernel) which is used to build the rest of any practice or method upon. This is the current main focus of the SEMAT activities and this has also to be the basis for the theory work! These basic notions and concepts need now be defined more rigorously and we need to come up with the necessary machinery to achieve the goals sketched above.

      This opens the question what we want to construct and what we want to predict, assess, compare, measure.

      From our current perspective we see two broad areas of concern here:

      – first of all there is the need to come up with support in construction and use. One important example for this area of concern is that we are able to spot erroneous combination of practices, derive missing pieces if one combines or extends practices etc. This means, that we have to provide a formal system which supports the users of SEMAT based practices and methods in a useful way. This has also to do with the construction of the SEMAT language.

      – the second area of concern is that we would like to know which practice or method is effective and efficient. It seems to be obvious that these kind of questions need to be discussed relative to a given context, the overall goals etc. And this will involve to include the acting persons here in the prediction, assessment, comparison and measurement.

      Thus we need a different kind of theory (or theories) here in addition to the one(s) we mentioned above. These come from social sciences (humanities in general), organization, etc. We also need to think here which kind of scientific instruments we would like to apply and/or are able to apply. This is related to the work which is currently going on in empirical software engineering. We closely observe the work done here. We also gather that one strand of activities is going away from controlled experiments and seek good benchmarks which are (hopefully) less difficult to achieve than statistically valid controlled experiments.

      We will provide a roadmap how we intend to pursue the work sketched above and will publish it at http://www.semat.org, respectively.

      With regard to the E in SEMAT, I think we have already said a lot in the preceding lines. This is meant in the sense that in engineering you need a good theory as a basis and then build upon that the rules, guidelines etc. which cover the aspects you mentioned in your comment like build to purpose etc. However, let me point out that many of these engineering aspect you mention will be part of the respective practice one applies in the given project. Thus, if you have an agile project which e.g. has to provide a series of incremental prototypes in order to approximate the desired solution increment by increment you will pick a different practice as compared to a project where you have to apply formal methods since you have to prove certain safety and liveness properties for e.g. a critical medical device. To make this clear: SEMAT is not limited to create some clever check lists. It will also include practices which cover the use of a wide range of technical solutions to the problems of software development.


  2. The quick answer is that, it is huge task to come up with a theory in software engineering which will stand the time of test, but serious work has started. A paper will soon be published in a well-known and respected magazine, and we will let you know when you can read it. The title is “Where is the theory in software engineering”.
    We like a quote by Kurt Lewin: “There is nothing so practical as a good theory”. This partly also addresses your second paragraph about “the economic aspect” of software engineering, it is about trade-offs and compromises.
    As I understand it, your concerns come after having listened to a one hour presentation, which only attempted to give you an overview and to make you curious enough to learn more. Please take a deeper look and read more about Semat. Within a few weeks you can download a book “The Essence of Software Engineering”. You can also access the OMG submission from our web site.


  3. It sounds like this project can benefit from applying the Lean Startup principles of experimentation and minimum viable product. Is the kernal an actual software product or is it a vision?


    • Not entirely either. The kernel is basically an extensible core comprising of the common things we work with (Alphas), things we do (Activities) and skills to do such things (Competence) in every software endeavor. It is currently practical and actionable.


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

Follow

Get every new post delivered to your Inbox.

Join 50 other followers

%d bloggers like this: