• Mike Kamish

The Straight Line



“Linear thinking: the straight line is the shortest path between two points."


The speaker was not a math teacher, he was the IT Director of a large school system and talking about why some enterprise software products gain acceptance with users and why some do not.


Evan was an early customer of mine at the time that web applications were just becoming popular. I had been working with him on a web-based student management system that had some rather sophisticated multilingual report cards and tools for projecting risks and probabilities associated with graduation. It was a lot to absorb for school administrators who were new to the internet and used to paper records and anecdotal assessments. Management was very worried about user acceptance. The launch day finally came, the system went “live” and immediately gained acceptance. We had hit a homerun.


In looking back at how that had been achieved, we quickly settled on the reason being the inherent simplicity of design. Many software developers at the time, excited about the user interface potential of the web, were building user interfaces with all sorts of animations and special effects. Those “slick” user interfaces were exciting to look at… at first. The challenge was that when the demonstration was over and you had to actually sit down and work with the software, the animations and flashing panels now became a distraction and the convoluted and non-intuitive steps needed to complete a task became a real barrier.


The challenge of creating an intuitive user experience in software design was well understood by one of the user interface “gurus” of his day, Alan Cooper. He wrote the now classic book “About Face” where he started to lay out the foundation of practical, useful, and effective software design. He talked about the benefits of purpose-built, pragmatic, software experiences that followed the pattern of human thinking – rather than software that tried to force users to adapt their natural thought process in awkward ways to accommodate the convenience of the software developer.

Though he never knew it, Cooper became a mentor to me as I began developing software. The pages of my multiple copies of his book were dog-eared and wrinkled, sections were covered with my notes and sketches. His ideas began to permeate the products I was developing. And it worked.


Evan was one of my first “experiments” in building a user centric application that was practical, pragmatic, and quickly understood by users. His description of the approach as linear was spot on. Rather than do it the way that might be easiest from a programming perspective – my team and I focused on first understanding what the end user needed to do, step-by-step. Even if it did not make sense to us – we wanted to understand what made sense to them. One thing that quickly became apparent was that often-times, the people doing the work could not even articulate all the thoughts and steps they took to do their jobs. So much was “intuitive” and “natural” that they just did it and never gave it a thought.


So as developers, we needed to extract that information from the users. We had to become detectives. We needed to develop interview skills that could pull back the covers over what was happening and truly internalize and understand each of the steps that was happening. It was a very interesting and revealing process for both interviewer and interviewee. And by time the “user story” was defined, we all knew what was needed and how. We had a straight line, linear, path from where they started to where they needed to end up. Personally, I feel like I have had dozens of jobs during my career because I got to know different jobs so well through the interviewing process.


Over the years, the step-by-step linear approach to thinking sometimes gets obscured. In software development, we talk a lot these days about “agile” and “spiral” development processes that circle in and converge on the optimal solution. Those are philosophies that we also embrace and use every day in our product development work. But spiral design is at the macro level. The individual steps that make up the spiral are each straight lines. There is a goal or a ‘user story’ and we build the most direct route to enable the user to achieve that story. The fewer the distractions, the more intuitive.


Linear thinking is a component of spiral design. Sounds kind of confusing but when we do it right, we succeed. And how do we know when we got it right? We know that we have achieved our goal when the user tells us that they found the software easy to use – or even better - when they found it intuitive. That’s the moment when we know we succeeded and that's the moment we strive for with every software module we write.