…but your sales team isn’t.
Successful businesses produce and deliver products that customers need at a price they are willing to pay for. Most of the time if a customer doesn’t like the product presented to them then they will not purchase it and the company has to redesign the product in order to make the sale. But, it seems some software companies think this kind of business process doesn’t apply to them.
I’ll use an example to illustrate a problem that occurs much too often. Let’s compare the process of building and buying a house with the process of building and buying software. When you want to build a house you find a contractor to take your requirements and build you a home. You spend a lot of time with them to make sure this contractor understands your needs and is capable of building the home you need at the price you feel is right. Some negotiations take place depending on due dates and the complexity of the project. The contractor says he will deliver what is required of him if the customer pays a certain price. The contractor knows that he could lose the deal if he doesn’t deliver what the customer wants. Once in a while the customer will visit the construction site to see that things are going as planned. If there are mistakes in the home then the customer will point them out and the contract can make adjustments. Then, one day the house is complete and the client is given the keys to their home and the customer pays for it.
The software development process is very similar but there are some serious problems. So now we have a customer who is looking for a software solution. This time the contractor is a software development shop that is offering to build the software by a certain date at a certain price. The sales team of the software company sits down with the client in many meetings negotiating features, prices and due dates. Finally a contract is made to deliver a product that the customer wants. But here’s the problem. The people making the contract, offering the features, setting the prices and setting the due dates actually know nothing about software development. They don’t know how long certain features are going to take to actually develop or if they are even possible. Does the sales team really care about that? No. They are going to tell the customer what they want to hear to get the contract and then figure out the details later.
What ends up happening is development teams who actually have to make the product are bombarded with vague and difficult requirements one after another. That is because the requirements are never prepared and thought out ahead of time so that they can be given to the developers all at once. This happens until finally the development team has to step up and and start questioning the requirements in order to meet deadlines. Of course, in order to reject features and requirements it is the responsbility of the developer to fully understand now the cutomer’s needs and the full scope of the product because the sales and management teams want to be approached with solutions to problems and not just a we can’t do that in time response. Of course when this happens a lot of time is wasted trying to setup meetings and waiting for responses from the customer as the sales team tries to renegotiate the contract.
As the deadline approaches the customer usually gets to see a sample of what is going to be delivered just like with the house example. So what happens when the customer says it doesn’t do what they said it needed it to do? Well, you try to renegotiate the contract again to make sure the sale still goes through. What happens when the customer demands a certain feature be in the release that the sales and management teams neglected to mention to the developers until the day the customer realized it wasn’t it the product? Well, now it becomes the responsibility of the developers to produce miracles.
Let’s look at what went wrong here. At one point the company and client did have a clear understanding of what was supposed to be delivered. The problem was introduced after the contract was created. It seems that after the inital negotiation the sales and management teams look over what was promised to the customer and now decide what they can actually deliver with the idea already in their minds that they will renegotiate later. Then, like I mentioned before it becomes the responsibility of the developers to produce miracles when these negotiations fail.
Imagine if that whole process was applied to the home building example. Would you still buy the home if the contractor told you that they couldn’t build the second story for one reason or another but if you wanted you can have it added on later next year?
There isn’t an easy solution to this problem. Most of it is poor communication mixed with unrealistic expectations. When your sales team cannot make a sale without making undeliverable promises then something is seriously broken. You can’t blame the customer for wanting a great product that works. You also can’t blame the developers for not creating the impossible or working fast enough. Its the reponsibility of management and sales teams to bring customers and developers together.
No business is perfect but I believe that to be successful you need to deliver what the customer wants eventually. Some customers might be ok at first with getting a different product now with a promise to get what they want later. But you sooner or later when a customer has to keep going through the same process for every product they want they are going to end up with software that doesn’t meet their needs over and over again and they will eventually look elsewhere.
If you like this blog please take a second and subscribe to my rss feed
Tags: customer, development process, meetings, sales, software companies
Comments: 10 comments
All the fields that are marked with REQ must be filled
Toast
June 25th, 2008 at 1:24 pm
but sounds like a description of the swing Sam showed us at some point…roles i think.
*has no clue if this will work out or not*
Toast
June 25th, 2008 at 1:24 pm
nope no image :(
http://onproductmanagement.files.wordpress.com/2007/07/treecomicbig.jpg
have link
noah
June 25th, 2008 at 1:47 pm
I love that comic.
It’s a weird hand-off from sales to development. It’s obviously unreasonable to try to make the sales team understand, in adequate detail, the current limitations of technology. But you also can’t expect technical resources to be involved in the sales process all the way through.
Maybe the best way to do it is to have the sales team start discussion and give an outline of the product and then when the potential customer is interested in talking specifics some sort of Business Analyst or Product Manager could be brought in. Part of the contract should be an agreement on the requirements so tech should at least be brought in at that stage.
Jason
June 25th, 2008 at 2:20 pm
Haha, I remember that comic. I especially love how the customer was billed.
Jeremy R
June 25th, 2008 at 4:17 pm
Maybe I’m not understanding the role fully, but that was my understanding of what business analyst was for. That comic portrays them as the sales person, but I always understood them to be the link between the technical and the sales side of things. It is their job to understand the technology enough to be able to speak for and create technical requirements for the developers and also be able to understand the sales team and give them appropriate estimates and explanations.
I can see this happening, but if it is happening it seems to me as though the company needs to look into getting a better BA.
noah
June 25th, 2008 at 4:19 pm
Or any BA.
Merovingian
June 26th, 2008 at 1:40 pm
Ultimately, though, the BA is there simply to help minimize the mistakes. There’s no chance that the customer will be delivered exactly what they want unless a) a technical person is involved in every stage of the sale, b) the technical person is involved in the on-site adoption, and c) said technical person is the only one writing the software.
Naturally, that assumes that said technical person actually cares about delivering something of high quality. Anything less than that and the delivered product will still suck, no matter what management does.
Bill
June 26th, 2008 at 11:27 pm
Hmmm… a bit over the top. For starters what you describe in building a custom home is incorrect. You don’t get to wait to pay until the end of the process, typically you’ll spend 50% or more up front and during in progress milestones. Secondly you can’t just walk away - you can fire the contractor - but since you already own the land you are still stuck with what gets built. Just as with software if you’ve asked for the wrong thing and it’s in the contract you have to pay to change the contract.
The key is that in most software projects there is much more left to chance - in a house you can say ‘copper plumbing’ and everyone agrees to what that means… on the other hand if you say ‘SOA architecture’ what does that mean or if you say error logging what does that mean… a good error log can bring a machine to it’s knees.
In reality anytime to try to layout a project from start to finish in advance you will have issues. I like to compare developing software to creating a tunnel. Everyone can see the start and end points and everyone can agree that the tunnel will connect them - but what’s lurking undergound? Will your tunnel hit sand and be unable to keep a support roof - how about water? With software people want to act like the project variables are known - however much more like tunneling there are alot of variables (will that feature be possible) that can impact time and cost.
Author
June 27th, 2008 at 7:25 am
Great comments. Yes the housing example isn’t perfect. In the end the focus was supposed to be more about what happens when it is time to deliver a product and it doesn’t match what they want due to mistakes made within the company and not unexpected issues.
The client never changed their requirements, the company just gave them a “yes, whatever you want”. They knew exactly what was supposed to be delivered but made some assumptions about what parts were negotiable.
Then, after developers gave the company a reality check as to what was really possible in the given time the customer was brought back into the picture and blame fingers were flying.
Jeremy R
June 27th, 2008 at 10:15 am
I think that tunneling example was a great one. Great visual.
Leave a reply