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


  • 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


  • 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


  • 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


  • 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

Last modified: Wednesday, 25 November 2015, 12:52 AM