Software system change, modernization – a new approach

By Peter Czernecki

This article, was prepared based on the presentation held at Common18, San Antonio, USA on May 23, 2018.

The original presentation can be downloaded from here (click/tap).

—Foreword: we are hands-on software developers and practical strategists.  We created this presentation and articles to help others to move on with their efforts, be it modernization or any other system change, easier, faster, with lower risk.—

Sigmund Freud was the first pioneer when it came to understanding people scientifically. Based on the learnings of how people behave we can perform software system change just much better.

Though we gave this approach a title with a tag: “agile” – this is not just another article on agile. We hope it is more.

Freud — with a look

We, at iAGE (this is one of my businesses, you can see the two others here: http://www.10xone.com/ and here: http://www.secretcube.com/) have been working on information technology system change and modernization for more than a decade — we are consultants and developers at the same time, with significant experience, each of us. We build new technologies on the top of existing technologies. We have had 200+ projects in the past 10 years, all with 100% success rate. How can you have this level of project success? Firstly, we take on projects that we think we can do. This is the easier part. And the rest can be found in this article.

What we do — technology independent solutions for legacy systems

The basics

We think that small, subtle differences do matter. Just think of the first iPhone: there was no other real difference from the phones you had had before than the fact that there was a touch-screen instead of a keypad.

iPhone 1 — small, subtle change: touch-screen that really works

The same way there must be a way to make changes to existing technologies which works better than other usual approaches.

It is not Systems but People first

Any system design, change starts with humans.

Ian Sommerville, in 1975, already had in his book () the idea that any computer system we design is a socio-technology system. “Socio” comes first, where it means “humans”.

It is not the people but the situation

This idea is from the University of Chicago — and sociology (I am sure that not only the UoC teaches this but this thought (not the people but the situation) is a core part of many other sociology courses.

In essence: it is very easy to think that people are the way they are. The fact is that they are not. Very often how we behave is HEAVILY influenced by the situation.

What all these have to do with any IT system change? A lot! In a business we have to understand first the situation to expect any change.

People (and $$$) and the situation — note: “management” is a collection of people, too 🙂

To prove this above (e.g. that people are driven by the situation), there have been a number of (rather scary, frightening) experiments:

Jane Elliot: Brown eye, blue eye: in this experiment Jane Elliot, a school teacher, could achieve her students to perform better just telling them that “blue eyed people are better”. Then a few weeks later she changed the message to “brown eyed people are better”. This latter caused, again, change in performance: only with this message she achieved that brown-eyed students actually performed better.

See the brief video here: Jane Elliot — Blue eye, brown eye

Similarly famous experiments are: Stanford prison experiment and the Stanley Milgram experiment. Watch them, it worths the time.

“It is not the people but the situation”-and IT system change

When it comes to change, there are different resulting responses — to change — by different people: doers, sitters, quitters. Doers will act, sitters will wait, quitters will-not that surprisingly-quit.

In such a setting what YOU do fundamentally affects others. You have to change your behavior (if you are a sitter or quitter) or just simply to show off to others that you are, indeed, a doer (if you are). Doing so can tilt the situation: sitters, when they see that there are others who actually started to DO things, will join doers:


How to become a doer?

We have put together a framework — this is not a scientific framework but a collection of best practices. It is simple, powerful. It is seemingly hardly different from the one you may be using, but small, subtle differences do matter.

Our model for IT system change — how to become a “Doer”

Agile IT system change — people

We believe and see that “it is not the people but the situation” — this means that you have to start changes today.

An exciting, huge example for the success of this approach is the well-known NUMMI factory (today this is the Tesla Factory) in Fremont, CA:

NUMMI on Wikipedia

In this NUMMI example General Motors employees had been the worst ever workers in the auto industry in the U.S. When Toyota Motors took over the factory workers were not replaced by new workers, and only the change in the management methods and approach made these formerly troublesome workers into real champions.

The NUMMI factory — today this is Tesla Factory in Fremont CA

Our good example is an international leasing company in Mexico City: when we took over software development they had 100’s of unresolved RFC’s with severe delays etc. — we introduced our agile methods, took over some software development work to establish good practices and trained and empowered local people. In 6 months all RFC’s were resolved and IT people as well as users were definitely happy. We only changed the situation.

IT system change-and people: the agile approach

Agile IT management: Firstly, if you are in IT management: you must be a role model: you have to be fast, focused and show up that you do experiment with things-this latter means, as well, that you can make mistakes. A small note: being a role model means, as well, that you as a technology leader MUST use the latest technolgy be it the latest iPhone / Android (yes, the top-top device) or laptop. You have to lead by example. And: you have to be fast: be it typing fast or making decisions fast (ok, it is not ALWAYS possible, I know).

Add as a new KPI: the number of fundamentally new technologies tested / tried / piloted / used per every 6 months. Do it before your CEO asks you to do so.

Agile IT people: you have to expect the same (speed, focus, experimentation) and help them to act similarly. Again: it is all about the situation. You do not only have to say but incentivise your people to act the same way. E.g. encourage people to experiment. Do not punish them for mistakes. Encourage them to have more and more new ideas, projects in any given period of time.

Daily standups: One important aspect of agile people management is daily standups. We highlight this as this in itself is a means for fast-paced communications and setting priorities daily. This, again, shows as well to people that “yes, speed is important”. Stick to 15 minutes per day, maximum. And: do not solve problems during this 15 minutes-just update on status and collect tasks.


IT system change — the agile approach

There are multiple approaches to IT system change. In today’s world the bigger the change is the more certain it is that the change will not happen (“do nothing”) or if it happens the IT department will apply a “Go big” approach, be it tool-driven (when there comes a big technology vendor and sells its tool and then the IT department implements it) or tool-independent.

In theory this is easy, just like brain surgery: it is just 3 steps: you open the brain, operate it, close the brain.

In practice it looks different. Much different. Hence the 24–48 months long projects.

In practice IT system change looks different — with plenty of additional steps

But if this is the case:

we need a better approach. SAFE Agile comes to the rescue:

With SAFE Agile everyone can be constantly happy

In this case there are 3–6 months projects. Several. Not only one, big. This reduces risk (still there is some, for sure) and makes everyone happy. Sounds too good? Please note that SAFE Agile is different from “Agile”:

In SAFE Agile you do have: strategy, pre-planned architecture of systems, planning and there is documentation!

Besides, SAFE Agile is not a one-time system change project but it is an ongoing process.


Agile decisions

Instead of writing a lot about how to make decisions in the agile world, we have put together a simple 1-page decision sheet that summarizes the followings for each change initiative:

  • Your business strategy and factors
  • Project necessity and goals
  • Team
  • Benefits expected
  • Costs
  • Risks
  • Approach on resourcing
  • Current status
  • Next steps

Please note that the entire document is 1 page only — on purpose. This is to ensure that more time is spent on actual thinking than writting. In essence the essence is what is essential. Got it?

The decision sheet is accessible here: https://docs.google.com/spreadsheets/d/1uAS2BXBr4CNJD-qX9JpgmZgHumEXHrkImMWPdv6OCeY/edit?usp=sharing

(You can download an Excel version with: File — Download as-Microsoft Excel)



Tools, technologies

When it comes to the use of something really new-we had a few surprises. E.g. iOS and Android-apps connected to legacy systems:

What we see is surprisingly low-there is some room to grow

What is just as surprising is the low level of AI and big data adoption. And the still low level of AI and big data planned use in business.

Big data and AI does not seem to become into fashion

This is surprising, given the fact that there is a significant amount of tools available. Sure, business applications must be identified first.

We collected some of the in-fashion technologies:

  • Node.js & Node.js on Websphere
  • IBM Watson — to run several different services in the cloud be it language processing, face recognition or building a chatbot
  • Blockchain: to store information in a way that it cannot be falsified by whatever means.
  • Workflow: this is not that new but it is still missing from several older tech stack-shops: to automate processes and unify how processes are executed. A combination of human and automated workflow steps is possible, as well.
  • Big data: to run analysis and get results on very big (TB’s or PB’s of data) data sets, fast. Objective: to learn what you do not even know.
  • Machine Learning: to execute tasks previously performed by humans (robotic process automation, image recognition, voice recognition etc.)
  • IoT: to collect data from devices or places that matter to your business be they pipelines, manufacturing machines or cars (and the analyse the resulting data with Big data)

And a few links to some really exciting sites:

Our favorites are Tensorflow and Apache Spark (these are excellent and free tools supported by a huge community) but there are many many great other tools available.

Just to get the feel of what is available today, only in big data:

Big data landscape — note that there is an overlap with AI tools. Pay attention to the “Open source” box: there are plenty of tools available

The original article, where this image is, can be found here: http://mattturck.com/bigdata2017/


Summary

  • Be a doer, show example to others: become a role model: use the latest tech, experiment, research, add “add fundamentally new technologies every 6 months” as a KPI and believe that your current people can change. Instead of sitting or quitting, DO!
  • SAFE Agile is the way to go: simplify decisions, run projects as repeating processes, experiment, organize daily standups
  • There are a huge amount of new technologies available, including free & open source: experiment with them

Be the change you want to see in the world.

If you need any help or direction-be it strategic, tactical or hands-on software development-we are there to help: