|
 |
|
 |
 |
18th Issue - May 2008 |
|
 |
 |
| Feedback, the backbone of Software Product Development |
 |
By
Samir Goswami and Jyotirmoy Verma
Intergraph Consulting Pvt. Ltd.
The software development organizations are under continuous pressure to enhance the functionalities and improve the quality of their products to satisfy their customers’ expectations while competing with similar products. Software products are mostly traded on their own, not as a part of other products. Software product business often includes services such as installation, training and even customization. Depending on the business model and product offerings, even the purest software product company may receive their majority of revenue from services. Thus, in almost all enterprise solution business, there are practically always at least some customization needed in order to integrate the software to the customer’s other information system and infrastructure.
Productization of a software means standardization of the elements in the offering. The term productization includes several technological elements from very early stages of designing a product (managing requirements, selection of technology, architecture, etc.) to the commercial elements of selling and distributing the product. The main characteristics of software products are
Once it is developed, it can be replicated at close to zero marginal cost.
The spectrum of productization ranges from standard packaged software that are delivered “as is” to custom tailored software developed according to the need and satisfaction of the individual customer.
The success of the product depends on how widely the product is used in the industry. There are several topics like general business performance, degree of internationalization, degree of productization, R&D process, which act behind the acceptance and progress of the product.
Intergraph’s SmartPlant® Materials (earlier known as MARIAN) continues its 17+ years history as the leading commercial off-the-shelf materials management and procurement software for the engineering enterprise. SmartPlant® Materials provides strong material management workflow and functions, from preliminary design through detail engineering and purchasing to construction. Its flexibility and openness make it adaptable to engineering and work processes, and will help carry out the vision of life cycle integration. As a material management system, SmartPlant® Materials helps EPCs achieve total material control by focusing exclusively on the needs of the EPC companies and owner/operators to support an integrated plant creation process. Additionally, Smart plant materials allows the sharing of data with the different design systems, clients, subcontractors and suppliers, as well as the re-use of most data in subsequent projects.
During its more than 17 years lifecycle, SmartPlant® Materials has evolved in several dimensions from architecture, technical implementations to the features and their user friendliness. The success it has earned during this long journey is attributed to its evolution around the feedback received from various sources from time to time.
With the maturity of the software product industry, it has become evident that a well-controlled feedback driven environment can only support progressive life cycle of a software product. This can be further analyzed specially under the following two Lehman’s laws of software evolution.
The First Law: An E-type program that is used must be continually adapted else it becomes progressively less satisfactory.
The Sixth Law: Functional content of a program must be continually increased to maintain the user satisfaction over its lifetime.
The amount of satisfaction provided by the system starts declining with time for various reasons. In order to cope up, the software products need to continually evolving with time. The evolution of software products can be supported only by controlled maintenance process and a feedback driven evolving environment.
In the beginning, the model of application domain serves as the foundation of requirements and specification of the target system are drawn from it. There are always some constraints such as budget, delivery date, technology and understanding of the application in its domain. Due to these constraints the definitions and specifications of the target system are explicitly or implicitly restrained. After some time these omitted features surface as bottlenecks and irritant in the usage of the product. The user community becomes more perspective and expectant. Availability of alternative products changes the criteria of acceptability and satisfaction. Since quality of the product is tightly linked to the user satisfaction, the quality of a software system declines with the time. This leads to demand for change in the capability of the product. Once again information feedback plays a key role helping the product to grow with the time, driven by the feedback from the user and from the market.
Even the product evolution with the necessary feedback still possesses several challenges. Various changes and add-ons at a particular release or stage of the product bring forth certain gray shades of obscurity and hence the very notion of capturing the feedback fails to get appreciation from all of the concerned teams. The larger the work packages the more challenging mastery of the matter to be acquired. The quality of the next release of the product will be according to the rate of acquisition of the necessary information by the participants collectively and individually.
As the system adapts to changing environment, change after the change is implemented. Successively implemented changes result in the increase of dependencies among the system elements finally resulting in increase of complexity of the system. If the growth of complexity is not constrained, the effort required to maintain the system satisfactorily becomes increasingly difficult. Each change will need some anti-regressive efforts. If anti-regressive efforts are invested to combat the growth in complexity, less effort is available for the system growth. Since resources are finite, the rate of system growth declines as the system ages. In practice the balance between progressive and anti-regressive activity is determined again by feedback. The positive and negative feedback controls the implementations and provide feedback driven growth and stabilization mechanism for the product.
The above analysis suggests that a software product survives only when user satisfaction is maintained with the time, which is possible only when we allow the product to evolve in a well-controlled manner weighing all the feedbacks received from various sources. Lots of planning, forecasting and decision-making are done in order to decide what goes in the next release. This has to be very efficient, as each evolution will directly influence the level of user’s satisfaction with the product. Thus not a single feedback or its source can be ignored.
Feedback has been paramount for the expansion and evolution of Intergraph’s SmartPlant® Materials. Different interactive systems within an integrated framework are utilized for feedback recording to manage the lifecycle of the product. The complete system helps to capture and record the feedbacks from all the quarters – Customers, Users, Market and Technical Specialists & Developers. The figure below provides an overall view of this integrated framework. |
 |
 |
 |
