Week 5 Flashcards
What is the tradition method of product delivery?
Traditional product delivery (over years/months) uses 4 release:
Alpha
Beta
Release candidate
Release
What is the alpha release?
First release for sophisticated users, contains bugs but is for gathering feedback. Release for limited users.
What is the beta release?
Follows the alpha release, more stable but still requires feedback and contains some bugs.
What is a release candidate?
Comes after the beta release, it’s what the company plans to release, and is a final chance to make changes, if no bugs are found this is what will be released. Should be fairly stable. No new features.
When software was distributed on CDs why was it important that it was thoroughly tested before release?
Expensive and difficult to fix bugs, if you have a warehouse of 50000 CDs to update them all. Once the software is distributed to users it is far harder to update and fix their system when it is on a CD compared to digital download.
Issues with traditional software delivery
Adding features is hard the further down the cycle you go,
Fixing bugs is hard the further down the cycle you go
Very slow
Stressful for developers, working to time frames
What is Modern Feature Delivery?
Works within weeks rather than months
MVP moves between three environments:
Development
Staging
Production
What is the development environment?
The development environment you share with your scrum team, where the features are built, adds changes, does testing. At the end of the sprints, they are sent to staging.
What is the staging environment?
Staging is where the feature is set up in a mirror of the production environment.
Looks like production, we can use it to test on various platforms like Linux, etc. Tease out any bugs by moving environments, before we deploy it to customers using different OS. Perform more testing.
What is production?
Production is where the program runs and is operated by users in the real-world. If bugs are found here they are by real users affecting their real work. Failures are public.
Why is better to get your product to production quicker?
Get feedback faster, roll out updates quicker, stay on top of competitors.
What are the principles of software delivery?
- create a repeatable process
- automate almost everything
- version control for everything
- if it hurts, do it more frequently
- build quality in
- done means released
- everyone is responsible
- continuous improvement
What is ‘create a repeatable process?’
Releasing software should be easy, because it has been done thousands of times before. (minimize mistakes, faster, less stress)
What is ‘automate almost everything?’
The build should be push button operation. Scripts don’t make mistakes. (humans make mistakes)
What is ‘version control for everything?’
Everything you need to build, deploy, test and release your software should be kept in versioned storage. (helps you collaborate with team and back up code files)