In my previous blog on retrospective, I mentioned that this year my focus will be on some exciting developments in the field of Software Engineering. Currently, the field of software development is led by the Agile software development, It has made sufficient contribution to the whole paradigm of software development. It has made it very clear that “…the sole purpose of software development is to develop software” though it might sound like a Zen koan(1), it is explicitly stated in one of the principles in Agile Manifesto – Working software is the primary measure of progress. The shift in focus from planning, estimating, contract negotiation, hardware, technology to delivering software has made a huge difference.
“…the sole purpose of software development is to develop software”
The last couple of years I have spent studying, practicing, studying, practicing, studying ….. various agile methods and the current state of agile development, there are many new developments happening but in my view, the current challenges faced in the industry can’t be solved by the direction in which agile development is heading. Maybe it is worthwhile to pause and connect the dots with some fundamentals and then build new solutions, frameworks, and methods.
In this article, I will introduce some interesting developments that I found useful. In the later articles, I will share more details about the work we are doing at ProcessWhirl about using behavioral economics, analytics, and Lean Product Development.
It stands for Software Engineering Method and Theory, the initiative was launched in December 2009 by Ivar Jacobson, Bertrand Meyer, and Richard Soley with a call for action statement and a vision statement.
The purpose of SEMAT is to bring the rigor of engineering discipline back into software development. If the project involves developing a driverless car or a health monitoring systems based on Artificial Intelligence (AI) it is important that failure modes are considered as part of the design, the boundary conditions, reliability and critical to quality (CTQ) parameters.
SEMAT can help in bridging the gap between current methods and theory.
The most interesting part that caught my attention while studying SEMAT was “Essence” – it is the kernel or a foundation on top which any method or framework can be expressed. Essence aims to find the common ground across various methods. It is based on three principles. it is actionable; it is extensible, and it is practical.
Essence aims to find the common ground across various methods.
The kernel provides a simple language to express methods and practice, in line with the three principles.
“being” and Agile
This is the topic close to my heart, exploring the world of being. I’m exploring the “being” part of “being Agile”
This takes me back to study of Ontology (I have written blogs and spoken at Global Scrum Gathering and in Capability Counts conference on this topic), It is a branch of philosophy(in particular meta-physics) focusing on study and nature of ‘being’, this term is also widely used in social science, computer science /artificial intelligence, information science and in many other fields.
The term is derived from Greek words, “Onto” for existence and “logia” for study, science. The Latin derivative ontologia means the science of being.
In general, ontology focuses on nature of ‘being’. For example, let’s consider an apple. The existence of apple can be experienced by sight, touch, smell, and taste. In an apple juice, though the form is changed the existence can be experienced in the form of smell and taste. The “essence” or the being of an apple can be experienced.
In the case of living beings the concept of “being” is different, especially for human beings. Human beings have a wide range of ‘beings’ in which they express themselves. Normally they are expressed as emotions like “being happy”, “being sad”, “being angry”, “being enthusiastic” and so on. The being is not just the emotional state but it is much more than that. It is a combination of mental state (attitude and state of mind), emotional state (feelings and emotions), bodily state (body sensation), thoughts and thought process (logic and memory) in a given moment of time or in a given situation.
This also includes mind-set (frame of reference) and worldview (model of reality).
In fact, one can’t write/read about “being” then it becomes “knowing”.
There is a work to be done to express all these ideas as well to study the existing methods and theory. The concept of common ground and Kernel is fundamental and fascinating, it helps to connect the dots with so many interesting topics.
This year also marks 50 years of Software Engineering, time to celebrate as well as take the developments further.
A proper understanding and complete knowledge will help in building effective solutions for businesses and for the society.
Finally, I will end this article with quote from Bhagavadgita(2)
” The impermanent has no reality, reality lies in the eternal. Those who have seen the boundary between these two have attained the end of all knowledge”
(1) Zen Koan
Koans (pronounced KO-ahns) are cryptic and paradoxical questions/ridles asked by Zen teachers that defy rational answers. Teachers often present koans in formal talks, or students may be challenged to “resolve” them in their meditation practice.
The above example can be framed like “What is the purpose of developing software? “https://www.thoughtco.com/introduction-to-koans-449928
(2) Bhagavadgita – Eknath Eshwaran
- CMMI and AGILE – Ontological Perspective – Capability Counts 2017, May 2017 VA, USA
- Ontological Constraints in coaching agile teams – Global Scrum Gathering, Jun 2016, Banaglore, India