The main system used to capture the feedback is called Voyager. The “Product Owner” or “Product Manager” has the control of this system. Depending upon the Product Manager’s interaction with both outside (users and customers) and inside (technical specialists & developers) world, the brief specifications of these valuable feedbacks are recorded into Voyager. Voyager is further used to prioritize the tasks for the next release(s). The schedule is conveyed to the development team to take up the tasks as per the priority and schedule. Estimation for each of the tasks is recorded into Voyager. Voyager also gets data about progress of tasks under development. From time to time the forecast run can be executed and hence the completion of the tasks could be validated and planned. The stakeholders are updated accordingly about the completion of tasks and availability of the features.
The Jupiter Tracking System (JTS) is another important part of this whole feedback management system. Both outside and inside world has controlled access to this system for recording their feedback. The user change request, trouble reports, support items and other development items are recorded through this system. This system is mainly used by certification groups and customers to record feedback for the troubles encountered with the product. These items are propagated to the development team and are prioritized and scheduled by the Development Manager.
The integrated development framework segregates and gradually propagates the items that need to be taken care by the development team. The development team starts taking appropriate action on these items utilizing the third system Syber Track as shown in the figure. This system is primarily used by development team for atomic recording corresponding to a development items. This system is mainly used to record feedback related to Unit, Integration, System and Regression testing. Observations received from Subject Matter Experts are also recorded to track during development cycle. The system allows categorizing the feedbacks as value addition, deviation from standard etc. The appropriate actions for these feedbacks are tracked during the development cycle.
Once the development on the items is complete, they are sent to the Product Release Management System. There the developed items are validated for release and appropriate feedbacks are provided to the stakeholders.
This integrated framework for the management of feedback arising from different spheres serves as a backbone for the development and evolution of Intergraph’s SmartPlant® Materials product. In today’s competing market no product can afford to ignore any single feedback irrespective of its source. In order to keep the quality of the product intact, strong maintenance along with efficient planning for progress is the key. The existing integrated framework is highly instrumental in maintaining the product and also for efficient product evolution from one release to another. It cannot be ignored that things shall evolve with time to keep its stakeholders’ interests intact. The existing backbone also takes care of this perception as well and shall be revisited to strengthen itself with time. |
 |
| Bibliography: |
 |
M. A. Cusumano and R. W. Selby. "How Microsoft Builds Software". Communications of ACM, Vol. 40, No. 6, June 1997.
A Framework for Managing Software Product Development,H. Dayani-Fard,
IBM Toronto Lab IBM External Technical Report TR74.173
Laws of Software Evolution Revisited, M M Lehman Department of Computing Imperial College London SW7 2BZ |
 |
| Authors: |
 |
Samir is working as Manager (Technical), managing the India development team for SmartPlant® Materials, a material management product of Intergraph. He is a B.E (Computer Science & Engg.) from N.I.T Durgapur, M.S (Computer Science) from Rivier College, Nashua, New Hampshire USA. He has more than 12 years of experience in design and development of applications in various platforms and domains. Prior to Intergraph, Samir has worked with Satyam Computer Services Hyderabad, STI Inc. USA and Ramco Systems Chennai.
Jyotirmoy is working as Project Leader, India development team for SmartPlant® Materials, a material management product of Intergraph. He is a B.E (Computer Science & Engg.) from PCCS Noida. He has more than 8 years of experience in design and development of applications in various platforms and domains. Prior to Intergraph, Jyotirmoy has worked with USIT New Delhi. |
 |
 |
