
Recently I had a discussion with friends who are working on investment banking. We don't have the same education background, and we work in two really different industries, but we all have an intuitive understanding of this principle.
In Symphony design and development, there is a question we always ask ourselves: What kind of feature we should provide to customers and what kind of request we may eliminate from the long list of feature requests. We post the Symphony plan candidates to the public to get their opinion. It's a big step, but can it solve all the issues? The same question always waits for the perfect answer.
Pareto principle teaches me that 80% of Symphony users may just use 20% of the Symphony features. But long tail theory also teaches me that those 80%, not-often-used features are still have their values. So how should we evolve Symphony?
There are a lot of functions in Symphony with three areas we need focus on: Basic usage, Programmability, and Integration values.
Basic UsageWe should make sure the common usage features, about 20% of the Symphony are well-designed and with high quality to meet the needs of most users, such as performance, copy/paste quality, side/tool bar usability, interoperability with other products, etc. The list is still long and we change it continuously by applying the user's feedback.
On the other hand, we must still spend some effort working on some critical features which might not be used very widely but are essential features in specific business contexts such as pivot table enhancement and data source support.
ProgrammabilityOne of the reasons we built the editors on the Expeditor/Eclipse programming model is that we want to leverage the powerful extensible and simplified integration mechanism. First, we should make Symphony a extensible editor so that domain specific features can be integrated into Symphony. Second, developers can embed the Symphony document manipulation capabilities into their base solutions. Some of these extension mechanisms will be provided in Symphony beta 4, and more will be added to future releases. We hope that we have chosen the right 20% of features. We really rely on user's input to make our choices (and to change them if we got it wrong).
Integration valuesLike other company's product, it is hard to define the value of a product in an isolated context. The value is more about how to integrate other products to show the linked value. Lotus has a well recognized portfolio from server side to client. Symphony should leverage this to provide more integration point with Lotus and IBM products. By using the Symphony programmability capabilities ourselves we increase the probability of getting the programmability capabilities "right."
Back To Vilfredo Pareto....People always request more features. Do these three areas cover all of those requirement? How broadly to do need to cover all of these areas? I personally think that we have to eliminate some seldom-used features that can be done in other ways. We may end up cutting some long tail values to optimize for common usage, and the side effect is some interoperability capability is lost as well. So we look to work with our users to make the right trade-offs.
Edited by: Yue Ma on Jan 13, 2008 6:22 PM