Managing Software Projects in Product Companies vs Services Companies
Having moved between Software Services companies and Software Product companies, I realized that there are significant differences between Project Management best practices in these two kinds of companies. Since a lot of the Software Product Companies hire their Project Managers from the larger Software Services eco-system, these differences can lead to consequences that can range from just “damaging” to “disastrous”. This article is an attempt at summarizing these learnings, so that we clearly understand the differences and the challenges in Software Product companies. These have been catalogued into the following broad categories such as Scope Definition, Quality Assurance, Time Management, HR Management and Organizational Aspects.
In the Service Environment, the scope is usually very well-defined with RFPs, Requirement Docs and such artifacts. It can be clarified with the customer in case of doubts even in the interim. This environment is heavily “customized” for a particular customer. However, scope is always vague in the Product Environment. Additionally, requirements can come from anywhere like current customers, industry forums, regulatory/standards organizations, marketing, field consultants and customer support. Hence, the project management needs to figure out the “appropriate” scope from a variety of responses, keep the entire team focused on the “right” things, encourage “innovation” in product development and maintain “configurability” and “flexibility” in design.
The Acceptance Criteria is either defined or can be agreed with the customer in the Service Environment and customer environment is either known or can be found out. Moreover, “compliance to specifications” works perfectly as a charter for QA teams. When it comes to Product Environment, “Gold-plating” is not a taboo, in fact, it is desirable. Also, QA needs to concentrate on “intangible” factors such as usability and scalability. It necessitates to “anticipate” customer environments and usage patterns. The Project Manager needs to ensure appropriate “test strategy” is being adopted with maximum inputs from stakeholders and help QA teams prioritize work (it is impossible to test all use cases across all possible platforms).
While taking Time Management into account, deadlines are either pre-defined or “dictated” in the Service Environment and scheduling is usually “backward”. In contrast, deadlines are often flexible and “forward” scheduling is possible to arrive at a release date in Product Environment. With Project Management, it is difficult to determine what “drives” a project (Time or Features) and negotiate on behalf of the team while keeping in mind that there is a trade-off between them. The account for time spent on Customer Support (Sustenance Engineering) and Research in scheduling for projects is another challenge project management meets in addition to the need of ensuring that flexibility is not misused to get “sloppy” about time.
In the Service realm, “HR” or “Resource” department plays a pivotal role as opposed to the Project Manager. Also, teams are “transitory” in which Project Manager has no time for “team building” and emotional intelligence is not critical for him. As longevity of teams is a crucial success factor in Product Environment, team building and retention are significant in it. The human aspects are also equally important and Project Manager requires high emotional intelligence. Consequently, promote loyalty to team and/or product while avoiding “boredom” seeps in is one of the project management challenges. Also, Project Manager has to manage team members’ aspirations in terms of work content, compensation and growth within a limited spectrum.
When it comes to organizations, structural is mostly “hierarchical” in service companies whereas “matrix” in product companies and “cross-functional” savvy is more critical. Furthermore, Senior Management involvement is less in service companies’ projects and usually getting involved only in times of extreme adversity or client escalations. In product companies, lot of attention gets from Senior Management in which product roadmap impacts “strategy”. Hence, project manager needs to “engage” Senior Management effectively and manage their expectations well. While talking about infrastructure, it is a “challenge” to get best possible infrastructure in service companies as infrastructural expenses are treated as “overhead” that reduces the project profitability. In product companies, the ‘investment” in machines and software etc. is more easily accepted since these are capitalized and then amortized over a longer period.
To be the “process champion”
In Product companies, a Project Manager needs to be creative in extracting the “scope” and “key drivers” of projects from the multiple inputs received (if playing the dual role of a Product Manager) while having conscious of “marketability”. Hiring “best” team with right mix of skills and act as a mentor/guide for all team members are Project Manager’s responsibilities. While balancing “operational” support related activities with new developments, a Project Manager has to be the “process champion” to ensure that efficiency and timely deliveries are not compromised.