What’s your problem’s domain?

I introduced 20 New York state-licensed engineers to Agile concepts at the 2019 Engineering Symposium Rochester.

The most concise review I heard was “mind blown”. Another person was a non-believer. Most of the audience members were established Electrical Engineers.

One of my core premises was that Software Engineering typically resides in a different Cynefin framework quadrant, a different problem domain space.

Although Electrical Engineering problems take considerable expertise, the solutions are generally governed by known physics and manufacturing limitations. There is an expected endpoint deliverable that may not be physically possible. I categorize it as being in the Complicated problem domain.

Software Engineering, because of its inherent flexibility rarely has a static endpoint for development. This is exacerbated with products that interface with people. Customer style choices change with time. Market research can change the desired direction of development.

The software application space is nearly as volatile as the fashion industry. Optimally, the software engineer works to make the things that are likely to change easy to change. It is easy to understand that the look and feel of the graphical user interface will need to change. Other items that will need to change are not as obvious.

Due to this moving target, I categorize most Software Engineering in the Cynefin framework Complex problem domain.

Non-Software Engineering problems that work with the natural environment, biology, or unpredictable inputs (e.g. waste streams) blur the line between the Complicated and Complex problem domains.

Here is the presentation that I used.

What is your problem’s domain?