3 ways software product managers can work effectively with development teams
November 29, 2009 7 Comments
As a software product manager, I spend a lot of time working with my development team in making sure that they are well aware of the customer pain points and the requirements of the solution we are trying to build. I have heard from time to time from my colleagues and also from software product managers in the community as to how development team does whatever they want without paying too much attention to the market requirements. While it is true that development does embark on some “skunk-work” or their “sandbox” projects, I have been lucky enough to have my product development teams more in tune with the market research my product management teams have done.
Here are some tips on how you can make sure your development team stays tuned in to the market needs and builds very simple, easy to use products that will delight your customers.
1) Involve the development team early – One of the common complaints I have heard from my developer friends is how their product managers do not get them the actionable information they need about customer needs. Go figure! We as software product managers think that development teams want to do whatever they want and the developers are complaining that we are not getting them the information they need. Guess how developers find solace? They start writing code. When they have written enough code to solve the customer problem they perceived to be right, you as a software product manager stepping in with market information is of no use. Here is one of my common mantras to anyone who cares to listen – “Developer resistance to a software product manager is directly proportional to the number of lines of code written.” More code they have written, less chance you have to influence them and get anything changed. And guess what ships – what was written.
So how can you mitigate this problem? Involve the development team early. Trust me there is no time called “too early” to involve your development team. Involve them even when things are fuzzy so that they can start asking you all the questions to which you have to find answers. Make it a collaborative process. Set expectations that you do not have all the answers yet. This puts their skin in the game – it builds a sense of ownership. Product ownership can do wonders. Before you realize, everyone is rowing in the same direction and everyone wants to win by building the right thing. I am yet to meet a developer who wants to create a product that will fail. Yes, there are developers who want to build the pie in the sky solution that only they will use, but you are bound to find such people in every profession including product management. There is nothing you can do to prevent the occasional “skunk work” or “sandbox” projects – but if this is the norm at the place you work, it can only be one of two things – you are not doing your job as a software product manager or you are working for the wrong company. This is because with such state of affairs, market failure can only be a corner away.
2) Be a good strategist, but more importantly be an excellent tactician – Set a good product strategy that will help your company achieve business success. But make sure you remain involved in the execution of your development process. You as a software product manager need to know exactly where the development team stands on your product on a daily basis. You need to know of every bottleneck or hurdle faced by your development team and your job should be to find a way to resolve these issues. This in my perspective is one of the greatest reasons why Agile product development methodology is so successful – every team member is on the same page every day and there are no unpleasant surprises.
Being involved at the execution level will help you build a great rapport with your development team – it has for me. It sends the message that you care about the success of the product and that you are in the trenches with the development team.
3) Be the team’s cheer leader – Being a developer is not a fun job – it is a very stressful job. I won’t be able to do it. Every product development cycle has its ups and downs. Be the cheer leader for your team during these ups and downs. This may mean that you get your team the beer of the week from the nearest micro brewery or you take them out for lunch or dinner once a quarter. Always keep the human perspective – it is not all about work.
Take every opportunity to make sure you stand up for your development team. If your executive management team wants you to give them a briefing on the progress of the development effort, team up with your development lead to do the briefing. If you are going on a customer visit or going to be on a conference call with your customers, invite your development team to accompany you or listen in if appropriate. More you bring them up to speed on the customer’s needs, less battles you have to fight on the problems the product has to solve.
Don’t try to hog the limelight – it is not all about you. It is all about the team. After all your customer really does not care who is getting the internal limelight or who came up with the solution. The only yardstick for the customer is if your company can solve his painpoint with a very elegant solution.
Thoughts? What are your key learnings on how best to work with your development teams?
If you enjoyed this post, please consider leaving a comment or subscribing to the feed to receive future articles delivered to your feed reader.
Image: Courtesy of Bealonghorn.utexas.edu