The basic idea flows like this:
- Collect user requirements
- Translate user requirements into functional requirements
- Create design documents
- Create code
- Test/Validate code
- #4-#5 repeat as necessary
- Create User Guide
- Provide Training
- Roll out macro
- Maintain
I propose that we change to Agile Methodology. The basic ideals of Agile programming are:
- Customer satisfaction by rapid, continuous delivery of useful software
- Working software is delivered frequently (weeks rather than months)
- Working software is the principal measure of progress
- Even late changes in requirements are welcomed
- Close, daily cooperation between business people and developers
- Face-to-face conversation is the best form of communication (Co-location)
- Projects are built around motivated individuals, who should be trusted
- Continuous attention to technical excellence and good design
- Simplicity
- Self-organizing teams
- Regular adaptation to changing circumstances
- Collect User Requirements
- Determine the smallest subset of business beneficial requirements
- Code #2 subset
- Test/Validate
- Rollout
- Iterate #1-#5 until all continually changing requirements are met.
Iteration 1:
Requirement: Create counts for SOC/PT table
Code: Very simple, could be done in 1 week
Validation: Also very simple, could be done in 1 week
Business Need Met? Yes
Iteration 2:
Requirement: Allow for an option to specify multiple By groups (Treatment, Relatedness)
Code: Very simple, could be done in 1 week
Validation: Very simple, could be done in 1 week
Business Need Met? Yes
Iteration 3:
Requirement: After using the macro, the user realizes that he needs to be able to make the tables for multiple levels of AE terms (SOC/PT/LLT)
Code: Simple, modification takes 1+ weeks
Validation: Simple
Business Need Met? Yes
Iteration N:
Requirement: New thing a user thought of after having actually used the macro:
Code: Simple to Complex depending on request
Validation: Because it's done iteratively validation is never ONE huge task, it's just many smaller tasks. This also allows the validator to concentrate on creating correct and important test cases.
Business Need Met? Yes, and quickly. Instead of users waiting for months or years for perfect software to come out, they get pieces of useful time saving software frequently.