Software Development Processes Flashcards
software engineering
Engineering discipline that is concerned with all aspects of software production from the early stages of system specification through to maintaining the system after it has gone into use
requirements engineering
system specification
Software Development Processes
Set of related activities that lead to the production of a software product
main development activities
- specification → RE
- design & implementation
- validation
- evolution
software product
generic software systems sold to a variety of users
software engineering emerged as a discipline in the
1970s
Software projects
“one-off” systems, with the software system based on a set of software requirements
involve an external client or customer who decides on the functionality of the system and enters into a legal contract with the software development company
The customer’s problem and current processes are used as a basis for creating the software requirements, which specify the software to be implemented
customer
reqs
software
customer: generates a problem
reqs: implemented by developer
software: helps the customer with the problem
Software products
no external customer who creates requirements that define what the software must do
The software developer decides on the features of the product, when new releases are to be made available, the platforms on which the software will be implemented, and so on
opportunity
features
software
developer:
has an opportunity -> inspires features -> implements them -> realises the opportunity
Project vs Product based SE
- Product companies can decide when to change their product or take their product off the market. Custom software developed in a software project usually has a long lifetime and has to be supported throughout that lifetime.
- For most products, getting the product to customers quickly is critical. Excellent products often fail because an inferior product reaches the market first and customers buy that product. In practice, buyers are reluctant to change products after they have invested time and money in their initial choice.
Product vision
a simple and succinct statement that defines the essence of the product that is being developed
The product vision should answer three fundamental questions:
- What is the product that you propose to develop? What
makes this product different from competing products? - Who are the target users and customers for the product?
- Why should customers buy this product?
product vision qs
- FOR (target customer)
- WHO (statement of the need or opportunity)
- The (PRODUCT NAME) is a product (product category)
- THAT (key benefit, compelling reason to buy)
- UNLIKE (primary competitive alternative)
- OUR PRODUCT (statement of primary differentiation)
Software product management
a business activity focusing on the software products that are developed and sold by the business
Product managers (PMs)
take overall responsibility for the product and are involved in planning, development, and marketing
Key components of Software product management
- Product vision management
- Product roadmap development
- User story and scenario development
- Product backlog management
- Acceptance testing
- Customer testing
- User interface design
Agile methods are incremental development processes with
- frequent releases of the product
- continuous interaction between dev. team and customer
- reduced product documentation
- continuous and systematic assessment of produced value and risks
Agile in practice
- you make a list of features/reqs
- you estimate
- you set priorities
- you start executing
- you update the plan @run-time
Scrum
A framework for agile project organizations with designated individuals, who act as an interface between the development team and the organization
Scrum roles
product owner
scrum master
scrum team
stakeholder
product owner
- identifies product features and attributes
- reviews the work and ensures that the development team focuses only on the
product, rather than on technically appealing tasks
scrum master
- guides the team in effective use of scrum
- Not a conventional project manager, rather a coach having authority
on how scrum is used in the team
scrum team
self organizing team responsible for developing the product