Where does a developer's responsibility begin and end when it comes to managing the success of a product? This question has been nagging me for the better part of a year now, and I hope that expressing my thoughts will help cement my thoughts on that particular issue. I've been fortunate enough to work in many environments with varying levels of product responsibility.
New Product Development Process
There are many stages to get through when developing a new product. They differ from company to company, so I am using the eight stages described on Wikipedia.
- Idea Generation
- Idea Screening
- Idea Development and Testing
- Business Analysis
- Beta Testing and Market Testing
- Technical Implementation
- New Product Pricing
I realize not all businesses operate under this process, but let's assume most do. My guess is the majority of developers are solely responsible for technical implementation, which in this case accounts for 1/8th of the entire process.
1/8th Isn't Enough
More often than not, as developers, we are constrained by our duties to a company. I've heard many times, "You're just a developer, leave the other responsibilities to other departments." Being responsible for only the technical implementation phase is wrong, and there are many reasons I don't like this approach:
- Detaching from the first three stages means I have no investment in whether the idea is a "good" or "bad" one. Passion is a major driving force behind my own work.
- Ignoring the business analysis stage means I may not fully understand how an idea will generate revenue and ultimately keep the team employed.
- Not being involved with beta testing and market testing could be catastrophic as it may put a layer of separation between implementor and user. This disconnect could lead to dangerous assumptions and frustrate customers.
- Being left out of commercialization seems like an underutilization of the individuals who implemented the idea. These people could enthusiastically educate other team members and customers.
- The last stage, product pricing, is critical to understand the actual impact to the business.
I believe that a successful team is invested in a product from beginning to end. While product members have direct responsibilities, everyone should be invested and involved in every stage. This includes input and the possibility to implement any particular phase. For developers, writing code and shipping features is no longer enough, and being apathetic to other stages is dangerous. Developers have an obligation to see the work we do make a positive impact on our place of employment, the life of the user, and the world we intend to help.
I'd love to hear feedback or your thoughts, please comment or tweet me at @buhakmeh.