| |
| Journey of a Product Company |
 |
By
S. Ramanathan, Director, CORDYS Software India Pvt. Ltd.
A different ball game We have seen a lot of big and successful players in the IT services segment of our industry. They have done exceedingly well and have been the harbinger in the field of outsourcing worldwide. On the same field playing a different game are the product companies which though smaller in size create far more ripples of change. The financial benchmarks of product companies like revenue per employee or market capitalization per employee are several times more than those of service companies. Besides they lead the pack in changing the way we do things with constant innovation aimed at a better , faster and cheaper way of doing things.
Why begin the journey of products At the core of all this are the same drivers that any entrepreneur experiences. It starts with the ability to envision an opportunity to challenge status quo with something either completely disruptive and fundamentally different or something which is better, faster, and cheaper than what’s available. Good knowledge of the market and technology trends often seeds this vision. Personal traits of risk taking , deep conviction and adamant perseverance is enough fuel for embarking on the journey of building a product company. A journey to experience the 4F’s i.e. fun, freedom, fame and fortune.
The Startup Phase This is the most challenging stretch of the journey of a product company. The first challenge is to get the product ready. The founders technical background can be a big help here. Getting the original idea of the founder(s) into a product with robust architecture and quality is the first hurdle to be crossed . “I may be developing the product right but am I developing the right product?” This question often leads to another, “How can I get Beta customers to validate my product?” If the founder(s) have a business background they feel more confident of crossing this hurdle. Anyway, both building the product as well as acquiring beta customers are the most important challenges in this phase. Other challenges include the legal formalities of forming a company and complying with legal requirements, initial funding and financial planning, to be able to pay for all expenses and of course all the other issues of running an office where people have to don multiple roles.
Ensuring your first product is a robust one goes a long way towards success. Even if it means discarding the first few versions and building again from scratch, based on your learning, can be a good option. Having students work for you, can provide the dual benefit of younger minds with lots more contagious passion as well as reduced cash outflow. This can work provided there is somebody with experience to guide and supervise them. . Having an advisory board of senior professionals with a good network can often lead you to good beta customers and references. Committed beta customers who are willing to experiment with new products and who can be good references and spokespersons for your business can be very useful. Expectations must be very carefully set with them otherwise there is a risk of your resources getting sucked up with low returns. A reputed accounting/advisory firm can also provide the required trust and transparency to the outside world about your business. An active engagement with academics and the student community can help reduce costs . The start up phase ends with the product ready and installed at a few beta customers who are happy . There is a sense of relief and accomplishment for the founder(s) that theirs is a valid business idea with a shippable product and some real customers. This relief is though short lived as they now start thinking of the challenges that lie ahead in their next stretch of their journey.
The Scale up phase With a good product and a few live customers, business starts to repeat and scale. At some point due to the steady increase in volumes , customer requirements increase and the product gets noticed and taken seriously by competition. Lots of questions and suggestions come from the field about how others are doing things and what we should do to differentiate . To handle all this certain new functions get introduced into the company i.e. marketing and product management. Marketing starts to discuss with analyst firms and gather competitive information. They use all this market intelligence to position the product better and to articulate its value proposition more clearly. The pricing information is also used to make the product more competitive . Product management starts to collate all customer, field and market requirements into roadmaps and funnels these long term requirements into the product, they also carry back the message of product contents like its functions and features back to the field and onto marketing. These hitherto lesser known functions now become very key and play a pivotal role in anchoring and managing expectations amidst all the growth in customers and employees. The product also due to multiple versions , supporting various platforms and localizations becomes more complex and needs formal release, support and maintenance policies to be able to manage and meet expectations of the customers.. Business comes knocking at your door as success begets success. Sensing the potential founder(s) feel the need to hire more field sales people and partners in existing and new regions of the world. Regional heads are hired to supervise sales operations and review lead generation, pipelines , targets and incentives. In the midst of all this growth and action employee strength grows rapidly and the finance function too needs strategic inputs and closer supervision due to lot more action in receivables, contracts and cashflow. Hiring experienced hands at HR and Finance becomes a necessity and soon a CFO and Head HR becomes a reality.
At some point the founder(s) see more opportunities than what they can handle or experience financial limitations coming in the way of growth. Sometimes customers think twice before making huge investments in their products citing that the company still does not have the depth of financial resources to operate and sustain for the long term. The thought of seeking additional funding starts to occupy the founder(s) but they are also wary of its consequences to their freedom and ownership. The decision if and when taken, heralds another important stage in the journey, looking for the right kind of investor.
An investor who is not purely a financial investor but can also contribute strategically and operationally is preferable. Be it in areas of company long term strategy, expansion in new regions, talent acquisition, forging business alliances and partnerships, forming a credible board for the company, looking for accretive M&A opportunities to further business growth and overall someone who understands and respects the founders vision and the team and is prepared for the long haul would be ideal. Its always better to look for such a partner when you are not in real need for it , for then you are able to get them on your terms. This step along with all its advantages and dis-advantages is often compared to a child giving up its toys as in the founder giving up his complete and absolute freedom . Most companies encounter this stage multiple times sometimes in the very early start up phase itself and then later on in the scale up phase.
While the start up phase carries maximum entrepreneurial risk in terms of its survival rate, the scale up phase carried maximum intrapreneurial or managerial risk in terms of the ability to handle growth and expansion. Companies need to monitor hiring practices carefully and strongly emphasise their core value systems to new hires . Providing growth opportunities to existing employees can inculcate a sense of ownership and trust and preserve the original company culture. Growth and success should not lead to complacency. Its also a time to think of how to sustain the growth process and what is the next big thing happening in the industry and how to be prepared to participate in that.. Formulate product sunset/upgrade policies to set clear expectations among all customers and prevent the company from having to support old and legacy products is very important. This prepares the customer base for the next wave of technology and future business of the company . Managing this growth phase can be very challenging, specially for founder(s) who are not good managers.
With good professional help the company safely enters into the next phase of its journey.
The Stable – Mature phase The company’s business is now well established . Though not growing at the fast pace as before, it settles down into a rhythmic and predictable growth phase with a steady stream of license, service and maintenance revenues. The professional management of the company is in full command and the company is driven by business plans and budgets. Company is now a very visible company under the constant scanner of analyst firms. Its growth options are both organic and inorganic. There is now a strong commitment within the organization to meet the business targets quarter over quarter. There is less freedom and more emphasis on predictability and compliance in the organization. Innovation and Initiative is diluted by immediate short term market commitments.
At this stage the founder(s) start pondering about their next step. Must they exit ? If so how ? Should they take the company public or should they sell the company to a larger player. Should they step back from the company and let professional management take over completely? The answers to these questions decide the path which sometimes leads them to the beginning of their journey once again i.e. to start another product company.
|
 |
 |
