Design the community and then the tool!

What are you talking about? How can I create a community if I don’t have a tool to start with? Maybe if you keep reading you’ll understand.

For now, the only thing you really need to know is that you need a 60 feet long rope, some duct tape and that it takes a lot of time, effort and practice to get it done, but you’ll eventually get the hang of it. Let me start you off with a little bit of history to better understand this concept, that people adopted in the early days of software development.

Back in the days of Windows 95 and when JavaScript was first deployed, when people were still afraid of the Y2K, you as a computer-fearing user, were usually forced to install pieces of software on your slow, but still unbelievably reliable, computer. Those were times when things like the first PlayStation came out, and yes there was a first PlayStation for all you “Call of Battlefield” nerds, the USB became a standard and Netscape was the captain ruling the web.

Installing a program in those days meant you had to spend time actually reading the user manual and, bear with me on this one, reading the full Terms and Conditions and accepting it.

You were supposed to go to school and learn how to use the computer, not find tutorials on the Internet and use those (ok, maybe you could have done this, but that’s not the point here!). It took many years to master the computer and those particular softwares that you needed.

This going to school process and learning the stuff you needed to know to operate something meant that you socialized within a physical domain. You had to interact with other people, to share your knowledge and knowledge be shared with you.

Along these periods of time of interaction with other people, communities were being build. If one particular community was a computer related one then you can be sure that different tools emerged that were built inside that community, by that community, for the entire community.

But not all communities were built this way! No? No, communities were also emerging around tools that were used on a day to day basis. Let’s say, Netscape for example. It had a really supporting community that loved the browser and developed websites using it.

But what made, that community work? And more important why was Netscape such a loved browser and why don’t penguins fly? Because they’re too heavy! No! The community worked because it was “designed” from the start as one and then given the tools to work with. As somebody once said: “Don’t design tools, they are useless. Design a community and give it the tools”. And he’s right! Without a community built around the tool, your tool is useless.

Nowadays, in the era of iStuff and droids on other planets, we take tools for granted, not caring about features and other jibber jabber like a community would. A community is the soul of every tool because it actually gives a rats ass about the features and bugs that you, as an individual, don’t actually care about.

You, as a IE fearing individual, may be tempted to say stuff like: “Oh, I already have a photo album app and I also can send videos in an email, why would I need Facebook or Google+ (ok maybe not Google+!)” because Facebook for example isn’t all about photos and videos alone, it’s about sharing them in a community that you built - your friends.

People these days should try and integrate themselves in a community because once they achieve this they’ll see that tools are made for them with their help. Software making companies need not hide themselves behind big corporate walls, because if they do this communities will crumble and nobody is ever going to like their product, ever!

If you’re a software company don’t just build a tool and hand it over to the users. You need feedback from them and you need a community that supports your efforts in making your tool bug free and full of useful features.

I see more and more companies these days that don’t take into consideration the social aspect of their tools. Why am I saying this? Well because more and more stuff will be, in the near future, made available in a social setting. Users are no longer having school, home or college as a primary social environment because the Internet took over this position. Users want to know everything right in the heat of the moment, well because they can. They want to share stuff with the world and know what the world shares with them.

So if the app or tool you’re making hasn't got a social feature for your users then I suggest you think twice before you release it. Nobody will like it and nobody will use it because having social integration means that you can help your users create a community and be social.

I should wrap this up and I will. In the past, the developer focused on the tool and it’s features. He didn't actually care about the community because he had more important stuff to do, like protecting himself from Y2K (sigh) and to implement features that he thought were useful. Now, if you can’t share the stuff you make with the tools you are using or the output of those tools, you can’t get feedback from the people, from the community. Having an awesome tool, that can’t output stuff that you can share with the community, isn't enough to get the job done.

One last thing to remember: Imagine a community, design for people, make the best tools and give it to them, or you will fail.

Until next time, code long and prosper!