Further steps in theoretical groundwork for software development

Time ago I posted about the obsolescence of some theories for project management (The underlying Theory of Project Management is Obsolete) and, hence, about the need for better theories not just for management. In my journey as a software professional, to the extent that I was becoming aware of how important is the theoretical effort to improve practice —and vice versa—, to the same extent I have searched for theories that scientifically uphold our activity. Then, it was very gratifying to know that more professionals were doing theoretical efforts (Working on software theory) in our field.

Now, it is very pleasing to learn more about the current progress on the theoretical work of people like Ivar Jacobson, Pan-Wei Ng, Paul E. McMahon, Ian Spence, and Svante Lidman:

The Essence of Software Engineering: Applying the SEMAT Kernel

 

«The kernel in this book represents a software development effort as a continuously operating abstract mechanism composed of components and relationships. The project does not move from position to position within this mechanism as in the assembly line metaphor. Rather, there is a continuous flow through the mechanism as opportunities are transformed into requirements, and then into code and tests, and then into deployments.» —from the foreword by Robert C. Martin

 

«Software projects everywhere look for methodology and are not finding it. They do, fortunately, find individual practices that suit them; but when it comes to identifying a coherent set of practices that can guide a project from start to finish, they are too often confronted with dogmatic compendiums that are too rigid for their needs. A method should be adaptable to every project’s special circumstances: it should be backed by strong, objective arguments; and it should make it possible to track the benefits.» —from the foreword by Bertrand Meyer