Four centuries of the Essence of Software Engineering
Carlos Mario Zapata Jaramillo
Experienced Senior Business Analyst || Project Manager || Product Manager || Product Owner || UML || SCRUM || Essence || BPM || SDLC || Agile Methods
By Professor Carlos Zapata
It was the year 2414 and as a newly appointed professor, I was obsessed with history. A few days ago I was working with my obsolete quantum computer, (this model hasn't been produced for the last hundred years ago) to simulate the classical paradox of time traveling. I wanted to experience what my ancestors must have felt when facing such problems. Of course, I don’t need to waste yottaqubits in problems easily solved nowadays with string-theory-based processors, but it’s exciting to spend a little time in this amazing way. However, I realized it was time to get my day started as I recalled I had a scheduled meeting with critical stakeholders today… it’s been a little late now and I was running late.
I jumped in my flying car and quickly set the course to the agreed meeting location, I refreshed in my head the objectives of the meeting and the way I needed to combine the main laws of software engineering in order to address the root cause of my stakeholders current endeavor problem. At that moment I recalled the difficulties my ancestors often faced due to the lack of formalism.
Almost four and a half centuries ago, Brooks’ law was informally expressed as “adding manpower to a late software project makes it later.” I don’t understand how people could have worked with such a lack of formalism. Currently, we cannot live without the revised expression “endeavor time is equal to team size multiplied by work efficiency multiplied by the technological constant.”
However, thinking about what software engineers needed to make this formula, it must have been similar to the age of Physics before Newton and Galileo. The notions of force and speed were very common to people in the 20th century, but a great struggle arose among physicists in reaching agreement on terminology. Of course, my ancestors lived through such a struggle in the early 21st century when Jacobson first proposed the Essence, the main terminology we currently use in software engineering. It is difficult to comprehend how people could have survived without the agreement we now have in the 25th century on basic terms—e.g., stakeholders, requirements, software systems, work, and team.
I can imagine the skeptical voices arguing that Essence was not different from the well-known methods at the time but with a different label. Jacobson was supported by Meyer, a well-known computer scientist, and by Soley, a leader in standard organizations. Jacobson and his team (Spence, Kerr, Ng, Stimson), along with some other thinkers (e.g., McMahon, Goedicke and my ancestor Carlos Zapata) initiated the effort to reaching agreement on the basis of modern software engineering.
Even though the paradox of time traveling is still unsolved, I wish I could create my own time machine and return to 2020 to help these thinkers explain to people why the future desperately needs formalisms and Essence to solve the advanced software engineering problems they will soon face.
Finally, my flying car reached the port of the building. I’ve come to the meeting completely aware that the Essence would help me with the problems of my stakeholder's current endeavor in a similar way that Physics helped so many people after Newton and Galileo. It’s the legacy of software engineering and I want to help raise awareness of this legacy when time machines will be common.
Agile Transformation Leader | Driving Efficiency, Innovation, and Leadership Growth | Expertise in Program Delivery, Change Management, and Strategic Optimisation
4 年Carlos, your article makes me want to future-project into a world where methods and practices are not "owned" by anyone but rather are part of a library of open, "human" standards able to be pulled into use by anyone at any time to solve specific problems, and one that adds value to the human endeavour. Essence and the Agnostic Agile movement that formally started around 4 years ago are complimentary. The more Ivar Jacobson and I speak, the more I think we both become aware of this fact. The important thing is that both want to make things better, which is how we grow as a community, industry and as people too. Lean more about the Agnostic Agile movement here: www.agnosticagile.org
If you want to learn more about #Essence and its use cases, here you can find a link: https://www.dhirubhai.net/pulse/learning-essence-its-use-cases-ivar-jacobson
Retired.
4 年Great article, thanks Carlos. Brings it home nicely how Essence should be cental to all our thinking and doing. Particularly enjoyed the reference to Einstein's Cosmological Constant ;).
Heresiarch
4 年This is lovely, especially the implicit augury that it will still take more than four centuries to put engineering back into software.
The realism of the article can be discussed, but what Carlos actually realized is that there is a huge difference between popular methods and #Essence. Essence is about the fundamentals of software engineering. We need of course both, but no one will remember these popular methods in say X years, but if Essence and its use case will be successful, it will be remembered N x X years, where N >> 1, maybe as Carlos suggests. In particular as you already today with Essence can do what these methods can do and much more. And, why wouldn't Essence be successful? <grin>