Agility Feat - Custom Software Development

Learning to accept simplicity

Posted By:

Arin Sime

Learning to accept simplicity

airheadslogoRecently I was in a meeting with one of our clients at AgilityFeat. The project lead at the client made a simple, but very powerful statement as we presented an assessment and proposal. “One of our challenges is that we need to learn to accept simplicity.”

I love simplicity, and breaking complex systems down into smaller parts. It’s the most important skill I learned in engineering school.

Some of my favorite things in life are simple. I like to ride motorcycles, but I don’t like the real showy or fancy kind.

My wife and I own a couple of old BMW motorcycles that are referred to as “Airheads”. They are called that because the engine cylinders stick horizontally out the side of the engine, and are cooled by air instead of oil. That makes the design of the engine much simpler.

This is not my bike, but it looks very similarNot everyone likes the look of those engines, but they have a loyal following of people who say that the simpler design makes them a much more reliable motorcycle. My 1973 R65/5 (black with white pinstripes of course) is now 40 years old and still a great bike.

Well, let me be a little more honest. My bike is still a great bike, but it doesn’t run great because I work on it, and I’m just not a very good mechanic. But when I’ve taken it to friends with real mechanical skills, they comment on how easy it is to work on and maintain. No doubt they are wondering why a smart guy like me can’t do it myself.

Part of my problem is that I’ve hacked on it too much. I stripped the engine down to replace the clutch and never put it back together properly. I’ve let parts of it deteriorate like the left hand mirror whose threads are stripped and allows the mirror to spin at higher speeds. I did a poor job of rewiring the bike once when I added a sidecar to it and now the electronics are a mess.

My wife is much smarter and doesn’t let me work on her Airhead. Not surprisingly, her bike is much simpler and it runs better.

Enough about my bad mechanical skills, the point here is that usually the simplest design is the best. However, accepting that is easier said than done.

Our client employs a lot of smart people. However, just like I did to my motorcycle, they have overcomplicated it. They cut and pasted code and processes multiple times because they didn’t have the time to architect a more flexible system. They tried to bolt on third party and open source systems without integrating them in a way that maintained user experience.

Is your company in the same situation? Are you making things too complex?

Here are a few tips that have helped us, and our client:

Tip #1: Question assumptions

It’s great to talk about the pain points of how users are doing things now, but you need to back up further and understand the overall goals of the users. They may be blinded by their current experience and the current system they have.

Don’t just map out the business process as it’s done now – look for the commonalities among disparate but similar business processes, and simplify them. Question the implicit assumptions behind how things are done now.

Tip #2: Listen to the real customers

If you are trying to convert someone’s manual spreadsheet process into a database for example, it’s easy to think of the company’s internal staff using the spreadsheet as the only customers to it.

Don’t focus only on internal users, but also the actual customers of the company who may only interact with the system indirectly. That internal business process is still modeling interactions or touch points with real customers. How does it affect them?

In our case, we were able to identify that external customers were gaming the system that was modeled in the client’s current systems because it was too cumbersome. This created pain for the client’s customer service team as customers kept asking for exceptions to rules. By simplifying the process to focus on what was most beneficial to the external customers, we are also making the lives of our client’s support staff easier.

As a side benefit, it’s also making the software much easier to build, and therefore less expensive.

Tip #3: Use customer scenarios to test the process

After we thought we understood the problem, we identified a simpler process and the associated business rule changes that would be necessary. Our UX lead Mariana made a great set of user flows that showed how customers would interact with this new system, using very specific data points that allowed us to consider realistic situations.

Even though our client had a hint of where we were headed, they were impressed and the visual scenario made a big difference. It helped them visualize the results of the process and technical change.

Accepting Simplicity

It was this visual representation that triggered the client to comment, “One of our challenges is that we need to learn to accept simplicity.”

He liked what he was seeing, but was a little worried how others would react. The company culture is to worry first about the exceptions, before accepting that a simpler design could be better.

A big part of accepting simplicity is to separate yourself from the past and how you’ve always done things. That cultural shift can make it a road hard to travel, but is well worth it.



Are you ready for the real-time web?

Sign up now for regular updates from our blog and our RealTimeWeekly.co newsletter on real-time development with frameworks like WebRTC and WebSockets.

  
  • Should be Empty:

  • RealTimeWeekly subscribers get a free copy of our e-book!

    comments powered by Disqus