After writing software in some form or the other for the last seven years, I have finally started thinking about it. I think it’s partly because I am not writing a lot of software anymore and I can look at things more objectively. Anyhow, here is what’s on my mind right now. I do want to note here that these are my views and not the views of SupportBee as a company
The best software is probably the one that never needs to be written. It doesn’t take anyone’s time or confuse anyone. It lets people spend time on things they care about (or should care about). So if there is no compelling reason to write software, I would choose to not write it.
Software as an art form
I am starting to look at software as an art form, just like painting or music. Unlike paintings (but like music), software can be duplicated flawlessly and every user can have a perfect copy of what you have created. So unlike a painting, software can reach more people and offer the experience that you intended.
Software can inspire
Like great art or music, software can inspire people. Even though it’s the pictures in Instagram that inspire people to take better shots, I would argue that Instagram as a software has inspired more people to be photographers. In any publishing medium, the 80-20 rule almost always applies. 20% of the people create and 80% consume. However, every now and then a software platform comes around that inspires more people to create (and even more people to consume, thereby maintaining the 80-20). Blogs, Twitter, Instagram and our own humble attempt, Muziboo inspired a lot more people to create.
A lot of us seek expression through creation. There are a lot of inspiring people and things around us and one way to appreciate and celebrate that is by making our own things. If you were an architect, you would build buildings and that would involve a lot of natural resources and leave a mark on our planet. With software, the long lasting impact on our planet is a lot lesser (ofcourse you want everything to run on green electricity!) and so you can play around a lot more with it. That isn’t to say that there is no waste – time is the valuable commodity in the software world.
Software is primarily about handling errors
With the rise of the smart phone, people are carrying software with them everywhere they go and using it like an extension of their self. Text messaging is a great example of it. Music is another one. People use these two on holidays, during their runs and places we would not have been able to imagine just ten years back. When software is used so much and in so many different conditions (poor network for example), it’s bound to fail. How you handle those errors and recover from them and keep your users in the loop is going to determine how frustrated your users get. And that will determine how likely people are to use your software in their most private and personal moments. WHen you are celebrating a great moment and your camera app fails to initialize, you are going to make someone wary of using it the next time around in a similar setting. To make a truely great software, you have to design around the possible errors. It can’t be an after thought.
That’s all I have in mind for now! Good to get it out into this post and clear up the space for other things.