Waterfall
- Requirements building blocks: analyze (analysis), design, build (development), test, deploy (täpsemalt alates slaid 26)
- More risky and costly than iterative method
Miinused:
Advantages:
- Design errors are captured before any software is written saving time during the implementation phase.
- Excellent technical documentation is part of the deliverables and it is easier for new programmers to get up to speed during the maintenance phase
- The approach is very structured and it is easier to measure progress by reference to clearly defined milestones
- The total cost of the project can be accurately estimated after the requirements have been defined (via the functional and user interface specifications)
- Testing is easier as it can be done by reference to the scenarios defined in the functional specification
Disadvantages:
- Clients will often find it difficult to state their requirements at the abstract level of a functional specification and will only fully appreciate what is needed when the application is delivered
- It then becomes very difficult (and expensive) to re-engineer the application
- The model does not cater for the possibility of requirements changing during the development cycle
- A project can often take substantially longer to deliver than planned
Iterative development
- We do risky things at first
- we might build more than needed
- Defects are more likely to be detected earlier than in waterfall → overall project time and cost is reduced
Use case and story
It should stimulate about what the system should do (mainly with people outside the development team)
- Larger than user story
- User story is similar to one scenario of a use case (üks mullike koos aktoriga).
- Use cases are permanent artifacts, story cards are torn up
- use case is a document agreement between customer and developers
- Story is written to facilitate release and iteration planning
User story- as a customer, I want to mow my lawn quickly so I can do other things. (they emphasize users goals). 3Cs are card, conversation and confirmation (slaid 124)
Story actions:
Stories can be:
- Split- A large story can be split into two or more smaller ones of different sizes; useful for breaking up epics
- Combined- Two or more small stories can be combined into one
- Added- New stories can be added to an existing backlog
- Deleted- Existing stories can be deleted from a backlog
Story types:
- Epic- Large initiatives delivering new products, solutions, or services to customers. Comprised of a large collection of features
- Feature- Provides values to users. Realized by some number of user stories
- User Story- Represents a user’s need. Planning ítem
Start with epic (näide slaidil 172)
But we also need:
Vision- describe a product solution, provides a list of features delivered in the release (näide slaid 169)
Confirmation
Acceptance criteria. Used to determine when the story is done.
Acceptance criteria- represent the conditions of satisfication which are written as scenarios (usually in gherkin format aka given, when, then) alates slaid 214
5 principles of lean
- Value- define value precisely from the perspective of the end customer
- Value stream- identify the entire value stream for each service, product or product family and eliminate waste
- Flow- make the remaining value-creating steps flow
- Pull- as flow is introduced, let the customer pull (i.e., provide what the customer wants only when the customer wants it)
- Perfection- pursue perfection
LEAN
- First Lean system was applied in Toyota (1953) to:
- reduce inventory and production cycle time
- improve productivity
JIDOKA- built in quality aka quality management
Just in time (JIT) - evented by Kiichiro Toyoda. Produce and convey what customer wants, when they want in the amount they want. Production is based on demand. Simple is better. Continuous improvement. All waste must be visible to be identified and eliminated. To adapt to changes in environment.(goals on slide 272)
Kaizen- continuous process improvement
Kata- A way of keeping two things in alignment or synchronization with one another.
Jidoka- autonomation (automatiseerimine) slaid 277 joonis.
Poka-Yoke- early error detection
Toyota production system (TPS)
Elimination of waste in
- product
- process
It led to twin values of:
- rapid product flow
- built-in quality
Two pillars:
- just-in-time (JIT)
- automation
Muda, mura, muri
8 wastes in production (WIP) (täpsemalt alates slaid 260):
3 types of waste in software development:
- in team potential (slaid 534)
- in code development (slaid 535)
- in project management (slaid 536)
Lean production house:
5 Steps to process excellence (s
laidid 282 ja 283)
Scrum (al slaid 352)
Scrum is a lightweight framework that helps people, teams and organizations generate value through adaptive solutions for complex problems. Scrum employs an iterative, incremental approach to optimize predictability and to control risk. (rohkem al slaid 352)
Scrum three pillars - transparency (all know what is going on), inspection (check your work as you do it, without it you might chase irrelevant things) and adaption (OK to change tactical direction) al slaid 354
Product owner:
- Manages product backlog
- Optimizes the value of the product
- Represents the customer
- is accountable for maximizing the value of the product resulting from the work of the Scrum Team
- Developing and explicitly communicating the Product Goal
- Creating and clearly communicating Product Backlog items
- Ordering Product Backlog items
- Ensuring that the Product Backlog is transparent, visible and understood
scrum master:
- manages the scrum process
- Removes impediments
- team protector
- troubleshooter
- scrum guide
- is accountable for establishing Scrum as defined in the Scrum Guide
developers:
- Cross-functional
- Self-managed
- Create a plan for the Sprint, the Sprint backlog
- Instilling quality by adhering to a Definition of Done
- Adapting their plan each day toward the Sprint Goal
- Holding each other accountable as professionals
- No one (not even the Scrum Master) tells the Developers how to turn Product Backlog into usable Increment
Events (al slaid 383):
Sprint, Sprint planning, daily scrum, sprint review, retrospective
Artifacts:
Product backlog, sprint backlog, increment
Extreme programming (XP)
Core values- communication, simplicity, feedback, courage, respect (al slaid 457)
Practices- al slaid 468
Kanban
Pull vs push (kanban on Pull):
Originated from Toyota.
Visualization of workflow.
WIP- work in progress aka the number of work items started but not finished (other flow metrics on slaid 548)
Lean startup
Lean Startup Principles:
- Entrepreneurs are everywhere- You don't have to work in a garage to be in a startup
- Entrepreneurship is management- A startup is an institution, not just a product, so it requires management, a new kind of management specifically geared to its context
- Validated learning- Startups exist not to make stuff, make money, or serve customers. They exist to learn how to build a sustainable business. This learning can be validated scientifically, by running experiments that allow us to test each element of our vision
- Set up build - measure - learn process- The "Build-Measure-Learn feedback loop is at the core of the Lean Startup model
- Use innovation accounting- To improve entrepreneurial outcomes, and to hold entrepreneurs accountable, we need to focus on the boring stuff: how to measure progress, how to setup milestones, how to prioritize work. This requires a new kind of accounting, specific to startups
Lean Startup Lifecycle:
- Ideas
- Build
- Product
- Measure
- Data
- Learn
waterfall vs scrum vs kanban
scrum vs kanban slaidid alates 560
Lean vs traditional aka waterfall
RUP phases (al slaid 810):
What to build
How to build
Build the product
Deploy to end users
Testing
Testing principles:
- Complete testing is impossible
- Software testing is not simple activity
- Testing is risk-based
- Testing must be planned
- Testing requires independence (SQA team).
- Quality software testing depends on:
- Good understanding of software products and related domain application
- Cost-effective testing methodology, coverage, test methods, and tools
- Good engineers with creativity, and solid software testing experience
4 stages of Testing:
- Unit testing (slaid 975)
- –Purpose: to verify that the component/module functions properly
- Normally white box oriented
- Integration test (slaid 976)
- Normally black box oriented
- System test (slaid 977)
- Normally black box oriented
- Acceptance test (slaid 978)
- Normally black box oriented
Black box testing (al slaid 980)- No knowledge of internal design or code required. Tests are based on requirements and functionality
White box testing (al slaid 982)- Knowledge of the internal program design and code required. Tests are based on coverage of code statements,branches,paths,conditions.