I was doing some more rooting around for tidbits from my past that might be interesting and I stumbled on the following document. The context for this is a running narrative of the state of our product development organization over what turned out to be a nearly 18 month period of time. It started with a request from my boss at the time to produce a “state of the state” after roughly 3 months with the organization, and as he came back to ask me to update my assessment, it actually turned into a running commentary on how we had evolved, the progress we had made, and how the issues had changed as our product organization matured. I’ve gone through and removed just a few of the specifics as this was originally intended for internal consumption only but the document is almost completely intact. The first section is my original assessment, followed by three more snapshots done 1 month, 6 months, and 15 months later.
In hindsight, I think the original assessment is pretty close to the state I would expect to find in most product development shops that have been shipping commercial product with some measure of success. The suggestions I made at the time became a prescription for how to correct some of the imbalances that existed and to get more from an already reasonably capable process. I can say that this pre-dates the popular terminology for “Agile” practices, but in it you will see a process mindset that sought to balance the different dependent steps in the process and increase overall throughput from the system. You will also notice that the initial assessment is inwardly focused on processes contained within the product development department, but over time I found that to improve the system as a whole I had to change the expectations of other departments as well. This is always more difficult, but figuring out how to do this through negotiation with other leaders in the organization is the hallmark of “executive material”.
This also reminded me of another process worthy of an essay of it’s own – the “Macro Planning” process. While useful to help us through the transition to Agile, I’m not sure I would recommend it as a long term program management process, but it served its purpose at the time.
Enjoy!
————————————————————–
Product Development “State of the State”
January 9, Year 1
Updated February 12, Year 1
Updated June 19, Year 1
Updated April 21, Year 2
Introduction
Please treat this assessment as confidential to the Product Development department.
I would like to preface this discussion by noting that my intent in this document is to focus on issues and resolutions rather than to identify strengths. It will be easy for you to feel that my conclusion of PD operations is negative overall, but that is not the case. What I have found is that we have a team of bright, highly engaged, and hard working team members. The processes within PD seem well defined, well understood, and consistently practiced. In general, I view the current operations as largely successful, and I think you will see that my proposed remedies represent mostly subtle shifts in role definitions, expectations, and priorities.
Although much of this analysis is based on first hand knowledge, there are some observations and conclusions that are simply subjective hunches. My goal in this report is to document my opinions as of the above date, but these may continue to change as I collect more information. Many of the observations turn out to be manifestations of the same root problem, but that becomes clear in the analysis.
I will be updating this document on a semi-regular basis to include any new observations that I would add and to update on progress we are making to address the issues mentioned. I will add this information in a separate “Update” section organized by date at the end of the document.
Initial Observations
Too much work in process
100% utilization of all resources does not equate to maximum throughput – in fact it is often less than optimum. Whenever you have dependent process steps (in our case, design, coding, test, and release), you have to balance the flow or work through the system or you have work in process piling up in front of process bottlenecks. I believe QA is the most visible bottleneck today, and I also think that we have been minimizing the appearance of this pileup by constantly redefining release content in an attempt to minimize the impact on test. The net effect is that we seem to miss opportunities to ship the products. This also means a lot of wasted planning effort trying to optimize the utilization of upstream resources when this does not actually mean that more product ships.
Insufficient emphasis on test staffing
Test automation could be used to provide more effective regressions
Test team not technical enough to initiate use of automation
My impression is that we have been consciously limiting QA staffing to control the scope of its efforts and to cap the salary expenditure. I believe that this is harming us in several ways:
- They are unable to get involved enough to have significant impact on the design process
- They have the wrong skill set to implement automation as a means of achieving more effective test regression
- They lack the time to develop the technical skills
- The lack of test resource limits our ability to consume more frequent builds
- Since test is the process bottleneck, we are effectively limiting our ability to ship product
“Big bang” releases causing more harm than good
Our collection of modules too complicated to plan for module wide convergence. There are too many variables and constraints to account for to ensure that they all converge to a point where we can ship the whole product line on a given day. Perhaps this was simply a weakness in planning, but my first observation was that we should also pursue a technical solution to this problem. Long term we need to use our own EAI (Enterprise Application Integration) technology to solve this problem, (and we eventually did – Ed.) but in the short term we need to figure out how to artificially force and support the separation of these releases. The net result has been that nothing is fixed in time or feature set and downstream functions like training, sales, etc are forced to react to PD.
Ineffective prioritization scheme
We have the entire infrastructure for communicating inter-module and intra-module priorities figured out but don’t seem to really be making the hard decisions. We still have two #1, two #2, and two #3 priorities and have a hard time saying “no” regardless of the priority level. This has been a Catch-22; the lack of a high level planning function prevents you from knowing when you are resource bound and need to make a decision. The lack of a clear priority decision makes it very difficult to do resource planning.
Lack of emphasis on releases and dates in favor of “project” orientation
One of the more difficult problems I had getting started was mapping the list of active projects to a release schedule that defined the name of the release, the expected date, and the expected scope. I soon realized this was a systematic issue – PD resources were tackling their projects without an upfront plan for how they would ship. As a result, when the end game approached, there was no obvious effort to stabilize the product so that it could ship and it appears that sometimes the QA process would stall out as resources were switched out to other priority projects. This behavior is a lot less likely when the release has a name, date, and expected scope defined.
Immature product management function
Technical leads need program management mentoring and support
In order for product development to function in a time-bound manner, we need to be able to pair the technical leads with strong product managers that can make tough scope decisions during crunch time. I have already gained a great deal of respect for the team and the work that has been done to organize and prioritize projects. However, we need to work on aligning their team behind the public priorities and on developing confidence in the individual product managers to make most of the decisions within the confines of their module. The MRD (Market Requirements Document – Ed.) process is the right solution, but we need to concentrate more on the business justification for the work so that the team can appreciate when investment tolerances are exceeded.
The same situation exists within product development. Many of our technical leads are inexperienced at or reluctant to accept the program management planning and supervision responsibilities and may find themselves over-committed on their technical contribution to the development effort. We will need to reinforce the importance of these functions and extend their planning to cut across functional boundaries.
Inefficient expectation of handoff between Development and Test (Test as QA)
My experience has been that if you set the expectation that no bugs should be found by “QA”, then the end result is to extend the elapsed calendar time required to complete the product. This approach also makes the preparation of automation impractical. Instead, if you design the schedule to involve test in the design phase with builds delivered to test on a regular basis throughout the implementation cycle, then not only are problems found sooner and outcomes more predictable, but I also believe that total elapsed calendar time is reduced.
Configuration management tools and processes do not currently support concurrent/parallel release development
We currently depend on keeping files checked out for long periods of time because we do not have a configuration management and build process that can ensure that these check-ins do not break builds for other teams. This tends to delay the integration process and increase schedule risk during the final stages of the project. It also means that the configuration management team does not get a chance to stabilize the build or to discover and resolve installation issues. As mentioned before, we need to release the products on staggered schedules and this will almost certainly force our hand in this regard.
Need better isolation between new product development and continuation engineering in order to improve predictability and accountability
I think we should consider dedicating resources to own the whole lifecycle for dealing with product issues that escalate to Product Development; this includes problem evaluation, defect fixing, build, testing, and deployment. New product resources could be used to review changes if necessary but should not have any other responsibility.
New Observations and Update (February 12, Year 1 - 1 month after original assessment)
New Observations – There are a few additional observations I would like to make regarding PD and its interaction with the rest of the organization.
We need to elevate expectations of Tech Support
This is related to the earlier continuation engineering observation, but the solution is different. I think that the standard for escalation to PD should be that Tech Support has contained it to a reproducible behavior that can not be fixed by modification to the customers’ configuration or process objects. Only issues in the Platform or base applications should escalate to PD. This will almost certainly require the involvement of Operations staff to determine if the problem was the result of their customization or due to a flaw in the base product. Far too many calls are escalating to PD without appropriate triage.
Disrupting plans to react to short term opportunity or to unplanned internal needs has a cost
I do not expect the behavior to change, and most of the time I understand how these changes are in the best interest of the company. Simply put, the issue is this: when I am told that a particular deliverable is truly important to the company, I will believe it and I will make sure that the team understands the importance of what they are doing. If we later decide, to adjust that priority in favor of something else before the team has had the chance to complete their delivery, then the message they receive is that it was not really as important as they were told, and after this happens a few times, they can rightfully conclude that it never is really that important. This undermines our credibility as leaders, and can eventually limit our effectiveness.
Technical lead role needs clearer emphasis on “program management” responsibilities
This is really an extension of my earlier point, but I am finding that the current technical leads are surprised by my emphasis on their program management performance over the other responsibilities in their role. I believe this may be a change from previous priorities. I will be emphasizing basic leadership/supervision skills in their professional development plans.
Should de-emphasize role of detailed task tracking in favor of more visible milestones
I find that I do not use our project tracking solution to track product status like has been done in the past. I think that there used to be more emphasis on this as the only visibility and predictability afforded to PD management. I do not want to see effort wasted in frequently updating these schedules unless there is clear merit in doing so. Please don’t interpret this as a recommendation to avoid planning – we should still produce plans to the level of detail that we do today, but allow teams and individuals more latitude in changing course as they work through the plan without the overhead of updating it every time this occurs.
Update – Below are updates to the original observations I made – there are a number of organizational and planning process changes that have occurred that I believe have had or will have an impact on our operation and I have made note of them where appropriate.
Too much work in process
We were bottlenecked at QA (as evidenced by a significant amount of work in process or completed but unable to be tested). We have since added 2 additional testers (one started in Feb, the second will start in March) and we have flattened the org structure so that Betty Boop (names are changed to protect the innocent – Ed.) could be assigned as test lead to one of the products. We have also changed our approach on planning to keep developers involved in the project through completion of the release rather than assuming that they can begin work on the next project. They are expected to perform testing activities when not involved in fixing defects. This avoids the perception that there is more capacity than is really there.
Insufficient emphasis on test staffing
See above – this is being resolved.
Test automation could be used to provide more effective regressions
Test team not technical enough to initiate use of automation
I have produced a justification and solution concept for the use of automation. One of the recent hires has automation experience with Rational Robot for UI regression testing. We intend to approach this in several steps, with the first and most significant milestone the creation of a set of objects that will allow us to automatically regression test all services without needing to manually run our applications.
“Big bang” releases causing more harm than good
We are well underway in transitioning from a “big bang” release to modular releases. There is still a lot of uncertainty within the team about the payback now that we are really beginning to see the implications, but once we have revised our configuration management, installation, and release processes, I remain convinced that the change will prove worthwhile, if not necessary. We have already seen situations where a change will need to occur for a single project, and if all other product releases had been contingent on that project finishing, then they would all have been held up. In addition, we seem to be smoothing out the test workload.
Ineffective prioritization scheme
Mickey Mouse’s efforts to extend our macro planning horizon through the end of the fiscal year have helped bring stability to the nearer term priorities. We are still reacting to the increased priority on one product feature set, and it is now obvious that it takes us 2-3 months to turn the ship unless we can summon the courage to cancel active efforts in favor of new priorities. I was pleased to see that we were able to reduce our priorities to a clear list with only one module at each priority level and that we have started to make some tough decisions about what we are not going to do in the coming year.
Lack of emphasis on releases and dates in favor of “project” orientation
This has probably been the most profound change – the macro plan has us focused entirely on releases instead of projects and everything we do is timeboxed to contain feature set.
Immature product management function
SAs need program management mentoring and support
The working relationship between product management and PD is stabilizing and the macro plan is truly the joint accomplishment of both teams. There are still occasional situations where we second guess each other in our roles, but this seems to occur less frequently. I will continue to emphasize.
Inefficient expectation of handoff between Development and Test (Test as QA)
For several current projects we have changed this expectation; testers are getting involved earlier for longer periods of time (although there are fewer testers assigned) and we will be trying to keep the same testers working on a product for multiple releases. We are encouraging earlier deliveries of incomplete product to test so that they can deliver feedback about form and function much earlier in the process. I think this has already helped us avoid a late flurry of ECNs (Engineering Change Notice – Ed.) to revise a product that was supposedly “code complete”. This change has been difficult due to some pretty strong conditioning that any defect found by test is cause for embarrassment and concern by QA that the product is not stable. It is still true that this should be the expectation at code complete, but not before.
Configuration management tools and processes do not currently support concurrent/parallel release development
We have started to use branching in VSS (Visual SourceSafe) to allow us to have parallel release efforts in progress (including multiple versions of our database schema running in parallel). This stretches the limits of VSS, and I remain convinced that someday we will need to purchase a solution that provides more sophisticated management of concurrent build branches. Finally, I don’t think we have made much progress towards a fully automated build process, but the frequency of builds is increasing due to the several concurrent projects that are active and I’m sure the CM (Configuration Management) team will soon realize that they need to fix this. We need to get to the point where we could build nightly if we chose.
Need better isolation between new product development and continuation engineering to improve predictability and accountability
No real improvements have occurred here since I have been holding off on formalizing a “continuation engineering” function until Daffy Duck has finished his efforts to modularize the product line. I expect to have the group in place and functioning effectively by the end of the calendar year. The mission of the team will be to act as a self contained group capable of the evaluation, fix, build, test, and delivery of hotfixes to the field to react to high priority customer situations. One measure of success would be to have their customers unaware that they are not working with the actual product development team.
New Observations and Update (June 19, Year 1 – 6 months after initial observation)
New PD product releases are becoming irrelevant due to increasing gap between what we are selling and the functionality that is actually present in the base application suite
I was disappointed to see how little interest there was around finishing two new products and I’m concerned about the inevitable impact on commitment and morale if people perceive that their work is not valued by others in the company. I believe that an active and more influential product management function will change this as we work with them to get to a leading position with respect to sales and marketing. We need a fundamental change in behavior from selling what we don’t have to selling what has been released in the base application or we risk overdriving the system with revenue sold that can’t be realized.
Future macro plans need to account for a lighter workload in the summer months
Our overall capacity is easily down at least 10% in June, July, and August due to vacations and it is also not safe to count on the usual amount of overtime effort. End of July/August releases should be light in functionality.
More productive toolset needed/need to end of life old toolsets
We need to invest in obsoleting old tools (we currently require 4 different compiler environments to build our products) as well as taking the technology/learning curve risks around basing newer releases on more productive tools such as .NET. It will be increasingly difficult to remain competitive with more modern codebases if we do not do this.
Technical leads and developers need to engage in making testing more effective
The test team needs help getting over the hump in building automated testing into each project team’s plans. We need to get the strong technical resources thinking about how to do this efficiently; I’m convinced our current test team can execute on what we devise, but in general they seem to struggle with taking the initiative to force the change. Cleopatra and Gertrude are exceptions to this rule, and I have also seen some promising ideas from Daisy Duck.
Agile methods need a truly representative pilot project
We risk giving “agile” methods a black eye by representing our current efforts as “agile” when what we really are doing is just undisciplined. I am worried that we will develop a negative opinion towards agile methods without really having tried them. Having said this, I do see this as a gradual transition occurring over many months, so I still think we can get there. Our odds of success would increase dramatically with a trained coach in a focused project.
Professional services team is trying to move and grow too fast
I don’t have the facts to substantiate my claim, but my suspicion is that the call volumes after a transition to Tech Support are too high and that this is due to us rushing this transition. With the increased visibility and pressure on margin in professional services as well as the dramatic growth that has and will continue to occur, I am concerned that both PD and Tech Support will be forced to clean up the mess; PD will have an ever increasing number of disruptive events due to poor planning for implementations and Tech Support will see call volumes that increase faster than the new customer rate due to poor testing and rushed transitions.
Update – Below are updates to the original observations I made – there are a number of organizational and planning process changes that have occurred that I believe have had or will have an impact on our operation and I have made note of them where appropriate.
We need to elevate expectations of Tech Support
This problem is even more urgent now due to a large number of transition/go live events planned over the next 3-4 months. The change in role for Goofy has helped prevent improper escalations, but they still occur. I now believe that there are two fundamental problems preventing us from attracting or developing the skill set that is needed in the tech support team: leadership and business model. The team needs a leader that can be deeply involved in teaching everyone there how the product works and how to diagnose problems. The current emphasis seems to be around improving the “systems” to fix the problem, but I think they have more than adequate structure to succeed. What they need are better trained, more competent staff. My concern regarding the business model is that current margin expectations will not allow that time to focus the time, headcount, and $$$ needed to address the skill gap.
Disrupting plans to react to short term opportunity or to unplanned internal needs has a cost
No change has occurred.
SA role needs clearer emphasis on “program management” responsibilities
We are making some headway in this area – the SAs all have training objectives around supervision, delegation, and project leadership and some have started taking courses. I have also seen that hands-on mentoring in the context of two products has helped mature Jack and Jill in this respect.
Should de-emphasize role of detailed task tracking in favor of more visible milestones
This has been happening, although I have occasionally needed to clarify or re-communicate our expectations around our project tracking tool given that detailed task tracking is not a “requirement”. People have interpreted this as “I don’t have to use project tracking”, but we still depend on it as a basic document repository and workflow engine.
Too much work in process
We worked our way through the series of Spring releases that represented the “bubble” in the system and we have nearly worked off the project backlog by releasing most of that content. With the release of Release 6.0, we should be all but caught up and we should then be able to determine if our current dev/test ratio is at a reasonable steady state level.
Insufficient emphasis on test staffing
I’m pleased with our progress in this area; the only concern I have is that we still may not have sufficient test resource on the Pluto team, but given that they are still working off backlog, I can’t yet tell if this will remain an issue. What is clear is that poor testing on Pluto will be our #1 source of future interruptions.
Test automation could be used to provide more effective regressions
Test team not technical enough to initiate use of automation
The team has been able to show some progress in this area; they have all learned enough about the Robot tool suite to be interested in it and to start actively applying it to current efforts. I am disappointed that we have not made any headway in being able to test the platform runtime services with a automated, reference application.
“Big bang” releases causing more harm than good
This change is finally starting to have the expected impact on the rest of the organization. As long as we maintain that the primary customer of new releases is professional services for new implementations, the modular release approach should continue to work and we can continue to enjoy its benefits in PD. I am starting to hear some pushback about releases happening too often and I think this
Ineffective prioritization scheme
I’m very pleased with the progress in this area – product management has been steadily improving in capacity and Tom, Mickey, Harry, and I have sorted out the rules of the game for changing the plan.
Lack of emphasis on releases and dates in favor of “project” orientation
I think this transition is complete – in fact, we are now guilty or assuming that everything we do will release. The only risk in this assumption is the overhead to the organization of adding a release to the macro plan, especially regarding test and documentation. For the most part, this is only a timing difference, so I’m not particularly concerned.
Immature product management function
SAs need program management mentoring and support
The only concern in this area is some recent issues around technical leads taking “too much” initiative in order to get the result they want. I am actually pleased to be hearing this because it is a welcome change to hearing complaints about lack of access to sign-off resources preventing progress in PD. Until product management has stabilized in headcount and role, we will need to continue to be creative in getting past obstacles.
Inefficient expectation of handoff between Development and Test (Test as QA)
Recent releases have effectively blurred this line, and feedback to date has stressed the benefits of early test involvement, so I think we have completed this change in expectations.
Configuration management tools and processes do not currently support concurrent/parallel release development
There has been little change on this due to Daffy’s departure – I expect an improvement now that the team is staffed up again.
Need better isolation between new product development and continuation engineering to improve predictability and accountability
We have isolated the test responsibilities for CRDs (Customer Request Documents – customer-specific features)/hotfixes to a single individual and that has streamlined the process. The number of upcoming transition events that are planned will almost certainly spill into PD, and my strategy for this will be to sacrifice Scrooge and the Earth project if this happens. I would rather miss one date by a long way than to miss all of them by a little.
New Observations (April 21, Year 2 – 15 months after initial observation)
Internal
There are a lot of things that I don’t have to think or worry about any more, suggesting that they have become fully integrated into the department and company.
The best example – modular product releases. We have completed our sweep of the products and they are all modularized. The last product release cycle occurred with almost no effort on my part (and I was the release coordinator). The next release will be more complex (more products involved) and there will be more for the coordinator to do, but Jack will cover that role.
I am rarely involved in managing customer support issues, and Mickey and Tom are even less so. Hotfixes are performed and shipped without my knowledge. Build processes are running smoothly (albeit with minor grumbling about response times). Both D and Jamie have already achieved independence in the management of their teams and require only occasional guidance.
Unified Product Development (UPD - the subject of an article all on its own) and the Steering Committee are self-sustaining and require only a few hours a week of my time. I believe that the Steering Committee has created the most functional director-director working relationships that we have.
Modular releases are here to stay
Beyond the expected benefits of smoother release cycles, I am also seeing that modular releases allow us to appropriately neglect modules that are not worthy of investment. Although there is the occasional question about specific release content or compatibility, I believe it is safe to say that the method has been successfully adopted and will sustain until we decide to change it.
The macro plan is less urgent but more important than ever
I attribute the loss of urgency around the macro plan to my belief that both Mickey and Tom have gained sufficient confidence in my alignment with their interests that they spend less time worrying about the allocation and shepherding of resources. Tom is now more engaged than ever in external efforts and I have no sense for his comfort level with our current activities. Finally, I no longer think that the macro plan is part of encouraging larger investment in PD – I now believe only “off the balance sheet” investment from NewCo will make that happen.
There are a couple of reasons that it is more important than ever:
- Product strategies are shifting and I still feel like I am trying to read tea leaves to determine how resources should be allocated
- Tom’s lack of attention means he needs high quality information even more
The department reorganization is having the expected benefits
Segmenting between application, strategic, and support/maintenance has accomplished several things. We have two managers in training that are showing a lot of talent for the role. The isolation between new product development and maintenance is where we need it. UPD is serving its intended function of standing in the gap and narrowing the difference between what we have and what we sell.
I have noticed that I have to be more careful about involving my leadership team in priority and resource decisions, but the effect is certainly tolerable. I am learning to work through them to get priorities communicated and to ensure that objectives are clearly set with their team members.
We are dependent (perhaps overly) on test resources to release product
Now that we have institutionalized the early involvement of a test resource and changed expectations around the role that they play, I am having difficulty covering the increasing number of concurrent efforts in progress. It’s evident that UPD needs at least one full time test resource to match the current productivity rate (likely to be closer to two if it returns to full staffing), plus it appears we will have sustained investment in four other products. We may see more time from Lily as Jack assumes the CM role, but that is difficult to count on.
I believe that the optimal number of tests has more to do with the number of concurrent efforts in progress than ratio of developers to testers, but I also question if we are getting better functionality faster because of the investment in test. I am curious what would happen if we staffed the next effort (especially an app team – I’m not willing to compromise on Platform) without a tester assigned to see what happens.
The prospect of additional PD investment is a blessing and a curse
There are short term distractions as we build the technical and business cases for the additional investment. I am doing nothing that would count on these things happening, but I am definitely tempted, as several of them are large and I am afraid we are underestimating how long it will take to effectively ramp for any one of them, or worse yet, more than one. If one of them cracks and we need to quickly hydrate a team, then I think we need to be looking for a way to add multiple developers in one “acquisition” rather than growing the team one hire at a time.
CM and QA have not matured as hoped
More progress has happened since Billy Bob’s departure than occurred before – it was healthy to get people to stop thinking of it as somebody else’s problem. I believe that we will see evidence of real impact by end of June.
I remain interested in distributing the installation responsibility across the development teams. There are a couple of possibilities here – we can cross train installation skills across the whole technical services team and then spread the responsibility for particular projects across those people, or we can place the responsibility in the hands of the technical lead. Installation remains an afterthought and contributes to the chaos at release time, especially for strategic efforts.
With the advent of nightly builds, I will have the “smoking gun” I need to get the fundamental behavior change in QA. I believe we have been providing sufficient access to tools and training to prepare people but have lacked the compelling reason for change. I expect this to be institutionalized by end of year.
Offshore development has mixed results
I would continue to invest, and even increase the investment level, but I know that we are continually frustrated over working out the details of making this work. There is a risk that if we do not carefully monitor the people that are accepting the work from Transylvania, then we will end up negating any benefit by having them rewrite significant portions of the work. My feeling is that the work product needs to stand on its own – we should be doing light acceptance testing and pushing defects back for repair. We now believe it easier to do the high-level requirements and design here and to communicate detailed design to them for completion, so we are experimenting with that approach.
Pluto releases need to be tightened up
I have been frustrated by a number of things in the last release cycle. Scope and resource changes have been frequent, reflecting the lack of a passionate advocate for release (as well as a compelling feature set, perhaps). The separation of tool and runtime will help with this – we need to push this through ASAP. I have been surprised that there have not been more challenges around our use of resources in this area. We will always have to overcompensate by producing artificial intensity as these releases will rarely be customer/market driven.
External
Ala “The Goal”, PD is not the bottleneck in converting ideas to recognizable revenue.
We are finally seeing most of the effort required to drive absorption of domain and product skills throughout sales, services, and support. I am convinced that this is our biggest issue in getting to revenue.
The product silos are doing more harm than good
We need to encourage Sales, Product Strategy, and Operations to blend these businesses as the distinctions are becoming increasingly artificial. Current customers are suffering from ineffective support in professional services and customer support because accountability boundaries do not match skill set boundaries any more. We have people approaching customer support and PD for help in making implementation decisions when there are others within professional services better prepared (but not incented) to provide support.
We need a longer lasting commitment to a clearer product strategy
Less is more – I think we are at risk due to indecision and under investment. We are fighting a many front war and having difficulty making satisfactory progress on any of the fronts. The reason we can not make these decisions is because we lack a factual basis for making them; as a result, politics and personalities determine the ideas which receive sufficient momentum to get resources and yet there is no objective evaluation of the success of these efforts as clear goals were never established. Often the only thing measured and accounted for is the effort expended in PD related to the resulting feature set (because it is easy to count). We respond reactively to opportunities in the pipeline (which change to frequently to provide the consistency needed to mount an all-out attack on a market). I am not sure that we need a new overall strategy (the breadth of our product vision is not the issue) – just clearer direction on how we work towards realizing that vision.