Releasing your software : Delivery model confusion

Software applications, once they are developed have to be released so that people can use it as per their needs. Long back, I used to think that, one day I will develop some good software and sell it. Few years later I came across GNU/Linux which introduced me to the world of open source system. Soon, I came to know the advantages of open source model and thus, changed my mind to release my “To be developed” software application as open source. I had totally made up my mind to release it as open source until I came across SaaS.

Software engineering is constantly evolving field. Every now and then, you will hear about some new programming practices, some new development or testing models and some new delivery models too. SaaS is one such new delivery model that is becoming popular with increasing growth of internet and decreasing cost of internet access.

In SaaS, your application is released as a kind of web application or web service. You don’t actually sell your application, but allow people to use it and charge them based on usage. Just like your mobile company where you are allowed make as many calls as you want and pay the bill which is calculated from the number of calls and the duration of each call you make.

So why should one release his software as service? Technically speaking, I feel that fixing bugs will become much easier as whole application exists on central server. In commercial viewpoint, you can make more money if your application is used frequently. Also to some extent, it will make software applications more platform-independent and thus people will get access to good software without worrying about its platform.

As the software industry grows, new development and delivery models will come up. The more number of delivery model means that you will need to think more to decide how to release your software application. The more you think, more confused you will get. Thus, I feel that we should stop thinking in terms of models and just focus on providing clients with solutions to his problem.