By guest author Tony Scott
Outsourced Product Development
Anand: Let me fast forward to where we are today and what we do. We are positioned as leaders in the outsourced product development business. The way we define outsourced product development is, in our simplistic way, that we are the Flextronics of the software industry. What we do is work with product: We build products for companies.
And what does “product building” mean? When you have an IT services project, you typically have well-defined requirements, and time and money are the two trade-offs. Money essentially translates into the number of people you want to have on the project. For most IT projects our clients know what they want to get done: The requirements are well defined, and you have to deliver on these requirements.
When people are building products, they look at it very differently. The first thing they’ve set is the date the product is going to be launched, and that is often decided without asking any engineering people about whether it can be delivered by that date. The launch dates are fixed in advance. The next thing people decide is how much money they have. If you’re a startup, you may have at most 18 months of cash available, for example. So in a software product company, product development is all about building the best possible product within the time and money that you have.
Tony: So you have the constraints, which are the launch date and the budget, and then there is a “wish list” of features and functionality with specifications that you may or may not be able to achieve by that date.
Anand: That’s correct. The “wish list” is usually very long. You’ll never achieve everything, but that’s why you get the first version, and the second version, and so on. A software product can continue for a long time, and the challenge is always to determine how to squeeze the most you can in any particular version.
So you are making design trade-offs to ensure that you can get the most usable product at the right price and without violating the launch dates. The launch dates become critical. Many companies want to ship an updated version every six weeks or eight weeks. If that is the case, everyone has a timeline on which they operate – it’s a giant clock – and everyone on the team has to be tuned in to that clock.
When we work with companies, they don’t always know exactly what they want; they have a view or way they are going, but they are open to suggestions if we catch them early on. Companies are increasingly using agile development strategies these days, so people have a short six- to eight- week window in which they have frozen requirements, but after that, there is flexibility.
Tony: Do you find a six- to eight-week development cycle window typical of your clients?
Anand: There are some who go shorter – as short as three weeks – but six to eight is what we find most typical, especially when you work offshore. So you try to make the best of what you can in that period. You have well-defined requirements for that period, but what will happen in the next iterations is usually a little fuzzier. That’s pretty much how these things operate from our side. We have to react to these kinds of situations and be in a position to contribute product ideas as we are building the product. That’s usually one thing our clients welcome. So it’s not like I am bidding on a fixed requirement