Product Development Challenges

Sudhakar Gorti, CEO of Proteans

Shares his insights on differences between software product development and plain software project execution


Product Development Challenges -
Software product development is a different game altogether from 'one-off' projects. There is a huge factor of the "unknown" in products as opposed to "predefined" in projects. This challenge excites everybody at Proteans since we understand these differences very well, and have inculcated the right product engineering approach in our engineers.

Some of the important reasons why product engineering is different, and definitely more difficult –

  • Support for Multiple Customers: Products differ from projects in the fact that they cater to multiple customers and hence developing them creates several related issues. Each business has its own way of functioning, and teams in each business operate differently. The product needs to cater to different users, teams, businesses and environments, whereas in projects all these are pre-defined. The products need to take care of:
    • Configurability - The products need to be configurable at the user interface level, server level and database level to support different customer expectations and needs
    • Scalability requirements - Each customer will have a different requirement from scalability
    • Installation and Deployment - The installation and deployment needs to be very simple and there needs to be a definite path for upgrade
    • Usability - A key factor for the success of products; the user interfaces must be designed with great care so that all kinds of users find the product easy and efficient to use
    • Interoperability and Integration - Software products must be designed to have interfaces/hooks, which will make software interoperable and is easy and flexible to be integrated with other applications and products
    • Technical Support - A big factor for the product company; the products need to be designed in such a way that the technical support requirements are minimized
  • Secure and Licensed - The products will be hacked by all kinds of people, and the licensing needs to be very strongly enforced
  • Release, Versioning and extensibility - The release process becomes very complicated with several versions running, supporting several platforms. A definite upgrade path from one version to another and support for different version simultaneously pose a great challenge for any product organization