5. 5
How iterative is your development work?
We run in full-on Agile,
SAM, or rapid prototyping
style development.
We’re experimenting.
We do a standard
alpha beta gold
approach
Iterative development would
never fly around here. It’s
got to be perfect or it will
never see the light of day.
6. https://commons.wikimedia.org/wiki/File:Apollo_15_flag,_rover,_LM,_Irwin.jpg
Example source: Tom Ayerst
Let’s go to
the moon!
1. Build a rocket engine that has enough thrust.
2. Build a rocket that can lob a man into space.
3. Build one that can lob him into orbit.
4. Dock two space vehicles in orbit.
5. Land an unmanned one-way vehicle on the
moon to check the environment.
6. Fly round the moon.
7. Test out the lander near the moon.
8. Land on the moon.
7. 1. SAM & Rapid prototyping are
iterative approaches.
2. Agile & LLAMA are project
management approaches
designed for iterative
development.
3. You may already be doing it,
but calling it something
different.
4. It’s not unique to L&D projects.
things you
need to know
about iterative
development
And #3 will blow your mind.
15. Why
iterate?
15
You always have something usable.
You catch errors early.
You don’t get too far off track.
It’s easier to estimate.
It’s psychologically
way more satisfying.
22. Megan’s Rules for Iterations
1. It does real work.
2. Someone else has to use it.
3. You gather data.
4. You use the data to decide what work to do in the
next round.
22
So what is iterative development? It’s a process of getting closer and closer to your goals … instead of running right out and doing it.
Why on earth would you take this seemingly slow and painful route?
IBM DeveloperWorks
This leads us to adopt a style of software development where the assertions inherent in the plan are repeatedly challenged and evaluated by the design and development of demonstrable versions of the system, each of which is objectively shown to reduce the project risk and build upon the other to form the finished solution.
This style of development is more commonly known as iterative and incremental development, which we define as:
A style of development that involves the iterative application of a set of activities to evaluate a set of assertions, resolve a set of risks, accomplish a set of development objectives, and incrementally produce and refine an effective solution.
It is iterative in that it involves the successive refinement of the understanding of the problem, the solution's definition, and the solution's implementation by the repetitive application of the core development activities.2
It is incremental in that each pass through the iterative cycle grows the understanding of the problem and the capability offered by the solution.
Several or more applications of the iterative cycle are sequentially arranged to compose a project.
But what happens when change happens AFTER it’s supposed to?
You always have a running version of the program, eg, if you run out of time, you can deliver the last iteration, which may not have all functionality, but it does something. This is usually worth more to your instructor than a program which doesn't even compile yet. It helps identify the source of the last error (compilation or execution), because you know it's in the code you just added in this iteration. This makes finding bugs much faster. It's psychologically more satisfying to get positive feedback on your work, ie, a running program. Corrections early in development generally take less time than later in the development process.
You always have a running version of the program, eg, if you run out of time, you can deliver the last iteration, which may not have all functionality, but it does something. This is usually worth more to your instructor than a program which doesn't even compile yet. It helps identify the source of the last error (compilation or execution), because you know it's in the code you just added in this iteration. This makes finding bugs much faster. It's psychologically more satisfying to get positive feedback on your work, ie, a running program. Corrections early in development generally take less time than later in the development process.
Who defines when it’s done?
Team members include:
Instructional Designers
Developers
Stakeholders
Agile Coach or Project Manager
Learners
Subject Matter Experts
Who else?