Agile Creation and Enactment of Software Engineering Methods

March 12, 2012 at 3:06 pm | Posted in Blogroll, Practice Excellence, Scrum and agile, Software Engineering | Leave a comment

As per the news item posted by Semat on 28th Feb 2012, OMG had put out an RFP for a proposed standard “Foundation for the Agile Creation and Enactment of Software Engineering Methods (FACESEM) RFP (OMG Document ad/2011-06-26)”. Semat working group has submitted a proposal entitled “Essence – Kernel and Language for Software Engineering” on 20th Feb 2012. This is an interesting development and I would like to share my thoughts on those aspects which I believe would be of interest to the software practitioners, including those who are familiar with agile ways of doing things.

It is interesting to note that the RFP asks for an “AGILE” foundation for creation and enactment of software engineering methods. This is in sharp contrast to the current practice of methods being created once by process experts to be used repeatedly thereafter by the practitioners. The term “process”, which is so widely used currently, is also conspicuous by its absence from the defined terms in the proposal. Instead it works with practice which is defined as “repeatable approach to doing something with a specific purpose in mind” and method which is “composition of practices forming a description of how an endeavor is performed”.

The direction software engineering is likely to take in future is indicated by the key differentiators mentioned in the proposal,

  • Finding the essence of software engineering so that it can be applied to and reused across different application domains and software systems of differing complexity
  • Working with methods in an agile way that are as close to practitioners’ practice as possible, so that they can evolve the methods and adapt them to their particular context
  • Focusing on what helps the least experienced developers over what helps the more experienced developers
  • Supporting practitioners over process engineers
  • Emphasizing intuitive and concrete graphical syntax over formal semantics
  • Focusing on method use over method definition

In short, the proposals by Semat and others leading to a standard can be expected to benefit the practitioners, giving them a greater say in deciding how they go about developing software, or to use the term from the proposal, their “Way of working”. The universal kernel and a common language would also support the concept “think globally act locally” and provide a common foundation to tackle variety of contexts and situations in a consistent way.

When I was discussing this topic with my colleagues, I was surprised to see how quickly they concluded that it is only related to agile software development whereas it is applicable to all kinds of software development, agile or otherwise. It is actually more about how we decide to develop software rather than how we develop software.

This reminded me of Mike Cohn’s Blog “Succeeding with Agile” which I had read some time back. As he says, we stopped talking about objects a while ago and similarly we will stop talking about agile. Rather than “agile software development” it is just “software development.” Rather than “agile project management” it is just “project management”— Of course it’s agile.

But for this to happen, I feel we will need a greater understanding of the opposing forces at play before we can optimally balance them to suit specific situations. Few examples of such universal opposing forces applicable to all human systems are,

  • Defined versus empirical
  • Transparency verses privacy
  • Inspection verses automation
  • Planning versus preparing
  • Compulsion verses discretion
  • Early verses late binding (of decisions to actions)
  • (Internal) cohesion versus (external) coupling

Does the above thought process make sense? What are your views on this?


Leave a Comment »

RSS feed for comments on this post. TrackBack URI

Leave a Reply

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

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

Google+ photo

You are commenting using your Google+ 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 )


Connecting to %s

Blog at
Entries and comments feeds.

%d bloggers like this: