Monday, June 22, 2009

Software development business essentials

I am in IT business for more than 20 years already, and since 1991 I am a CTO and one of the two co-owners of the Inreco LAN software development (SD) company. It's quite a time. One day this notion has transformed into a sudden idea: why not share my experience and my thoughts about how this business lives; what are the benefits; what are the difficulties; when and how issues tend to become problems, and so on, so on. It is interesting to discuss these ideas with people who would find my notes worth reading.

So, let's go. Where to start from? Ab ovo, i.e. from the basics, from the very beginning.

Although at a first glance SD business looks easy to organize, to manage and to make money on, in reality it is a very difficult business.

It was difficult always: from the very first days when people began thinking of software as of a product, and up to our times when software is considered just an ordinary industrial object. At the beginning, software was something weird, something unusual, and it required a lot of efforts from an enthusiastic seller to open client's eyes to the benefits that might be got after a new software product is developed.

Now all this stuff about selling SD services is quite the contrary: client is able to find an existing software product for any reasonable need. In this situation, custom-made software seems to be absolutely unneeded. Like if you want to furnish your home, you just visit a store and buy furniture. Right? Yes, but not for all people and not for all possible homes. If you have some special ideas and/or some special home, what you need is custom-made furniture. More often than not, such custom-made furniture costs more than the contemporary, available at stores, however it is worth money you pay for it: this furniture is made for you exactly, and it fits your home, your situation and your style completely.

Absolutely the same is true for software: if you just need to type texts or to send e-mails, or, say, to do simple calculations, than you will be fine with some existing cheap or even free software tool. However, a person might discover a need that cannot be satisfied by existing software. For instance, one is struck by an idea of a new promising business that requires very special computer-based activities or some computer-based backing. In this case customer undoubtedly needs his/here own software adjusted to special narrow requirements. Successfully developed, this software can become a locomotive for the entire customer's business. It is not just a theory, we have a number of real examples around us, among our clients. Take, for instance, the Better World Books company: brilliant business idea and its perfect software implementation resulted in successful business.

So, the general concept of custom-developed software turns out to be absolutely viable. At the same time, the key advantage of such software, i.e. its novelty, becomes the first serious obstacle for the supporting business activities. For a customer and for a vendor, the way they move forward from their very first meeting, is much more alike R&D process rather than a routine business procedure. All this makes custom software development so interesting, so challenging and equitably so difficult.