(Software Engineering) : (Software Products and Project Management: Software Product Management and Prototyping)
(Software Engineering) : (Software Products and Project Management: Software Product Management and Prototyping)
(Software Engineering)
軟體產品與專案管理:
軟體產品管理,原型設計
(Software Products and Project Management:
Software product management and prototyping)
1091SE02
MBA, IM, NTPU (M5118) (Fall 2020)
Tue 2, 3, 4 (9:10-12:00) (B8F40)
Min-Yuh Day
戴敏育
Associate Professor
副教授
Institute of Information Management, National Taipei University
國立臺北大學 資訊管理研究所
https://web.ntpu.edu.tw/~myday
2020-09-22 1
課程大綱 (Syllabus)
週次 (Week) 日期 (Date) 內容 (Subject/Topics)
1 2020/09/15 軟體工程概論 (Introduction to Software Engineerin
g)
2 2020/09/22 軟體產品與專案管理:軟體產品管理,原型設計
Source: https://www.amazon.com/Engineering-Software-Products-Ian-Sommerville/dp/013521064X 5
Ian Sommerville (2015),
Software Engineering,
10th Edition, Pearson.
Source: https://www.amazon.com/Software-Engineering-10th-Ian-Sommerville/dp/0133943038 6
Software
Engineering
7
Software Engineering and
Project Management
Project Management
8
Software Engineering
• Software engineering is an engineering discipli
ne that is concerned with all aspects of softwa
re production from the early stages of system
specification through to maintaining the syste
m after it has gone into use.
Management
Information Systems (MIS)
Information Systems
17
Information Management (MIS)
Information Systems
Source: Kenneth C. Laudon & Jane P. Laudon (2014), Management Information Systems: Managing the Digital Firm, Thirteenth Edition, Pearson. 18
Fundamental MIS Concepts
Business
Challenges
Management
Information Business
Organization
System Solutions
Technology
Source: Kenneth C. Laudon & Jane P. Laudon (2014), Management Information Systems: Managing the Digital Firm, Thirteenth Edition, Pearson. 19
Software products
• Software products are generic software syste
ms that provide functionality that is useful to a
range of customers.
• Software products:
– Large-scale business systems (e.g. MS Excel)
– Personal products (e.g. Evernote)
– Simple mobile phone apps and games (e.g. Suduk
o).
Source: Ian Sommerville (2019), Engineering Software Products: An Introduction to Modern Software Engineering, Pearson. 20
Software product engineering
• Software product engineering methods and te
chniques have evolved from software enginee
ring techniques that support the development
of one-off, custom software systems.
Source: Ian Sommerville (2019), Engineering Software Products: An Introduction to Modern Software Engineering, Pearson. 21
Software projects
• Custom software systems are still important fo
r large businesses, government and public bod
ies.
• They are developed in dedicated software proj
ects.
Source: Ian Sommerville (2019), Engineering Software Products: An Introduction to Modern Software Engineering, Pearson. 22
Project
• A project is a
temporary endeavor
undertaken to create a
unique product, service, or result.
Source: Project Management Institute (2017), A Guide to the Project Management Body of Knowledge (PMBOK Guide), Sixth Edition, PMI 23
Project Management Knowledge Areas
1. Project Integration Management
2. Project Scope Management
3. Project Schedule Management
4. Project Cost Management
5. Project Quality Management
6. Project Resource Management
7. Project Communications Management
8. Project Risk Management
9. Project Procurement Management
10. Project Stakeholder Management
Source: Project Management Institute (2017), A Guide to the Project Management Body of Knowledge (PMBOK Guide), Sixth Edition, PMI 24
Project Management Process Groups
1. Initiating Process Group
2. Planning Process Group
3. Executing Process Group
4. Monitoring and Controlling Process Group
5. Closing Process Group
Source: Project Management Institute (2017), A Guide to the Project Management Body of Knowledge (PMBOK Guide), Sixth Edition, PMI 25
Project-based software engineering
CUSTOMER
Problem
generates helps-with
implemented-by
1 Requirements Software
Source: Ian Sommerville (2019), Engineering Software Products: An Introduction to Modern Software Engineering, Pearson. 27
Product software engineering
DEVELOPER
1 Opportunity
inspires realizes
implemented-by
Product
Software
features
DEVELOPER DEVELOPER
Source: Ian Sommerville (2019), Engineering Software Products: An Introduction to Modern Software Engineering, Pearson. 28
Product software engineering
• The starting point for product development is a business opport
unity that is identified by individuals or a company.
They develop a software product to take advantage of this oppo
rtunity and sell this to customers.
• The company who identified the opportunity design and imple
ment a set of software features that realize the opportunity and
that will be useful to customers.
• The software development company are responsible for decidin
g on the development timescale, what features to include and
when the product should change.
• Rapid delivery of software products is essential to capture the
market for that type of product.
Source: Ian Sommerville (2019), Engineering Software Products: An Introduction to Modern Software Engineering, Pearson. 29
Software product line
• A set of software products that share a comm
on core.
• Each member of the product line includes cust
omer-specific adaptations and additions.
• Software product lines may be used to implem
ent a custom system for a customer with speci
fic needs that can’t be met by a generic produ
ct.
Source: Ian Sommerville (2019), Engineering Software Products: An Introduction to Modern Software Engineering, Pearson. 30
Platform
• A software (or software + hardware) product t
hat includes functionality so that new applicati
ons can be built on it.
• An example of a platform that you probably us
e is Facebook.
• It provides an extensive set of product functio
nality but also provides support for creating ‘F
acebook apps’.
• These add new features that may be used by a
business or a Facebook interest group.
Source: Ian Sommerville (2019), Engineering Software Products: An Introduction to Modern Software Engineering, Pearson. 31
Software execution models
Stand-alone execution Hybrid execution Software as a service
User’s computer User’s computer User’s computer
Additional functionality
Product updates Product functionality
User data backups
User data
Product updates
Source: Ian Sommerville (2019), Engineering Software Products: An Introduction to Modern Software Engineering, Pearson.
Software execution models
• Stand-alone
– The software executes entirely on the customer’s compute
rs.
• Hybrid
– Part of the software’s functionality is implemented on the
customer’s computer but some features are implemented
on the product developer’s servers.
• Software service
– All of the product’s features are implemented on the devel
oper’s servers and the customer accesses these through a
browser or a mobile app.
Source: Ian Sommerville (2019), Engineering Software Products: An Introduction to Modern Software Engineering, Pearson. 33
Comparable
software development
• The key feature of product development is that there is no ext
ernal customer that generates requirements and pays for the
software.
• Student projects
– Individuals or student groups develop software as part of t
heir course. Given an assignment, they decide what featur
es to include in the software.
• Research software
– Researchers develop software to help them answer questi
ons that are relevant to their research.
• Internal tool development
Source: Ian Sommerville (2019), Engineering Software Products: An Introduction to Modern Software Engineering, Pearson. 34
The product vision
• The starting point for software product development
is a ‘product vision’.
• Product visions are simple statements that define the
essence of the product to be developed.
• The product vision should answer three fundamental
questions:
– What is the product to be developed?
– Who are the target customers and users?
– Why should customers buy this product?
Source: Ian Sommerville (2019), Engineering Software Products: An Introduction to Modern Software Engineering, Pearson. 35
Moore’s vision template
• FOR (target customer)
• WHO (statement of the need or opportunity)
• The (PRODUCT NAME) is a (product category)
• THAT (key benefit, compelling reason to buy)
• UNLIKE (primary competitive alternative)
• OUR PRODUCT (statement of primary differen
tiation)
Source: Ian Sommerville (2019), Engineering Software Products: An Introduction to Modern Software Engineering, Pearson. 36
Vision template example
• “FOR a mid-sized company's marketing and sales
departments
WHO need basic CRM functionality,
THE CRM-Innovator is a Web-based service
THAT provides sales tracking, lead generation, an
d sales representative support features that impr
ove customer relationships at critical touch point
s.
UNLIKE other services or package software produ
cts,
OUR product provides very capable services at a
moderate cost.”
Source: Ian Sommerville (2019), Engineering Software Products: An Introduction to Modern Software Engineering, Pearson. 37
Information sources for developin
g a product vision
• Domain experience
• Product experience
• Customer experience
• Prototyping and playing around
Source: Ian Sommerville (2019), Engineering Software Products: An Introduction to Modern Software Engineering, Pearson. 38
Information sources for developin
g a product vision
• Domain experience
– The product developers may work in a particular a
rea (say marketing and sales) and understand the s
oftware support that they need.
– They may be frustrated by the deficiencies in the s
oftware they use and see opportunities for an imp
roved system.
Source: Ian Sommerville (2019), Engineering Software Products: An Introduction to Modern Software Engineering, Pearson. 39
Information sources for developin
g a product vision
• Product experience
– Users of existing software (such as word processin
g software) may see simpler and better ways of pr
oviding comparable functionality and propose a n
ew system that implements this.
– New products can take advantage of recent techn
ological developments such as speech interfaces.
Source: Ian Sommerville (2019), Engineering Software Products: An Introduction to Modern Software Engineering, Pearson. 40
Information sources for developin
g a product vision
• Customer experience
– The software developers may have extensive discu
ssions with prospective customers of the product t
o understand the problems that they face, constrai
nts, such as interoperability, that limit their flexibili
ty to buy new software, and the critical attributes
of the software that they need.
Source: Ian Sommerville (2019), Engineering Software Products: An Introduction to Modern Software Engineering, Pearson. 41
Information sources for developin
g a product vision
• Prototyping and playing around
– Developers may have an idea for software but nee
d to develop a better understanding of that idea a
nd what might be involved in developing it into a p
roduct.
– They may develop a prototype system as an experi
ment and ‘play around’ with ideas and variations u
sing that prototype system as a platform.
Source: Ian Sommerville (2019), Engineering Software Products: An Introduction to Modern Software Engineering, Pearson. 42
A vision statement for
the iLearn system
• FOR teachers and educators WHO need a way to help student
s use web-based learning resources and applications, THE iLea
rn system is an open learning environment THAT allows the se
t of resources used by classes and students to be easily config
ured for these students and classes by teachers themselves. U
NLIKE Virtual Learning Environments, such as Moodle, the foc
us of iLearn is the learning process rather than the administra
tion and management of materials, assessments and coursew
ork. OUR product enables teachers to create subject and age-
specific environments for their students using any web-based
resources, such as videos, simulations and written materials t
hat are appropriate.
• Schools and universities are the target customers for the iLearn system as it will significantly i
mprove the learning experience of students at relatively low cost. It will collect and process le
arner analytics that will reduce the costs of progress tracking and reporting.
Source: Ian Sommerville (2019), Engineering Software Products: An Introduction to Modern Software Engineering, Pearson. 43
The Essence of
Strategic Marketing (S
TP)
Segmentation
Targeting
Positioning
Source: Philip Kotler and Kevin Lane Keller (2016), Marketing Management, 15th edition, Pearson. 44
Customer
Value
Source: Philip Kotler and Kevin Lane Keller (2016), Marketing Management, 15th edition, Pearson. 45
Value
the sum of the
tangible and intangibl
e
benefits and costs
Source: Philip Kotler and Kevin Lane Keller (2016), Marketing Management, 15th edition, Pearson. 46
Value
Total
customer
benefit
Customer
perceived
value
Total
customer
cost
Source: Philip Kotler and Kevin Lane Keller (2016), Marketing Management, 15th edition, Pearson. 47
Customer Perceived Value
Product benefit
Services benefit
Total
customer
Personnel benefit
benefit
Image benefit Customer
perceived
Monetary cost value
Time cost
Total
customer
Energy cost
cost
Psychological cost
Source: Philip Kotler and Kevin Lane Keller (2016), Marketing Management, 15th edition, Pearson. 48
Business Model
8 7 2 4 1
Key Customer
Activities Relationships
9 Cost 5 Revenue
Structure Streams
Source: Alexander Osterwalder & Yves Pigneur, Business Model Generation: A Handbook for Visionaries, Game Changers, and Challengers, Wiley, 2010. 49
Software product management
• Software product management is a business activity that focu
ses on the software products developed and sold by the busin
ess.
• Product managers (PMs) take overall responsibility for the pro
duct and are involved in planning, development and product
marketing.
• Product managers are the interface between the organization,
its customers and the software development team. They are i
nvolved at all stages of a product’s lifetime from initial concep
tion through to withdrawal of the product from the market.
• Product managers must look outward to customers and poten
tial customers rather than focus on the software being develo
ped
Source: Ian Sommerville (2019), Engineering Software Products: An Introduction to Modern Software Engineering, Pearson. 50
Product management concerns
Business
needs
Product
manager
Technology Customer
constraints experience
Source: Ian Sommerville (2019), Engineering Software Products: An Introduction to Modern Software Engineering, Pearson. 51
Product management concerns
• Business needs
– PMs have to ensure that the software being developed me
ets the business goals of the software development compa
ny.
• Technology constraints
– PMs must make developers aware of technology issues tha
t are important to customers.
• Customer experience
– PMs should be in regular contact with customers and pote
ntial customers to understand what they are looking for in
a product, the types of users and their backgrounds and th
e ways that the product may be used.
Source: Ian Sommerville (2019), Engineering Software Products: An Introduction to Modern Software Engineering, Pearson. 52
Technical interactions of
product managers
Product
vision
management
Product User stories
backlog and
management scenarios
Product
manager
Acceptance Customer
testing testing
User
interface
design
Source: Ian Sommerville (2019), Engineering Software Products: An Introduction to Modern Software Engineering, Pearson. 53
Technical interactions of
product managers
• Product vision management
– The product manager may be responsible for helpi
ng with the development of the product vision.
– The should always be responsible for managing th
e vision, which involves assessing and evaluating p
roposed changes against the product vision.
– They should ensure that there is no ‘vision drift’
Source: Ian Sommerville (2019), Engineering Software Products: An Introduction to Modern Software Engineering, Pearson. 54
Technical interactions of
product managers
• Product roadmap development
– A product roadmap is a plan for the development,
release and marketing of the software.
– The PM should lead roadmap development and sh
ould be the ultimate authority in deciding if chang
es to the roadmap should be made.
Source: Ian Sommerville (2019), Engineering Software Products: An Introduction to Modern Software Engineering, Pearson. 55
Technical interactions of
product managers
• User story and scenario development
– User stories and scenarios are used to refine a pro
duct vision and identify product features.
– Based on his or her knowledge of customers, the P
M should lead the development of stories and sce
narios.
Source: Ian Sommerville (2019), Engineering Software Products: An Introduction to Modern Software Engineering, Pearson. 56
Technical interactions of
product managers
• Product backlog creation and management
– The product backlog is a prioritized ‘to-do’ list of w
hat has to be developed.
– PMs should be involved in creating and refining th
e backlog and deciding on the priority of product f
eatures to be developed.
Source: Ian Sommerville (2019), Engineering Software Products: An Introduction to Modern Software Engineering, Pearson. 57
Technical interactions of
product managers
• Acceptance testing
– Acceptance testing is the process of verifying that
a software release meets the goals set out in the p
roduct roadmap and that the product is efficient a
nd reliable.
– The PM should be involved in developing tests of t
he product features that reflect how customers us
e the product.
Source: Ian Sommerville (2019), Engineering Software Products: An Introduction to Modern Software Engineering, Pearson. 58
Technical interactions of
product managers
• Customer testing
– Customer testing involves taking a release of a pro
duct to customers and getting feedback on the pro
duct’s features, usability and business.
– PMs are involved in selecting customers to be invo
lved in the customer testing process and working
with them during that process.
Source: Ian Sommerville (2019), Engineering Software Products: An Introduction to Modern Software Engineering, Pearson. 59
Technical interactions of
product managers
• User interface design
– Product managers should understand user limitati
ons and act as surrogate users in their interactions
with the development team.
– They should evaluate user interface features as th
ey are developed to check that these features are
not unnecessarily complex or force users to work i
n an unnatural way.
Source: Ian Sommerville (2019), Engineering Software Products: An Introduction to Modern Software Engineering, Pearson. 60
Product prototyping
• Product prototyping is the process of developi
ng an early version of a product to test your id
eas and to convince yourself and company fun
ders that your product has real market potenti
al.
Source: Ian Sommerville (2019), Engineering Software Products: An Introduction to Modern Software Engineering, Pearson. 61
Product prototyping
• You may be able to write an inspiring product
vision, but your potential users can only really
relate to your product when they see a workin
g version of your software.
• They can point out what they like and don’t lik
e about it and make suggestions for new featu
res.
• A prototype may be also used to help identify
fundamental software components or services
and to test technology.
Source: Ian Sommerville (2019), Engineering Software Products: An Introduction to Modern Software Engineering, Pearson. 62
Product prototyping
• Building a prototype should be the first thing tha
t you do when developing a software product.
• Your aim should be to have a working version of
your software that can be used to demonstrate i
ts key features.
• You should always plan to throw-away the proto
type after development and to re-implement th
e software, taking account of issues such as secu
rity and reliability.
Source: Ian Sommerville (2019), Engineering Software Products: An Introduction to Modern Software Engineering, Pearson. 63
Two-stage prototyping
1. Feasibility demonstration
– You create an executable system that demonstrate
s the new ideas in your product.
– The aims at this stage are to see if your ideas actu
ally work and to show funders and/or company m
anagement the original product features that are
better than those in competing products.
2. Customer demonstration
Source: Ian Sommerville (2019), Engineering Software Products: An Introduction to Modern Software Engineering, Pearson. 64
Two-stage prototyping
1. Feasibility demonstration
2. Customer demonstration
– You take an existing prototype created to demonst
rate feasibility and extend this with your ideas for
specific customer features and how these can be r
ealized.
– Before you develop this type of prototype, you ne
ed to do some user studies and have a clearer idea
of your potential users and scenarios of use.
Source: Ian Sommerville (2019), Engineering Software Products: An Introduction to Modern Software Engineering, Pearson. 65
Software process models
• The waterfall model
– This takes the fundamental process activities of specification,
development, validation, and evolution and represents them a
s separate process phases such as requirements specification,
software design, implementation, and testing.
• Incremental development
– This approach interleaves the activities of specification, develo
pment, and validation. The system is developed as a series of
versions (increments), with each version adding functionality t
o the previous version.
• Integration and configuration
– This approach relies on the availability of reusable components or system
s. The system development process focuses on configuring these compone
nts for use in a new setting and integrating them into a system.
Source: Ian Sommerville (2015), Software Engineering, 10th Edition, Pearson. 66
Software Development Life Cycle (SDLC)
The waterfall model
Requirements
definition
System and
Software design
Implementation
and unit testing
Integration and
system testing
Operation and
maintenance
Initial
Specification
version
Outline Intermediate
Intermediate
Development Intermediate
versions
description versions
versions
Validation Final
version
Establish Define
Develop Evaluate
prototype prototype
prototype prototype
objectives functionality
System
complete ?
Final
system
Process Process
Change Analyze
Level 4
Quantitatively
Defined
Level 3
Defined
Level 2
Managed
Level 1
Initial
Agile development
Requirements Design and
engineering implementation
Ch
Fundamentally
a
risky
Requirements Uncertainty
os
Co
m
pl
ex
Co
Adaptive
m
approaches
pl
ica
te
Si
Linear
m
approaches
pl
Source: Project Management Institute (2017), Agile Practice Guide, Project Management Institute 76
The Continuum of Life Cycles
High
Incremental Agile
Frequency of Delivery
Predictive Iterative
Low
Low High
Degree of Change
Source: Project Management Institute (2017), Agile Practice Guide, Project Management Institute 77
Predictive Life Cycle
Source: Project Management Institute (2017), Agile Practice Guide, Project Management Institute 78
Iterative Life Cycle
Prototype Refine
Analyze Build
Analyze Deliver
Design Test
Source: Project Management Institute (2017), Agile Practice Guide, Project Management Institute 79
A Life Cycle of
Varying-Sized Increments
Source: Project Management Institute (2017), Agile Practice Guide, Project Management Institute 80
Iteration-Based and Flow-Based A
gile Life Cycles
Iteration-Based Agile
Flow-Based Agile
Requirements Requirements Requirements Requirements Requirements
Analysis Analysis Analysis Analysis Analysis
Design Design Design Design Design
Repeat
Build Build Build Build Build
as needed
Test Test Test Test Test
…
the number of the number of the number of the number of the number of
features in the features in features in the WIP features in the features in the WIP
WIP limit the WIP limit limit WIP limit limit
Source: Project Management Institute (2017), Agile Practice Guide, Project Management Institute 81
Summary
• Software products are software systems that i
nclude general functionality that is likely to be
useful to a wide range of customers.
Source: Ian Sommerville (2019), Engineering Software Products: An Introduction to Modern Software Engineering, Pearson. 82
Summary
• Software products may be delivered as stand-
alone systems running on the customer’s com
puters, hybrid systems or service-based syste
ms.
• In hybrid systems, some features are impleme
nted locally and others are accessed over the I
nternet.
• All product features are remotely accessed in s
ervice-based products.
Source: Ian Sommerville (2019), Engineering Software Products: An Introduction to Modern Software Engineering, Pearson. 83
Summary
• A product vision should succinctly describe wh
at is to be developed, who are the target custo
mers for the product and why they should buy
the product that you are developing.
• Domain experience, product experience, custo
mer experience and an experimental software
prototype may all contribute to the developm
ent of the product vision.
Source: Ian Sommerville (2019), Engineering Software Products: An Introduction to Modern Software Engineering, Pearson. 84
Summary
• Key responsibilities of product managers are p
roduct vision ownership, product roadmap de
velopment, creating user stories and the prod
uct backlog, customer and acceptance testing
and user interface design.
Source: Ian Sommerville (2019), Engineering Software Products: An Introduction to Modern Software Engineering, Pearson. 85
Summary
• Product managers work at the interface betwe
en the business, the software development te
am and the product customers.
• They facilitate communications between these
groups.
Source: Ian Sommerville (2019), Engineering Software Products: An Introduction to Modern Software Engineering, Pearson. 86
Summary
• You should always develop a product prototyp
e to refine your own ideas and to demonstrate
the planned product features to potential cust
omers
Source: Ian Sommerville (2019), Engineering Software Products: An Introduction to Modern Software Engineering, Pearson. 87
References
• Ian Sommerville (2019), Engineering Software Products: An In
troduction to Modern Software Engineering, Pearson.
• Ian Sommerville (2015), Software Engineering, 10th Edition, P
earson.
• Titus Winters, Tom Manshreck, and Hyrum Wright (2020), Soft
ware Engineering at Google: Lessons Learned from Programmi
ng Over Time, O'Reilly Media.
• Project Management Institute (2017), A Guide to the Project
Management Body of Knowledge (PMBOK Guide), Sixth Editio
n, Project Management Institute
• Project Management Institute (2017), Agile Practice Guide, Pr
oject Management Institute
88