Mario Cardinal

"The real voyage of discovery consists, not in seeking new landscapes, but in having new eyes" – Marcel Proust

Leave a comment

Single Responsibility Principle

In this post, I explain why the value proposition of the first version of the Slingboards Lab home page was not clear.

An entrepreneur is a creator. One of the challenges that awaits every entrepreneur is to succeed creating simple things with only one responsibility. Everything an entrepreneur creates should do one thing, and no more. In software architecture, we call this rule the single responsibility principle. I learned it many years ago from Robert C. Martin. In object-oriented programming, the single responsibility principle states that every class should have a single responsibility, and that responsibility should be entirely encapsulated by the class. All its services should be narrowly aligned with that responsibility. Another way to state this principle is to say that a class should have one, and only one, reason to change.

I am reminding you of the single responsibility principle because, lately, I’ve broken this rule. It happened when I created the first version of Slingboards Lab home page.

I discovered the problem in the following days when I started testing this page with professional developers. I was mixing two very different messages. On one hand, I was trying to explain what a collaboration board is, and on the other hand, I was presenting our programming platform. Worse, I was using the word “slingboard” and the word “Collaboration boards” to express the same concept. To say the least, the value proposition was not clear. In addition, continuing my tests, I found that the primary customer segment for our product are the team leaders and not the professional developers.

Obviously, I quickly rebuilt the home page to improve our message. As expressed by my partner Erik Renaud: fail fast and learn quickly. Refactoring the website keep me busy most of my time last week. Now our Home Page has only one responsibility which is to present slingboards to team leaders. I transferred all the content that is intended for developers in the Developers Page.