Are We in software crisis?
1968 Garmisch, Germany, NATO software conference: “We are in software crisis”
2021, anywhere in the world: Are we still not in software crisis?
The software phenomena had focused on process(waterfall, agile, etc..), micromanagement (objects at the smallest code level,code reviews, etc...) and yet, to this days projects are failing completely or partially, software development had become to be almost the most expensive part of the budget, and there is growing risk of Cybersecurity to overshadow any benefit a software brings to an organization.
There are several thousands languages with perhaps several hundred thousands or maybe millions frameworks/libraries created over the years and still no light in the tunnel.
Why the systematic policy of reuse as defined by Trygve Reenskaug in his masterpiece “Working with Objects” had not produced the jump of ROI as we were promised?
Is it because the crowd mentality always follow the most popular trend even if is proven to be no good? Or maybe software is a NP problem that will never be solved.
At Scale Campaign, we think that it is the time to move the needle little bit more in the process of finding the philosopher stone and in the process discover the actual solution for the main problem software never really solved: “Bridging the gap between industry domain knowledge and the final product.”
There are two main users for software systems: humans and machines. We will address only the human part here as it is the most painful and expensive one.
Software behavior is almost not mentioned when you study Computer science. Universities tend to focus on everything else but not on the obvious: human interaction with software is based on behavior
- “Behavior or behavior is the actions and mannerisms made by individuals, organisms, systems or artificial entities in conjunction with themselves or their environment, which includes the other systems or organisms around as well as the physical environment.”
That behavior can be taught to create bad habits and if the majority of the users tend to develop these bad habits, the outcome become less promising.
We believe the only way to move away from the path users had been taken for the last 50 + years is to reduce the domain knowledge gap between the idea and the final product.
That gap may be never eliminated but at least needs to close as much as possible.
One solution for this approach is to utilize the idea of using finite number of software features across all industries where the actual implementation is abstracted in exchange for 100% bullet proved solutions using NoCode and semantic environment implemented on the blockchain.
Similar to what semantic Web was described but never materialized, the NoCode approach can deliver. We are not advocating that all users jump and use this model, but those who do can be the majority and the final product could be a fascinating environment. We are building the foundation of that model as we write under the code name ACENji – a very interesting model, where we focus on how applications can communicate between each other and end users can build them within minutes and deploy them instantly to production with the ability to be used by thousand or why not million users at once.
We also agree with Reenskaug that there is no such a thing called Object Oriented Programming. Maybe only Class Oriented Programming. And for that reason we focus on application interactions and not on object level. Objects are too small and their instances are not not well defined under the roles they represent with the contemporary languages. Where if we focus on applications, we can utilize the ability to get closer to the user behavior and try to improve the relationship between a human and a software system.