Some technical problems canât be solved by software or code alone; they are systemic, and require a solution that takes into account the impact that other moving parts have on it as a whole. Lochner Eksteen, Managing Director at EXAH, uses Systems Theory to ensure developers integrate solutions into the entire system for which theyâre building. This approach enables them to hone their problemâsolving skills, and to build more robust, more integrated, and therefore more impactful solutions.
A short intro to âSystems Theoryâ
At its core, Systems Theory (ST) acknowledges that any âwholeâ is made up of many moving parts â all of which impact each other in such a way that a change in one will influence another. As a result, working on and isolating the parts of a system â a âsystemâ here could be an app, a product, or even a company and its teams â risks the other parts of that system being negatively impacted. Lochner uses an analogy to illustrate this concept:
âA bodybuilder who wants to improve one part of his âsystemâ â which, in this case, are his muscles â spends a lot of effort, money and time on that. But he forgets to service his kidneys with water over that period, and he dies 10 years later of kidney failure. Overâfocusing on one part of a system is completely detrimental to the other parts of the system. Everything needs attention.â
In other words, when a system is seen only through its individual parts, and not as an interaction of all those parts together, it loses its essential systemic properties â and therefore, fails to function as effectively as it could
An ST approach to development, therefore, means that a developer spends less time actually coding. The majority of the time is spent understanding and unpacking the system at hand, and figuring out how to improve the system as a whole.
In Lochnerâs experience, spending less time on actual coding is useful because the challenge often doesnât lie within the software alone. A lot of of EXAHâs clients are companies wanting greater visibility on a certain thing â cross-functional communications between teams, for example â and just building a technical solution wonât necessarily help contribute to this and solve the overall problem: âYour technology is not the only part that's under stress; it's a mixture of people, products, services, customers, infrastructure... all of that needs to fit together in the end somehow.â
In the sections below, Lochner goes into more detail about how EXAH uses ST to develop software more effectively.
How EXAH implements a Systems Theory approach
Lochner says that a developerâs technical mind gives them a unique ability to spot inefficiencies in a system, and have the technical know-how to solve those problems. This means that Lochner puts his developers in front of the clients they work with to understand the problem first-hand, and then own building out the system and finding the places where it breaks:
âDevelopers have got this specific, unique way of thinking that is more valuable than their ability to code. Regardless of their language, they all have this pedigree for understanding how a system works and what it needs in order to function optimally.â
In Lochnerâs team, this process that a developer follows â before starting on any code â is split into two main parts: discovery, and blueprinting. Hereâs how they do this.
Step 1: Detailed discovery
When a new client comes in, the first month of engagements are mainly conversations between the developers involved, some of the architects, and the clients. That time is spent getting an idea of what their company looks like from a systems view.
This discovery step is crucial for two things in particular: Making sure that the issue the client wants addressed is in fact that thing that needs fixing, and then making sure the solution they build integrates well with the clientâs existing system. âItâs just like starting to build a house without any knowledge of the landscape, any knowledge of sewer pipes, or electricity availability. You canât just start building; it's a massive risk.â
In order to nail down a proper scope of the entire system before launching into a project, Lochner says his team uses a set of questions on a checklist. From an ST approach, this allows the developers to know where they can innovate in the system, how different parts connect and where they are connected, and where they need to expect some kind of work before being able to adjust whatâs there:
âIf there's some legacy system that we can't replace, that was built on Delfi, the devs need to know about that so they can prepare for that in their workflow later onâ, he explains.
Some of the questions they ask include:
- What is your company organogram?
- What are we going to need to integrate with in the future?
- What are legacy systems that we won't be able to replace?
These questions also help Lochnerâs team address and unpack a clientâs uncertainties. From an ST approach, this makes it easier to get a sense of what the actual core issue is â a client might say itâs tracking the pink slips that get handed around, but it might be that they send pink slips in the first place â and therefore work through the system in greater, more valuable detail.
Some things asking these questions help unpack are:
- Value uncertainty: This makes sure that EXAHâs development team, an external dev team, is going to be able to deliver the right kind of value for this client, that they wouldnât have been able to get from contracting or from their own team.
- Process uncertainty: âClients don't understand the process of what development teams need to go throughâ, Lochner says, speaking from his experience. Often, for clients, it might feel like just getting something built by a dev team. However, by outlining their ST approach, and what that entails, they give clients surface area to ask questions, as well as see opportunities for leveraging the integration of the solution into their entire system.
- Readiness uncertainty: Here, Lochnerâs team get clients to ask themselves, âAm I ready? Is my company ready? Do I have enough cash flow? Do we have the infrastructure to support all these automations?â â because, as Lochner explains, the integrated solution may change a clientâs workflow. For example, all of a sudden, a clientâs production time might decrease by 50% with the new integrated solution, âbut can they actually supply the amount of raw material to adopt or even just maintain that new growth?â
Once Lochnerâs developers intimately understand the system and where it can be improved, they move into blueprinting the system with all its moving parts.
Step 2: Blueprinting
The blueprinting phase is done on Miro, which Lochner says has been a fantastic tool for them to map out the system in the kind of detail they need. In order to have a strong foundation upon which to build a solution, Lochnerâs dev team needs an end-to-end system diagram.
For example, one of the systems EXAHâs developers might need to unpack is a company, where its different teams are the moving parts that need to interact. In this case, mapping it out would require laying out where all the teams are situated in terms of their role in the company, highlighting all the touchpoints and interactions between those teams, and defining what those touchpoints look like â be it emails, inâperson meetings, or Slack messages. From there, they cab start ideating technical solutions to improve that system.
âWe need to make sure that everything is as well scoped and as well thought out as possible before we take that aircraft off the runwayâ, Lochner explains. Otherwise, the picture is incomplete and, to his earlier point, a developer wonât be able to spot the opportunities for integrating the final solution.
Although Lochner has different templates for the different kinds of clients, two pieces of information he suggests to include in whatever template you use are:
- Handover points: Wherever some kind of information is transmitted, itâs labelled a handover site during the discovery phase, and gets marked on the system Lochnerâs developer maps out in the blueprinting. This is because handover sites are often prime opportunities for system inefficiencies and for building an integrated technical solution that makes it easier, less risky and more visible. In the âpink slipâ example from earlier, this wouldâve been marked as a handover site with a certain colour sticky on Miro.
- âFront and backstage actorsâ: âAnybody that engages with a customer needs to be in the front stage acting environmentâ, Lochner says. âAnd then the backstage actors â that's everybody in the business who forms part of the service, or delivers the product. They never directly interact with customers, but their customers are, in essence, the front stage actors.â In this way, Lochnerâs team not only marks touchpoints, but marks the kinds of people who participate in those touchpoints, which informs the kind of software and technical solution the developer might be able to build later on. If itâs someone who is out doing a lot of deliveries, for example, the solution would be different to what the deskâbound HR manager would need.
And, step 3... start coding!
Having blueprints for the system gives the developers enough foundation to springboard into actual development, where Lochner says any coding â if the solution needs it â is now executed.
For more information on ST, EXAHâs video on the paradigm explains in some detail what it is and how they use it. They also have a webinar you can watch, which unpacks it a little more.