Our Blueprint

Software Complexity

Written by Chris McNally | Mar 4, 2020 2:24:43 PM

As software takes over the world, we are dependent on things controlled by code. The world used to automate things with mechanical and electrical solutions. These were physical things we could see working. If your car stopped running, you might be able to see if the problem is an alternator, a loose spark plug wire, or something else. Now cars today might shut down completely due to a sensor detecting a potential problem. You may have no idea what happened other than the car flashing a warning for you to call service. If your smartphone freezes, and every time you reboot it the same thing happens, do you know how to fix it? Increased complexity in technological systems makes it harder for users to know what’s wrong with the systems they use every day. Complexity, by definition, is the state or quality of being intricate or complicated.

Software complexity is a byproduct of the functional complexity that code is attempting to enable. A cause and effect scenario. You trigger an action by executing a task, making a phone call for example. The code in your smartphone software enables the completion of that task. With interfaces and complicated requirements, the complexity of software systems sometimes grows unmanageable. This makes applications costly to maintain and risky to enhance. You know how to use the phone, but perhaps you are not aware of the things your phone is doing in the background. Left unchecked, software complexity runs rampant, leaving behind bloated, cumbersome applications. This can result in frustrated users and reduced efficiency in business workflows. This impacts workflow results, creating cost overruns or increased risks, further decreasing net profits.

The dilemma of complexity in internal workflows drives consumers to more customized solutions. The motivation behind custom software is to be as customer-centric as possible. Software companies want to create products that fit the needs and workflows of the client. Custom software that works well can drive organizational productivity. Software programs can also contribute to a smoother learning curve. This can save costs and time on training, and can help with the implementation of the new software. So how do you choose a custom system without increasing unwanted complexity?

 

 

When identifying a software platform, start at a high level. Identify what challenges you want to solve and what your current system is lacking. If you opt for a robust system that your internal staff cannot use, complexity can bog down, rather than improve your workflow problems. Employees begin to circumvent software applications meant to streamline an organization. They create manual processes within their comfort zone vs. leveraging the software application. This reduces the scalability and efficiency of an organization. These redundancies outside of the system also increase risk. Doesn't sound like a winning combination does it? So how is this prevented? Much like recruiting and onboarding a new hire, Identifying, Interviewing, training, and support are critical.

1. Identify

What is the problem you are trying to solve? For many, the issue is creating workflow efficiencies and consolidating existing platforms into a single, easy to use one-shop-fits all model. Without sitting down and identifying what your root problem is, fixing it becomes another matter. Mapping out the outline of what are you are trying to achieve will help you and any consultative provider determine if their platform is even the right solution. Much like a car, understanding what you want before you step on the lot is more efficient and gratifying in the long run as opposed to impulsively buying the first car you see and hoping it meets your needs.

2. Research

A simple google search regardless of queries will return a myriad of options, depending on what system you are looking for. Companies utilizing AdWords or SEO will popup first, seemingly answering your immediate needs. Ironically, most people do not make it past page 1 on Google before making a choice. This is why so many companies spend a pretty penny to rank on the first page. Sadly, depending on your requirements for solving your specific problem, the solution might be on page 2. Spend the time to research the best solution for your specific needs, and resist making impulsive decisions.

3. Onboarding

I bought it! Now what? So many systems advocate an “Amazon” effect, meaning consumers purchase and use the software without any human interaction. That, in theory, is nice, much how Carvana has soared to success by allowing people to buy a car without having to talk to a Car Salesperson on the lot. The problem arises when users run into roadblocks and problems trying to implement the system. Without an onboarding strategy, and transition assistance from the software provider, workflows are further interrupted and user frustration skyrockets.

4. Support

Patches, updates, bug fixes, etc. seemed to be rolled out regularly, regardless of system. The question is how do these updates affect the consumer? Ongoing support is critical in any workflow implementation. Without it, roadblocks can arise that can, much like the car maintenance light, stop your system in its tracks. With a poor support system, you may spend hours or even days waiting for a solution. What does that do to your internal and external processes? How does that impact your ability to generate revenue? What is the negative effect on your brand?

 

 

Most users and companies are reluctant to adopt new software changes due to downtime caused by learning a new application. HubSpot claims that as much as 97% of a customer’s decision is influenced by the product’s experience. User Experience refers to a person’s emotions and attitudes about using a particular product, system or service. It includes a person’s perceptions of system aspects such as utility, ease of use and efficiency. Keywords there being ease of use and efficiency.

Much like creating an organizational Vision or Mission Statement, identifying what problems software will solve is the first step. Mapping out what the problems are, how workflows are impacted, and how efficiency can be increased are the next steps. Without an overarching vision or goal for implementation, consumers often purchase a robust platform that does not fully meet their needs. Or, they acquire a complex platform, which causes more problems than it solves. Knowing what goals you want to achieve, creating an outline for how those goals need to be achieved, and building in metrics and scalability are key components for ensuring whichever platform you choose, advances your company’s goals, rather than hinders them. Otherwise, software complexity can complicate organizational workflows, diminishing returns on investment, as opposed to increasing.