Methodology
Years of experience have taught us that a one-size-fits-all approach does not guarantee success. We are familiar with a variety of project delivery methodologies such as Agile, Waterfall, Prince2 and Rational Unified Process (RUP). STG always recommends—and is ready to deliver—the project management practices tailored to each project and customer.
For most projects, STG uses a software development methodology that is well-suited to rapid, high-quality software development and high client satisfaction. We iteratively define system requirements and develop the application, with a goal of deploying working, production-ready software early and often. Our methodology follows a standardized software development lifecycle.
Discovery
During the discovery phase we complete the following activities and deliverables:
- Business case — Determine the current issues and the proposed solution
- High level project scope — Identify the key components for the proposed system
- High level technical analysis — Review existing customer technical infrastructure
- Development lifecycle expectations — Discuss activities through to the deployment phase, confirming which activities will be owned by STG, our customer, or both
- Budget (high level) — Provide a high level estimate for the project budget.
- Design phase plan — Complete a proposal for the design phase
Design
The design phase includes activities that are completed iteratively throughout the project. For example, we repeat the design process for each new round of system development. These activities and deliverables include:
- Prioritized feature list — Compile a list of system features, prioritized in order of value, and based on upstream dependencies
- Product roadmap — Create a visual roadmap of releases with features to be included in each
- Prototypes/analysis — Draft of prototypes for key screens and more detailed requirements for features scheduled for the next release
- Technical proof of concept exercises — Perform proof of concepts (“spikes”) to mitigate risk of potentially difficult technical challenges and to determine the approach
- Development estimates and project timelines — Estimate each feature to be developed and determine the estimated project timeline
- Project resource plan and budget plan — Determine the team composition and the project budget
- Development environment and system deployment lanes — Set up and test each environment in the deployment lane, from development to production
- Delivery phase plan — Complete a proposal for the delivery phase
Development
The development phase is also iterative, and includes the following activities:
- Software development — Coding of the software that has been approved for the upcoming release
- System testing — Perform all types of testing (unit, functional, regression, performance, security, load, etc.)
- Bug fixes — Fix bugs as they are uncovered by testing and prioritized for fixing
- Change control — Manage the addition of new requirements, ensuring that they are prioritized and that the updated plan is doable
- Deployment phase plan — Complete a proposal for the deployment phase
Deployment
The deployment phase involves the promotion of the application to a production environment. It then includes the following activities and deliverables.
- Deployments — Deploy the application as each new version is completed
- Production support — Providing first, second, and third tier support for production usage of the system
- IT support staff training — Training customer IT resources on the system so that they can provide technical support
- End user training — Training customer end users on system usage
- Application handoff — Deciding how the application handoff from the STG team to the customer IT staff will occur
- Ongoing system enhancements — Completing additional development on prioritized system enhancements
- Project retrospective — Conduct a project review (“post mortem”) and have a team celebration
- System documentation — Prepare documentation of business requirements and functional design, technical design, user guides/manuals, installation/implementation instructions, etc.