Designing Software

I have been using computers for over 24 years now. In those years, I have seen and used many operating systems and applications that run on these operating systems. I have seen software from a users point of view and software from a designers point of view when I created software solutions. In those years and up to including today, good software design seems to suffer a severe lack of attention. This results in poor quality software that is hard to use and just plain frustrating for the user. Poor software design can have serious financial impact on anyone who uses it. Poor software design makes people loose time and efficiency. Poor software design makes people wanting to cut corners or worse avoid using it all together if the opportunity allows it.

I strongly believe that when designing software, the human aspect, or the end-user, the one who is actually using the software, is the center of an application. By that I mean, every software design should be centered around the user, the woman or man who will be spending a lot of time with it. Good software design is designed around a person who is using it for a particular purpose.

I wanted to express my thoughts about software design and started thinking how I can express my thoughts and ideas in a way that others can understand. I have an intense passion of creating high-quality software. Almost to a point where you can say I have an obsessive passion of creating the best software it could possibly be. But, what is high-quality software? I have come to learn that high-quality software must be coupled with greatly designed software.

Over the decades, the art of creating software has been influenced by several industries including but not limited by the construction industry, the electronics, industry, and the industrial industry. Design principles and ideas leaked from these industries into the software industry.

Designing successful software, in my opinion, can be guided by the 10 Design Principles from the Industrial design principles by Dieter Rams, an amazing industrial designer and an industry icon who has an extensive and important influence over modern industrial design. I have applied his industrial design principles to the software industry the way I see these principles can be applied. Lets first take a look at what these principles are:

  1. Good design should be innovative.
  2. Good design should make a product useful.
  3. Good design is aesthetic design.
  4. Good design will make a product understandable.
  5. Good design is honest.
  6. Good design is unobtrusive.
  7. Good design is long-lived.
  8. Good design is consistent in every detail.
  9. Good design is environmentally friendly.
  10. Good design is as little design as possible.

All 10 design principles can be applied when architecting and designing great software. Each one of these principles above are very true and tested over the decades because they center around a person using a product. The industrial industry has been around for many decades now and we better learn from it.


4 thoughts on “Designing Software

    • By “Environmentally Friendly” in software design, I mean that it should not pollute the visual aspects of the software. Of course, there is no such thing as physical pollution in software unless the software runs on gas powered computer with a gas powered backup-generator. 🙂 Visual pollution could be the extremely busy screen designs instead of a simpler but better screen design, for example. In addition, you could argue that annoying sounds that a software makes, can be added to the Environmentally Friendly software design concepts.

    • I will see if I can ever find the time to publish all software design principles. I will try my best. To be honest, I’m lazy. I’d rather speak than write. I’d rather give presentations than write. Speaking is so much better in communicating ideas and concepts vs writing. Syntax is so primitive when compared to the actual meaning of a message. Nonetheless, I will try to “not be so lazy”. 🙂

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s