| |
| Bringing Business focus to Product Development |
 |
By Krishna Puranik
Broadridge Financial Solutions India Pvt Ltd.
Broadridge is a leading global provider of technology oriented outsourced solution to the financial services industry. Software products in Broadridge are an integral foundation to its core brokerage business. We offer complete brokerage processing services through a broad solutions portfolio including mission-critical products and services for securities processing, clearing and outsourcing and investor communications.
With an offshore presence of close to a decade, Broadridge has grown from strength to strength as a product development organization with expertise spanning the entire spectrum of software development life cycle. Our product development experience is quiet comprehensive and encompasses wide variety of complex and business critical products at Broadridge, including modernization of legacy applications, new products that cater to newer market trends, products for Quality Assurance, product enhancement and support. Our products are built around an extensive set of latest programming, database and web-based technologies on several platforms ranging from high-end & mid-range Mainframes, Unix to Linux and WinNT.
At Broadridge, we strongly believe that knowledge of the business domain is as significant as knowledge of technology, for this has been a key success factor for organization’s evolution as a global leader in brokerage processing. Our product development math:
| Domain + Technology + Process + Associates = Great Product. |
In general, offshore development teams are limited in effectiveness/productivity by not understanding the business domains in which their work must fit; and they are limited far more by not understanding and sometimes actively denying the degree to which they lack such business domain knowledge and its importance. Programming alone does not provide value in meeting REAL business requirements. Without understanding the business domain, even skilled IT teams lack the context to make day-in-day-out decisions that onshore staff do essentially instinctively. The result is lots of simple little mistakes that offshore centers do are often too ignorant and arrogant to recognize, appreciate, or learn to avoid.
In Broadridge’s context the focus on domain is of particular importance owing to the nature of brokerage business attributed by very high time-to-market pressures. While the core domain expertise comes from the highly experienced and skilled business analysts and domain experts’ onsite, the offshore center maintains a high focus to build an atmosphere for continuous improvement of the domain knowledge within the IT team. Some of the domain knowledge enrichment programs in practice are: Subject Matter Expertise program, Collective Habit – a product knowledge sharing program, NYIF CBT programs, on-the job training.
Broadridge products are uniquely featured with multi-client processing capability that which makes it a highly scalable and flexible product suite to our services offering. Products are very carefully designed to handle large scale processing requirements – high volume transactions and high throughput with high configurability. Our development methodology is aimed at a simple objective of Build-Once-Use-Many. A single installation of the product maintained at Broadridge covers the entire gamut of brokerage functions meeting the processing needs of a global client base and provides a secured platform for seamless client conversions.
Broadridge has over four decades of transaction processing experience. A sizeable number of our products are heavy duty legacy applications that are built to process high volume brokerage transactions. These applications need to support and improve Broadridge's ability to maintain and enhance competitiveness, without unduly compromising the protection of its investments in them. Evolving these business-critical legacy applications amidst the competitive market conditions is an incredible challenge. Our research and analysis shows that there are three alternatives for legacy application evolution: a) Modernizing/Re-engineering the legacy application b) Legacy system documentation recovery for system maintenance c) Development of a new system. Our business requirements, client expectations, market needs and product development experience demand the modernization approach for legacy evolution. Our modernization methodology spans from a simple conversion, porting to complex re-platforming and re-engineering all focused at the main objectives of increasing the ease of maintenance, providing enterprise level integration, enhancing the end-user desktop productivity.
The modernization process at Broadridge follows a simple and test-tried philosophy “The longest journey begins with a single step!” In the evolution of these huge legacy applications, the cost of phasing out an old system possesses a big business risk. So an incremental approach to legacy application evolution seems to be the most logical way to build the competitive position in the organization, especially for re-platforming and re-engineering methodologies – Reverse engineering, technology evolution, architecture, prototyping, incremental construction and migration. The key challenges to the modernization process are: a) Retention of domain and technical knowledge b) Change Management and c) Project management.
Modernization of large legacy applications at Broadridge is usually multi-year and multi-phase projects. In-depth understanding of product and domain knowledge is fundamental and a most essential skill to the project. In legacy applications most of the business logic is buried in the code with very little documentation and the understanding of the product is with the business analysts. With growing demand for specialized skills in the offshore IT industry, retaining the domain and technical knowledge is a huge challenge. Extraction of business rules from the code, comprehensive documentation of product features, building a techno-functional pool in the IT team are some of the productive ways of overcoming the retention challenge.
During the modernization process, the old system still is the main revenue earner and need to be enhanced with new features and new functionality regardless of how critical and how sizeable the requirements are. However, it is essential that the business heads need to be cautious on the change management – how much change can be accommodated in the old system for how long. Otherwise, there is a greater risk of continuous increase in the cost of modernization process. Product and domain experts need to thoroughly review every single change for prioritization in terms of its applicability and business criticality.
Project managers need to be able to break down complex tasks into small bite sized steps or chunks so that they can clarify the management of a complex project and ensure that despite complexity it keeps on track. The tasks need to be described in a number of ways, the most important being their level of inter dependence. Dependent tasks must be done sequentially while independent tasks can be started whenever resources and timescales allow. Breaking projects into small tasks assists in the delivery management and brings a smaller micro perspective as does considering the longest journey as many single steps. To use project management terminology, one step after another is a series of dependent sequential events. To become well suited to the tasks involved in the longest journey we need to become practiced at taking one step after another, something we know as "walking". Assuming we become skilled at walking for sustained periods, we will be able to undertake the longest journey and successfully complete the mammoth task of modernization of legacy application.
Contributed by
Krishna Puranik
Broadridge Financial Solutions India Pvt Ltd. |
|
| Next >> |
 |
|
 |
|
| |
|
|
|