🎧 New: AI-Generated Podcasts Turn your study notes into engaging audio conversations. Learn more

original_1489125567_Chapter_1_Introduction_to_software_product_engineering.pdf

Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...

Full Transcript

Chapter-1 Introduction product engineering to software Certificate in Software Product Engineering Page 1 of 24 Confidentiality Statement This document should not be carried outside the physical and virtual boundaries of TCS and its client work locations. Sharing this document with any person other...

Chapter-1 Introduction product engineering to software Certificate in Software Product Engineering Page 1 of 24 Confidentiality Statement This document should not be carried outside the physical and virtual boundaries of TCS and its client work locations. Sharing this document with any person other than a TCS associate would tantamount to violation of confidentiality agreement signed by you while joining TCS. Notice The information given in this course material is merely for reference. Certain third party terminologies or matter that may be appearing in the course are used only for contextual identification and explanation, without an intention to infringe. Page 2 of 24 Contents Chapter - 1 Introduction to Software product Engineering...............................................4 1.1 Software Product................................................................................................... 5 1.2 Software Product Planning.................................................................................. 10 1.3 Software product value chain, Roles and organization structure......................... 12 Summary........................................................................................................................22 Certificate in Software Product Engineering Chapter - 1 TCS Business Domain Academy Introduction to Software product Engineering Introduction Software product engineering presents a comprehensive overview of various classification of software products and explains the challenges faced by projects, this also gives the basics of how a software product needs to be planned. All the important stakeholders views and Primary and secondary value chain of software product are explained with organization structure. This gives highlights of product manager’s responsibilities and clarifies on how software product is different from IT product. Learning Objective After reading this chapter you will know Various types of software product Challenges and success criteria of projects How to do a successful product planning Software Product value chain What is product platform, family and line Difference between IT product and software product Page 4 of 24 Certificate in Software Product Engineering 1.1 TCS Business Domain Academy Software Product Software products come in all kind of form, shape and color. On the web they can be a way to present the latest news, login to a membership area, present some content, on-line education classes or a document search engine. Every single part is a product. The whole web site itself is a product. But all products are: Sellable – A Program Manager can demonstrate the benefits and features of the product, but this prototype is not yet ready for end-users. Shippable – The product is now ready for end-users. The product has been demonstrated to have no major functionality problems and a manufacturing/development process has been established. Supportable – The product has been thoroughly tested by Quality Assurance and documentation has been written for end-users. Scalable – The product has proven to be successful when many users simultaneously use the product, when numerous entries are made into the product’s database, and when several applications can be used at a time. Software product Vs other products: Software unlike other manufacturing products is not matured product area; the market needs, demand levels and technology platforms are rapidly changing in comparison with other products software can’t be marketed in steady state. Driving factors for software differs from those of traditional products, managing supply chain efficiencies and manufacturing cost control may be key drivers for traditional products. Whereas for software products R & D cost is major driver, Requirement gathering and timely prioritization of requirements and product launch to unfamiliar market. Software is perceived as “just bits” that can be changed at any time thus users come up with the changes at any time of product development (sometimes even a day before release) because of misconception of software as set of bits. Page 5 of 24 Certificate in Software Product Engineering 1.1.1 TCS Business Domain Academy Types of software products Software can be split into three broad types. 1.1.1.1 Packaged software This falls under application software which is otherwise known as end-user software is defines as set of instructions designed to solve a particular problem, it is designed to be sold to general public. Packaged software’s are produced in large quantities by considering general purpose functions. Few examples of this include “MS office”, “coral draw”, “yahoo messenger”, “Quattro pro” These are also known as commercial off the shelf (COTS) products which are sold at a set price. 1.1.1.2 Direct sales software This is software which is not available for common use, rather company sells this product with help of few sales representatives to clients who can negotiate the price, support terms etc with those representatives. 1.1.1.3 Customs software The software that is built specifically to meet company's standards and business needs, that company can own the custom built software 1.1.2 Software Product Projects. Software is Different Stuff - The biggest difference between software and the products of other kinds of projects is it's not physical. Software consists of ideas, designs, instructions and formulae. Creating software is almost entirely a cognitive activity. The stuff we can see and measure, from code files (visible through a computer as an example of something relatively real ?) They stand in for the real stuff, vs. the other way around. Maintaining that connection from thought stuff to real stuff is one of software's peculiar challenges. State of Doneness - The artifacts in software projects often aren't as visible or well understood as in other projects. Since one can't kick a chunk of software like a brick, you have to create ways to see that it's there. Tracking progress is often the hardest thing in software. Some big-bang software projects fail because early artifacts like designs weren't as well done as we thought they were. We're clearer on whether a factory blueprint is correct, complete and useful, or even present than with a software design. Testing - Because software is thought stuff, intelligent testing is harder and more valuable in software than with many other kinds of artifacts. Testing software projects creates Page 6 of 24 Certificate in Software Product Engineering TCS Business Domain Academy surrogate customers and checks for "doneness." Incremental delivery and early tests can force more visibility into the state of bricks and blueprints along the way. End State - The end state of a software project is often a lot more speculative than with other projects. Sometimes we have at best a vague notion of what we want. Sometimes our notion is clear (often with implicit requirements) but we forget to tell the other person. Often, we change our minds along the way. Because software is a relatively new field, software projects almost always involve new art - applying software to a new or expanded problem. Software Production - The production chain from feature to code to executing stuff varies wildly in throughput, availability, reliability and even variability itself. Software production varies from one application technology to another, from one platform to another, and even between deployments of the same production chain. Software production varies wildly between individuals and with changes to the environment they work in. With software, we are not guaranteed that we can make bricks from clay at any given rate even when we were making bricks just fine last week. A software project can also involve discretionary or forced changes to the production tools and methods, which change production as you go. Software production involves a lot more than producing software. Production processes on the front-end (before features) and back-end (after something that executes) are more variable than code production, and often dominate the project schedule, risk and variability. Non-production activities can also dominate the project, like organizational change, team formation and technology adoption. Worse, "complete" code doesn't mean the same thing. For example, some environments handle deployment for you (more or less) while others don't, so code that is "done" involves different back-end work. Managing the Project - Managing a software project is more managing and less administration than in less variable domains. Managing a software project is a continuous negotiation with customers and sponsors, but also with the technical team, suppliers, and support organizations. 1.1.3 Challenges with Software Projects People begin programming before they understand the problem o Everyone likes to feel that they’re making progress o When the team starts to code as soon as the project begins, they see immediate gains Page 7 of 24 Certificate in Software Product Engineering o TCS Business Domain Academy When problems become more complex (as they always do!), the work gets bogged down o In the best case, a team that begins programming too soon will end up writing good software that solves the wrong problem The team has an unrealistic idea about how much work is involved. o From far away, most complex problems seem simple to solve o Teams can commit to impossible deadlines by being overly optimistic and not thinking through the work o Few people realize the deadline is optimistic until it’s blown Defects are injected early but discovered late. o Projects can address the wrong needs o Requirements can specify incorrect behavior o Design, architecture and code can be technically flawed o Test plans can miss functionality o The later these problems are found, the more likely they are to cause the project to fail Programmers have poor habits – and they don’t feel accountable for their work. o Programmers don’t have good control of their source code o Code written by one person is often difficult for another person to understand o Programmers don’t test their code, which makes diagnosing and fixing bugs more expensive o The team does not have a good sense of the overall health of the project. Managers try to test quality into the software. o Everyone assumes that the testers will catch all of the defects that were injected throughout the project. o When testers look for defects, managers tell them they are wasting time. o When testers find defects, programmers are antagonized because they feel that they are being personally criticized. o 1.1.4 When testers miss defects, everyone blames them for not being perfect. Projects success criteria Make sure all decisions are based on openly shared information Page 8 of 24 Certificate in Software Product Engineering o TCS Business Domain Academy It’s important to create a culture of transparency, where everyone who needs information knows where to find it and is comfortable looking at it. o All project documents, schedules, estimates, plans and other work products should be shared with the entire team, managers, stakeholders, users and anyone else in the organization who wants them. Major decisions that are made about the project should be well-supported and explained o Don’t second-guess your team members’ expertise o Managers need to trust team members. o Just because a manager has responsibility for a project’s success, it doesn’t mean that he’s more qualified to make decisions than the team members. o If you don’t have a good reason to veto an idea, don’t. Introduce software quality from the very beginning of the project o Review everything, test everything. o Use reviews to find defects – but don’t expect the review to be perfect. o Use reviews to gain a real commitment from the team. o It’s always faster in the long run to hold a review than it is to skip it. Don’t impose an artificial hierarchy on the project team o All software engineers were created equal. o A manager should not assume that programming is more difficult or technical than design, testing or requirements engineering. o Managers should definitely not assume that the programmer is always right, or the tester is always raising false alarms. Remember that the fastest way through the project is to use good engineering practices o Managers and teams often want to cut important tasks – especially estimation, reviews, requirements gathering and testing. o If it were faster to build the software without these practices, we would never use them. Page 9 of 24 Certificate in Software Product Engineering o TCS Business Domain Academy Every one of these practices is about saving time and increasing quality by planning well and finding defects early. Cutting them out will cost time and reduce quality. 1.2 Software Product Planning When it has been determined that a software product will be developed, a project or other organizational entity is put in place to accomplish it. This project or entity should develop the necessary plans to accomplish the task. Project Planning can be divided into business plans which concentrate on the relationship with the customer, and technical plans used internally in the development group. 1.2.1 Business Planning Determining objectives - The function, cost, and price objectives for a software product need to be determined. Also, the objectives of the project developing the product a. Life-cycle models need to be stated. Forecasting demand for the product - In some environments, a software product is developed on speculation that there is a market for the product. A product forecast is used to estimate the number of units that it will be possibly be able to sell and is a function of projected development cost, price of the potential product, and the time at which the product can be made available. Proposal writing - In many environments, a contract is sought with an organization or the government this is usually initiated by a request for a proposal and price, sometimes called an RFP. The software organization may, by itself or in conjunction with another organization, prepare a proposal in the hopes of obtaining a contract for the work. Requirements analysis - It is important that the requirements be analyzed, so that it is understood what is needed from a functional characteristics point of view. Legal issues (patent, copyright, liability warranty) - Managers should have knowledge of whether algorithms qualify for patent or copyright protection. Managers should also verify that software meets liability and warranty requirements. Page 10 of 24 Certificate in Software Product Engineering 1.2.2 TCS Business Domain Academy Technical Planning Life Cycle Models - The planning process is dependent upon the life cycle model used by the development organization. Types of Plans - There are a number of plans developed in support of a large software project. o Program master plan o Management plan o Configuration management plan o Quality assurance plan o Maintenance plan o Test plan o Integration plan o Documentation plan o Transition plan o Firmware development plan Plan documentation methods o Work breakdown structures Work breakdown structures (WBS) are used to divide large projects into separate, manageable tasks similar to the way software is divided using stepwise refinement o PERT and CPM - Activity networks (PERT charts) and critical path methods (CPM) are used to describe dependencies, in flow diagram form, between the project parts. o Gantt charts o Standards Fulfillments  OD-STD-2167A [DoD88] is the software development standard for organizations contracting with the U. S. Department of Defense  NASA-Sfw-DID-02-ADA is the software management plan standard for organizations contracting with NASA  IEEE Std 1058.1-1987 is the IEEE statement for software project management plans for those organizations that do not have standards required of them by contract. Page 11 of 24 Certificate in Software Product Engineering 1.3 1.3.1 TCS Business Domain Academy Planning for Risk Management and Control Software product value chain, Roles and organization structure External and Internal Views on a (Software) product By changing the viewpoint, a “non-software product” can become a “pure” software product. A product which is online account for banking transactions is viewed as bank product for the end users. These products such as managing online transactions for home banking and the call center support for these banks are outsourced to 3rd party i.e. a software company, so the product when viewed in the perspective of such company becomes a software product that concentrates the software part of the product for which the company appoints the product manager who gathers user requirements and is the key responsible person for consistent and competitive product thus from view of corporate IT organization, the “online application” component is a software product. Since it was developed internally, an internal software product management is needed that receives – at least functional requirements from the product manager of the bank product. For example: Take the online account which is seen as a bank product through the eyes of the bank’s end customer or the bank’s executive board. The online account is realized internally via several hardware, software and service components that originate from various sources. The online application is created by Application Development as part of the corporate IT organization. o The banking online transaction server is bought as standard software and integrated with the online applications by the corporate IT organization, tested and put into production. o Call center is outsourced to an external service provider. Furthermore, the bank may decide to create explicit software product for online transactions which works well with mobile, thus bank becomes a customer for software vendor, in order to cater to this variant of mobile application the requirements of the product changes for which the IT company employs product manager to gather the requirements, continuously work on it and deliver the product. Page 12 of 24 Certificate in Software Product Engineering TCS Business Domain Academy The call center, including infrastructure and agents, is completely handed over to an external service provider, who implements such services for banks thus making it a main product for the service provider company. Service level agreements were negotiated and secured contractually. Hence most of the non-software products have software products inside. So the topic of software product management often plays a role in such product areas as well. 1.3.2 Product Platform, Family, and Line Product platform, product family, and individual product need to be differentiated for technology companies. Product Platform Product platform is the technical foundation which serves as a base for several software products “A product platform is defined as planning, decision making and strategic thinking thus making most critical strategic decisions on products that company should make, it is a collection of the common elements that are implemented across a range of products. The company should have a control on product platforms which are unlike software platforms for which external factors are driving criteria. The product platform is a valuable asset and serves as a market differentiator. Product platform decisions thus require a thoughtful management, since any miniature errors in decision have serious repercussions for all the products based on that platform and the company as a whole. Platform that brings the competitive advantage serves as a base not for only one product but for entire family of products An example of a product platform is the SAP core system that serves as the basis for all SAP components. Thus product platform is a key competitive factor, proper management of which becomes the core competency of a company. Product Family A group of software products that are either technologically similar or can address specific problem are marketed under a same family name is likely to be considered as product Page 13 of 24 Certificate in Software Product Engineering TCS Business Domain Academy family, this is done for marketing reasons, for efficient marketing strategy rather than marketing a single product. Products that are marketed under one product family may not necessarily belong to common product platform The technological similarity can be a common product platform, e.g. SAP products, or a common basic technology, e.g. IBM’s DB2 family. Microsoft Office is an example of a product family comprising a group of products that address specific problems. Product Line A group of software products which are variants of a base product governed by a common software architecture. A software product line is a set of software-intensive systems sharing a common, managed set of features that satisfy the specific needs of a particular market segment or mission and that are developed from a common set of core assets in a prescribed way. A new application of a proven concept An innovative, growing concept in software engineering 1.3.3 Product Name, Version Numbers and Compatibility For most software products development continues throughout its commercial (sales) lifetime. An important question in this context is if and when the development of a product results in a different product (with a new product name etc.) or simply a “new edition” of the existing product. There is no universally applicable answer to this question. Marketing aspects frequently play a more important role than technical aspects when selecting a name. It has become common to denominate software versions after a specific nomenclature, which is generally dependent on the manufacturer, however. IBM uses a three-level hierarchy of software levels, for example: Version: Denotes a new product, which as a rule comprises crucial expansions and improvements. Furthermore, a new version is always subject to a fee and also always receives a new (internal) product number. Page 14 of 24 Certificate in Software Product Engineering TCS Business Domain Academy Release: Denotes a new level of software with bigger functional or other improvements. New releases are generally free of charge for customers with a maintenance contract, and keep the product name, product number and the price model from the predecessor. Modification Level: Denotes a new status of software with limited expansions and delivery of error and cosmetic corrections to the predecessor. An example of complete product identification is IBM z/OS Version 1 Release 9 Modification Level 5 (in short z/OS 1.9.5). Microsoft has made available add-ons to some of their old Office products which allow opening the newer file types. From personal experience we can assert, however, that there remain incompatibilities, e.g. formatting in Excel 2007 vs. Excel 2002). 1.3.4 Attributes of Software Products Table 1 Various Attributes of software product Product Description Characteristics Maintainability It should be possible to evolve software to meet the changing needs of the customer. Dependability Software Dependability includes a range of characteristics including reliability, security and safety. Dependable software should not cause physical or economic damage in the event of system failure. Efficiency Software should not make wasteful use of system resources such as memory and processor cycles. Usability Software should have an appropriate user interface and adequate documentation. As we know the software attributes the key aspects to consider for any Product Development. Various software attributes as given in Table 1 Page 15 of 24 Certificate in Software Product Engineering TCS Business Domain Academy Uniqueness: In the competitive market environment consumers come up with new needs and wants, which need to be met and satisfied. To anticipate the shift in consumer preferences, firms launch unique products or services in their effort to remain viable and competitive by developing a UVP (Unique value proposition). Product uniqueness focuses on the launch of products or services that aim to satisfy unmet consumer needs. Time to Market: Reducing time-to-market (TTM) is a key driver for business success and can be a competitive advantage for the firms. Most of the organizations follow Lean and Agile kind of development models so as to release intermittent working software time and time to the market. Agile Product development works on the principle of Fail fast, fail cheap, fail often and learn quickly. You will learn more on Agile Product development in chapter 8. Cost and Quality: Product cost & quality plays a crucial role in success of the product, in a very competitive market the cost & quality of the product plays a vital role 1.3.5 Product Manager's Responsibilities A product manager is sometimes called the CEO of a product, who works close with the project and coordinates with Internal and External stake holders to make sure of products success. Also gets involved in solving the hurdles and glitches in the various phases of product development and ensure the smooth running of the product. The main responsibilities include Define product strategy and road maps Deliver MRD’s and PRD’s Tactical responsibilities Stakeholder management Market and competition Analysis Launch and Demo’s Define product strategy and road map: Page 16 of 24 Certificate in Software Product Engineering TCS Business Domain Academy Product managers are responsible for defining the long term strategy of the product which will be aligned to the business strategy, mission and express the details in a product roadmap. This roadmap and vision becomes the schedule input for engineering team to implement. Deliver MRD’s and PRD’s MRD’s are the Market Requirement Documents which include the VOC (Voice of customer) the in large firms where there are two people “Product Manger” and “Product Marketing Manager” responsible for product development MRD’s are usually prepared by “Product Marketing Manager”. MRD’s are written by product manager/product marketing manager with assistance of all the departments of the organization like Finance, research, marketing communications, sales and engineering. This becomes the basis for preparing PRD’s Product Requirement Document which captures the prioritized features of the product. (Have to add few more text in PRD) Tactical responsibilities After preparing the MRD’s and PRD’s product manager is responsible for requirement analysis, prioritization, then collecting user feedback and work with developers, ISV's(______), to get feedback on the feasibility of the requirements, evaluation and negotiations of terms. Stakeholder Management Stakeholder management is recognized as a crucial part for organizational effectiveness, so product manager’s needs to acknowledge and actively monitor concerns of all stakeholders. The product concept and the design/approach need to be accepted and approved by the stakeholders, usually two types of stake holders are defined. Internal Stakeholder External Stakeholder. Internal Stakeholder: These are the people who are internal to the business and are committed to serve the organization. They include all the teams (cross functional teams) namely engineering, business development, sales force, marketing, and finance in the organization. Product managers need to closely work with all the teams to define, design and execute product plans. Product managers sometimes need to train and clarify the teams on the product, so as to ensure the success of the product. Page 17 of 24 Certificate in Software Product Engineering TCS Business Domain Academy External Stakeholders: These are the people who are outside the organization perspective but are impacted by the work of the organization such as clients, community partners they should be engaged in contributing their views and experience on product decisions. Product manager needs to work with them in order to ensure the product acceptance to avoid conflicts and also needs to work with 3rd parties to judge partnership and licensing opportunities. Market and competition Analysis Every product manager/product marketing manager should be expert in analyzing the market trends and should have sound knowledge about competition. Product managers research the competition's technology and gathers data around market share, direction of the industry and threat to the current product and business. Launch and Demo’s The sales team often relies on product managers for good leads. At times its product managers who go in first to a customer to give a high level technical presentation and make a business case for the customer. A product manager is required to wear multiple hats, and to be successful in the product management role the product manager has to perform roles such as a project manager, visionary strategist, business owner, program manager, quality assurance, user experience police and sometimes even sales, business development and marketing. 1.3.6 Software product value chain and organization structure This section talks about the typical product value chain and ways in which Software Product Companies (ISVs) are organized to ensure the best of customer satisfaction and bring in the right innovation into the products. Most product companies are broadly categorized into two types of value chain as shown in Figure 1 : Primary Value chain Secondary Value chain Primary Value Chain Page 18 of 24 Certificate in Software Product Engineering TCS Business Domain Academy Primary value chain consists of the all the functions that consist right from incubation and developing the product along with selling, marketing and maintaining the product, so primary value chain consists all the functions right from innovation, build and take products to market. Secondary Value Chain Secondary value chain consists of functions that help in smooth running of the product company, it includes all the vital internal departments like HR, Finance and IT department for successful running of product. The primary and secondary value chain is illustrated in Figure Figure 1: ISVs Value Chain and Org. Structure VP Product Engineering (or CTO is few organization) is responsible for all aspects of the company’s engineering product development activities. The Vice President of Engineering will focus on the structuring and operation of the product development engineering function as well as responsible for P&L for the group. CMO is a supporting function responsible for all the activities related to marketing of a product and ensuring the product reaches to maximum audience. Page 19 of 24 Certificate in Software Product Engineering TCS Business Domain Academy CIO and other corporate functions are responsible for running the organizations effectively. The CIO typically reports to either the chief financial officer or, in ITcentered organizations, to the chief executive officer. CIO in a product organizations are responsible for all the internal IT applications and in some organizations also look into the infrastructure needs for the products. 1.3.7 IT Application vs Software Product Most of the times there is a common misconception that IT Application and Software Product is the same and all the methodologies and the skills required for both remain same. Now that we understand what a Software Product is and the process to build a software product, lets touch upon some of the major difference between IT Application and Software Product An IT application is “custom-built” for a single organization or set of users within the organization, but a product is “generic” and is built to cater to specific needs/demands foreseen in the market An IT application is generally functionality driven whereas a product is driven by market, competition, price, environment etc. Requirements are fixed in IT application whereas in product requirements change every rapidly and external factor plays a major role in product functionality and behavior (viz. technology changes, competition products etc.) Product Development needs a very agile process of development to ensure the ever changing requirements and also quick smaller incremental release to market to get a quick test of the product changes and gauge the market. IT Application can work in a typical waterfall model as requirements are more or less clear A product must be customizable, scalable, robust, well architected, and must have a solid framework on which one can improve and build new features. 1.3.8 Software categories and sample product companies Below Table 2 gives the list of broad level software product categories available in the market and ISVs building those products Page 20 of 24 Certificate in Software Product Engineering TCS Business Domain Academy Table 2: Software product categories Product Categories Operating System ( Server software, PC software) Description Sample Products Software that manages computer hardware resources and provide common services for computer programs. This can further be divided into Server Softwares and PC based Softwares Storage Software This category includes Softwares built to manage storage devices including data storage software, enterprise storage products, backup and recovery products etc. Database Softwares are specially designed software applications that interact with the user, other applications, and the database itself to capture and analyze data Desktop applications are Softwares which are mainly used as an install base. Most of these involve heavy processing at the client side like AutoCAD or designing software like EDA Software Server Software: Microsoft – Windows Server Apple – Mac OS X Server PC Software: Microsoft – Windows 8, Windows Vista Apple - Mac EMC – Symmetrix NetApp – ONTAP HP – 3PAR Microsoft – SQL Server Oracle Greenplum Microsoft – Dev tools Autodesk AutoCAD Cadence – EDA Software Informatica – Powercenter Microsoft Biztalk Database Management Desktop Applications Integration Softwares Application development Security Integration Softwares are special Softwares which enables companies to automate business processes, through the use of adapters which are tailored to communicate with different software systems used in an enterprise. Application Development Softwares are used to build applications using the Products and generally used by Developers or Engg. teams to build web sites, desktop applications, mobile apps etc Security Softwares are designed to enhance information security against intrusion and unauthorized access to resources from the systems Information Management Software Products used to manage information within the enterprise having capability to store, categorize and analyse and archive the content. Enterprise Process Application Enterprise Softwares are used to satisfy the needs of an organization rather than individual users. This includes software for HR department, CRM, ERP, Microsoft – Visual Studio Adobe Dreamweaver Symantec – Norton Antivirus CA IdentityMinder SAP – HANA Microsoft – SharePoint MicroStrategy – Reporting Suite SalesForce.com SAP – Enterprise Suite Page 21 of 24 Certificate in Software Product Engineering TCS Business Domain Academy Collaboration etc. Enterprise Vertical Application Infor – ERP/CRM Workday – HRM Suite Enterprise vertical Softwares are similar to JDA – Supply Enterprise Process except that this category Chain Suite focusses on the niche areas of enterprise e.g.: ADP – Tax supply chain, payroll, tax etc products Intuit – Finance products [Source: Defined by Forrester report Global Tech Market Outlook 2012 to 2013] Summary Software products come in all kind of form, shape and color. All products are sellable, shippable, supportable and scalable. Software can be split into three broad types o Packaged Software o Direct sales software o Customs software The biggest difference between software and the products of other kinds of projects is it's not physical. Software consists of ideas, designs, instructions and formulae. Creating software is almost entirely a cognitive activity. The artifacts in software projects often aren't as visible or well understood as in other projects, because software is thought stuff, intelligent testing is harder and more valuable in software than with many other kinds of artifacts The production chain from feature to code to executing stuff varies wildly in throughput, availability, reliability and even variability itself. Software production varies from one application technology to another, from one platform to another, and even between deployments of the same production chain Challenges with software projects are to begin programming before they understand the problem, Unrealistic idea on required effort, defects and bugs. Software project planning can be divided into business plans which concentrate on the relationship with the customer, and technical plans used internally in the development group. A product platform is defined as planning, decision making and strategic thinking thus making most critical strategic decisions on products that company should Page 22 of 24 Certificate in Software Product Engineering TCS Business Domain Academy make, it is a collection of the common elements that are implemented across a range of products A group of software products that are either technologically similar or can address specific problem are marketed under a same family name is likely to be considered as product family. Products that are marketed under one product family may not necessarily belong to common product platform A software product line is a set of software-intensive systems sharing a common, managed set of features that satisfy the specific needs of a particular market segment or mission and that are developed from a common set of core assets in a prescribed way Version denotes a new product, which as a rule comprises crucial expansions and improvements. Release denotes a new level of software with bigger functional or other improvements. Modification Level denotes a new status of software with limited expansions and delivery of error and cosmetic corrections to the predecessor Maintainability, Dependability, efficiency and usability are the software attributes to be considered for any product development. A product manager is sometimes called the CEO of a product, who works close with the project and coordinates with Internal and External stake holders to make sure of products success. Most product companies are broadly categorized into two types of value chain: o Primary Value chain o Secondary Value chain Primary value chain consists of the all the functions that consist right from incubation and developing the product along with selling, marketing and maintaining the product Secondary value chain consists of functions that help in smooth running of the product company, it includes all the vital internal departments like HR, Finance and IT department for successful running of product. Page 23 of 24 Certificate in Software Product Engineering TCS Business Domain Academy Page 24 of 24

Use Quizgecko on...
Browser
Browser