People Centric Software Design - Development Philosophy Part 1

Add comments

I believe it is important to have a philosophy when approaching problems in all areas of life. In fact, whether it is clearly stated or not, we all approach life’s different problems with some philosophy. Over the years I’ve spent a good deal of time defining, ripping up and then redefining my philosophy of software development. In next few articles I’ll share with you the Phase 2 approach and why we’ve had such success as a result.

Software development, especially custom business software is at once exciting and extremely difficult. Two companies are never the same and so their software needs are never the same. The technology stack I would implement for two separate companies, even in the same industry could be entirely different. This makes creating a solution difficult, though probably not in the way you would think. The software part of software development is, really, fairly easy. Although, I am spoiled by being surrounded by a group of some of the smartest and most talented people I’ve met, writing code to solve a well-defined problem may take a bit of time, but it’s straightforward. The biggest challenge with software development is you and I.

Designing something that is easy for a human to use is difficult.  As a general rule, a device or piece of software that’s easy to use is the result of the design team having remarkable clarity in their understanding of their audience and of putting in a tremendous amount of hours.  In his book The Design of Everyday Things, Donald A. Norman describes design as a process of communication.  Well developed software is a process of creating something that effectively communicates with humans, how we think, and how we work.

My approach to software is that it’s simply a tool to empower humans, like a very sophisticated hammer humans use to do increasingly sophisticated things. Like a hammer, software should enhance the way people work. If your standard hammer didn’t have a handle it wouldn’t be useful. Software must not only be useful it must always be empowering, it should help us work, think, learn, communicate faster, smarter, better. It must be people centric.

When I say people centric, the first thing many think is that the software should have a good user interface, meaning it should be easy to use.  That’s right, but it’s much more than that. Taking our hammer example, a handless hammer has a rather poor user interface, and does little to empower us.  Go a bit further and we start talking about user experience. A hammer could have a brilliantly designed handle but weigh 100lbs. It’s going provide a rather poor user experience when you have a thousand nails to drive.

A brilliant user interface and intuitive user experience is still not enough.  To get elegant and meaningful people centric software design we have to start at a more fundamental level. People centric software design has to start by helping people achieve their goals and solve their problems. If I’m building a fence with screws, a perfectly designed hammer is still worthless for the task at hand.  The critical first step to successful software is developing a deep working knowledge of the wants, needs, goals and problems of the people involved. This is the heart of people centric software design. Good software enhances humans; it must solve human issues and improve human activities.

The Phase 2 mission is to improve our client’s business through software solutions; the only way to do that is by empowering the people in an organization with people centric software solutions. This is the key to success in the face of all the challenges of software development, the required first step in P2’s development process and the foundation of my philosophy on software development.

Leave a Reply