SEMAT short for Software Engineering Methods And Theory is an initiative to create a set of activities and states for each activity to use with (principally agile) software projects. Despite the rather grand title, SEMAT is, at its core, a frame work of activities and states that apply to all software projects. The objective is to help teams understand where they are in the project life cycle and how to stay focused on delivering working software.<\p>
Why am I excited about it?
Agile practitioners will find value in the Alphas and States that form the kernel of SEMAT. Agile Teams nearly always have to report status â€“ often in the form of a RAG (Red Amber Green) report. In my view, RAG is too simpler reporting mechanism as the colour of the traffic light fails to convey the actual issue with an aspect of the project. It leaves the reader to dig into an underlying set of text to figure out what the problem(s) are.
The SEMAT kernel comprises of a set of â€œAlphasâ€ that describe activities that take place in every software project. Each Alpha comprises of a number of states that indicate itâ€™s health; each state has a number of criteria used to justify the state.
When producing a Sprint Plan (AKA Increment Plan) the team can now assign work to Sprints, but also states for each Alpha. For example, a plan may show that requirements must be â€œboundedâ€ by a particular point in the increment if that point arrives and they are not, then the project can clearly show the nature of the issue that is impacting progress.
Teams can use the states and check lists as inputs into retrospectives (to improve the way of working) and use move the project forward my deciding what needs to be done to move the alphas to the next state.
What are the Alphas?
â€¢ Opportunity â€“ Why undertake the project
â€¢ Stakeholders – Those who are affected by the software system
â€¢ Requirements â€“ What the solution has to achieve to meet the opportunity and satisfy the stakeholders
â€¢ Software System â€“ The assembly of hardware, software and data to create the solution.
â€¢ Team â€“ Those involved in the creation of the solution
â€¢ Work â€“ Activity involved in creating the solution
â€¢ Way of Working â€“ The set of practices and tools used by the team when performing the work.
Extendable and adaptable
The kernel provides a core starting point for teams to use. SEMAT expects that teams will extend the kernel and state model to suit their own particular circumstances. Ideally, adaptations are derived from feedback taken during the course of delivering a project(s). It is conceivable that an organisation may have several versions of the kernel to be used as starting points for different project models â€“ for example a project with a lot of third party deliverables would have a different profile to a project that was staffed entirely by the organisations own staff.
Way of Working
In particular, the activities undertaken by a team when delivering the work have to be with in the control of the team. While certain practices may be mandated â€“ e.g. code reviews in a PCI compliance environment, others may be optional (e.g. daily stand up). While a set of practices may be recommend at the outset of a project; as few as possible should be mandated and as many as possible placed at the discretion of the team. This promotes self-organising teams, innovation and motivation. This builds on Kaizen principal that those performing the work are best placed to determine how the work can be best achieved.
Over the years the industry has spent much time and effort working on ideas ways to improve requirement gathering and analysis â€“ it has moved through different types of method â€“ what it has not had is a single framework that provides state against the business goal, requirements, deliverables and those involved in delivering the solution.
Some may say that the best organisations will intuitively practice the principals that SEMAT extols, the problem is that most organisations arenâ€™t the best and often do not know what needs to be done to improve matters. Using SEMAT greatly increases the chances to succeed.
Further information: www.semat.org