Lecture 9-2
Project Build, Deployment, Maintenance
Lecture 9-1 Bart Massey 2015-11-25
Today, Let's Think Big
Talk about problems that mostly arise
- In really large projects
- With really large userbases
- Over really long timescales
Really, the problems here start about at delivery
Delivery
Pass acceptance tests
Build release versions
Package software with ancillary materials
Deploy the software
- Remember, most software is in-house
- The Internet is not enough
Don't invent deployment methodologies
Pre-Maintenance
Maintenance plan includes
- Instrumentation to diagnose defects
- Methodology for updates
- Preservation of software and artifacts
Best is living continued development
Maintenance will go beyond product end-of-life
Tools
Maintained SCMS
Regular builds and continuous integration
- State of the art is Travis CI
Automated frameworks are key for management
- Able to build and test all versions automatically
- Able to track configurations and config change history
Tools are not enough
- Must capture knowledge and process
Knowledge stored in people is fairly useless
Large Scale Deployment
Number one rule: customer contact is... expensive
Number two rule: "Out-Of-Box Experience" must be flawless
Risk management is key
- Incremental deployment
- Parallel deployment
Deployment team resource management
Versioning
Large projects rarely have a single product even at one point in time
- Multiple simultaneous development threads
- Multiple configurations
Large products must be built for size (c.f. Brooks' "Programming Systems Product"
Software Product Lines
Sometimes projects are built with a great deal of project-specific infrastructure
Keeping track of interrelationships and "soft SKUs" requires its own infrastructure
Software Maintenance
Only one kind of unmaintained software
Perhaps biggest effort in software life cycle
Infrastructure is crucial
- Adequate staffing
- Adequate knowledge transfer
Workable issue tracking system
Kinds Of Maintenance
Corrective
Perfective
Preventative
End-Of-Life Decisions
Have clear criteria for end
Have an endgame in mind