In the early days of modern computer networking, SNMP (simple network management protocol) and CMIP (the Common Management Information Protocol) vied for dominance. SNMP’s main advantage was its simplicity. CMIP was more elegant and complete.
SNMP is still in wide use. CMIP is more footnote than deployed technology.
# # #
Agile development relies in part on an old, old, principle: Big systems that work started life as small systems that work. The need for TLAs being what it is, in Agile the small system that works is called the Minimum Viable Product (MVP). It’s the system’s irreducible core, and the team’s earliest development goes into defining, programming, and perfecting it. From that point forward, everything else the team builds constitutes an enhancement to the MVP.
Waterfall methodologies aren’t all that different, except for one thing: Agile teams deploy the MVP for actual business use, while Waterfall teams don’t release software into the wild until the whole application is finished. As a result, Agile but not Waterfall teams learn of needed course corrections while in course.
# # #
I know a woman who tried to launch a business. It was, she told me proudly, so complicated that she was one of the few people around who could get it started and make it work.
She wasn’t and it didn’t.
# # #
Which leads to this week’s big idea: Simple is hard. Every increment of less simple is even harder. Starting out harder instead of simpler is usually the wrong answer.
It’s that simple.
Which in turn leads to enterprise architecture, why it’s so often disappointing, and an encouraging trend.
Why it’s so often disappointing: Enterprise architecture is intrinsically complicated, and that’s before its brain trust worked as hard as it could to wrap an impenetrable lexicon around it that separates the Cool Kids Club from lesser mortals who just want to put EA to practical use (for more, see “The Dark Secrets of Enterprise Architecture,” Bob Lewis, CIO.com, 6/8/2018).
Enterprise architecture is intrinsically complicated, and if you buy into this week’s big idea, that makes implementing it intrinsically problematic. Which, combined with numerous recent conversations and inquiries over the past few months, has led to a eureka moment:
Application rationalization is enterprise architecture’s minimum viable product.
What’s commonly called application rationalization is really three different rationalizations within technical architecture’s application layer: (1) true application rationalization (AR); (2) application portfolio rationalization (APR); and (3) application integration rationalization (AIR).
Application rationalization rates the health of each application in the company portfolio, assessed separately from all other applications.
Application portfolio rationalization looks for redundancies in the application portfolio — different applications that provide similar services.
Application integration rationalization reviews the interconnections used to synchronize redundant data, and to collect and present data from multiple “systems of record” (the IT view) as if they were a single coherent “source of truth” (the business perspective.
Together, AR, APR, and AIR determine the optimal disposition of each application, and of the collection of application interfaces and integrations, and then develop a plan of action for achieving those dispositions.
These dispositions range from replacing an unhealthy application; to updating otherwise serviceable applications that are too many versions behind what their vendors currently support; to re-writing those whose functionality is necessary but whose engineering is, to use the technical term, hideous; to sunsetting all but one of a collection of redundant applications … to list just some possible potential dispositions out of the complete list of possibilities.
Also, while this description emphasizes the applications themselves, undertaking any rationalization within the application layer almost always has ripple effects throughout all parts of the business that make use of the affected applications … which is to say, at one time or another, the entire business.
Changing any application will affert how the work supported by that application gets done.
The impact could be negative — disruption. But that doesn’t have to be the outcome. Unhealthy applications usually lead to some level of pretzel logic in the business processes and practices that make use of them.
For example, a process that could otherwise happen in real time might include one or more one-day delays as a consequence of the need for overnight batch processing.
Another process might require users to consult three or four different applications just to figure out what’s going on so they can respond to what should be a straightforward customer inquiry.
So rationalizing the application layer can, if everyone approaches the situation from the right perspective, lead to more effective employees and a more effective business.
All by cleaning up the technical architecture without ever admitting that’s what’s going on.
# # #
If you need help cleaning up your organization’s application layer, don’t be shy — use the Contact form and we’ll schedule a conversation to talk it over.
But of all my wonderful virtues, humility is the one I’m most proud of!
Understandably so!
Looks like the agile process needs adjustment. An unhealthly application missed the spell check cycle before publishing. “Changing any application will affert how the work supported by that application gets done.” 🙂
Don’t blame Agile! Agile teams have testers on them. I don’t have any editors for KJR, which I guess means I’ve optimized for cycle time over quality.
Don’t tell anyone.
The concept of application rationalization MVP for enterprise architecture really resonates with me. In my world, the biggest gift of agile hasn’t been more effective applications projects, though that is a benefit, for sure. Rather, it’s a mindset for stuff we gotta do, whether standing up a PMO, starting up a staff development program, or any of the big changes needed while my leadership team works to build capability, capacity, and culture.
Now I always want to start with that tough conversation (even if it’s just in my own head): What is the minimum viable product? What one capability that can be built quickly and simply would be worth the trouble of implementing, even if it doesn’t do everything we need it to do?
Applied to enterprise architecture, it’s a definitive list of applications in use. I guess we should make that applications running, whether in use or not. Next iteration may be the rationalization plan.
In PMO, it was a list of projects. Then prioritized projects, followed by identified PMs, then by basic status reports.
Agile. It’s not just for projects anymore.