There are NO Silver Bullets In Systems/Software Engineering

The problem with most diagrams, whiteboards, drawings, and presentations, is that they "dazzle" but do not have "dazzling results". Maybe I should title this post as, "Dazzling Results Don't Lead to Dazzling Outcomes".

The whole purpose of documenting things is to "remember things", to "communicate things", or to "reuse and deliver things better and faster".

In the UML Operator Channel, we talk about and demonstrate Modeling. As a Systems and Software Architect and Engineer, I have seen the good and bad in documenting and collaborating on things.

Drawing Tools vs Modeling Tools

There are many "drawing tools" in the marketplace today. Tools such as Draw.io, Lucidchart, and more. These are amazing and simple tools, and I use them quite often. However, they are not very good at "documenting" and only...sometimes...result in nice "drawings".

I often have to ask the team, "So what does this drawing mean?" that answer is usually, if not most of the time, met with moments of silence. Or worse, the wrong answers.

Modeling Tools, on the other hand, are often used only as drawing tools (empty and meaningless). Modelers and Engineers may draw a picture and then embed the picture in a document, presentation, wiki, or web where they type content explaining the picture. This content is often static, not versioned properly, and out of date (obsolete).

If you can't or don't provide intelligence at the original drawing element, and any intelligence is not complete or in sync, then the effort is worthless.

The Hype

Today, there is a lot of hype around AI, but that too is only as good as the "intelligence" provided as input.

In a convention, I once heard Bill Gates say, "The first rule of any technology used in a business is that automation applied to an efficient operation will magnify the efficiency. The second is that automation applied to an inefficient operation will magnify the inefficiency." This has stuck with me through all my years. I apply this to the acronym "GIGO" or "Garbage In Garbage Out".

There is another saying from the Tao (the way or path) of a Software Architect, "When the process is lost, there is good practice. When good practice is lost, there are rules. When rules are lost, there is ritual. Ritual is the beginning of chaos."

The company I retired from was in constant chaos all of the time, and many shops I support are as well. The number one reason for this, is due to a lack of good processes, practices, governance, and intelligence through effective documentation. When I say "documentation", I don't mean a ton of words!!

Silver Bullets?

In business, the term "silver bullet" is used to describe a simple, seemingly magical solution to a difficult or complex problem(s). Are Modeling or Drawing Tools such silver bullets? The answer is absolutely NOT! You would need a metaphorical machine gun for that to work.

To me, the "silver bullet" is intelligent people using intelligent processes and practices. And I don't mean to follow a process for process sake! I tend to always take a minimalist approach and only follow a process to the brink of solving a problem or doing something effectively.

The key to AI is to use it to provide repeatable and defined input, and then to use that "input" with critical thinking to drive outcomes. In other words, do NOT use AI for the outcomes themselves. AI is only as SMART as the intelligence (data) provided. Maybe someday, AI can replace human thinking, but today it's not there. At least, I have not seen it yet.

Pictures Speak a Thousand Words

While pictures speak a thousand words, are those words intelligent? The answer is only, and I mean ONLY when they lead to successful outcomes. IMHO, Pictures can form Patterns, and patterns represent things that have been done successfully or poorly more than twice. Poor Patterns are referred to as "Anti-Patterns", or things you do NOT want to repeat. Good Patterns are things you may want to repeat if the circumstances support them.

Both Patterns and Anti-Patterns must be effectively documented and understood by all stakeholders.

Conclusion

Sketching or Drawing things is a good practice at the start of any journey. Drawing is a two-dimensional representation of objects, concepts, or scenes. While Modeling is the process of creating a three-dimensional (3D) representation of an object or scene, often using specialized software. Models can be physical (e.g., clay, wood) or digital (e.g., 3D software). The third dimension, in system/software engineering is data (intelligence), or the depth of understanding. Being able to select anything in the 2-dimensional view and the ability to "drill down" into the meaning of that element or "thing" is key to a better understanding of the model or element (thing). Even the connections between things are a critical part of such understanding. If you cannot sync the "depth" of understanding with the drawing or model, you put the drawing at risk of failing to meet the purpose of drawing or modeling altogether.

Comments

Popular posts from this blog

Sparx EA and Open Collaboration

BPMN Diagram versus Sequence Diagram

MDA vs MDD