Over the years, you have probably noticed that the typically linear eLearning development process has undergone some changes. One change that I've noticed are that customers are realizing that we aren't just creating courseware or writing content and interactions, we are also developing software. This has led to an expectation that the eLearning industry adopt some development models and methodologies from the software industry.
As Instructional Designers move away from purely being creators of content, to developers of tools and applications that assist learning and support performance, understanding the processes used by the software development industry becomes rather important. The quality of an application doesn't depend on the content it contains, but rather its functional design, technology architecture, implementation and optimization. In other words, it is about the end-user experience. The design of 'good' software applications is a very different ballgame from developing courseware.
Perhaps the first major aspect of software development process to filter into eLearning development is the use of iterative development. The movement away from a linear development process can only be good for eLearning. Endless rounds of alphas and betas, and a go-live date were stressful for all project stakeholders. As we become used to software (especially web-services) being in perpetual beta, it is now possible to release often, sometimes just enough to provide the learning, before adding significant graphic design and interaction effort. Having a fixed iteration schedule also helps get feedback faster, and that can be leveraged in the next iteration. This method leads to better quality courseware that focuses on the essentials first, and gradually improves the graphics and interaction. Rather than attempting to get it all right at the first go, which rarely works because it is difficult to do when attempting to satisfy multiple stakeholders with diverging perspectives on 'good' eLearning. Iterative development clearly offers many advantages the conventional linear development process doesn't, however we are yet to see significant adoption of this model in our industry.
The second element percolating into eLearning is the use of prototypes. I feel this practice from software design and development has penetrated eLearning far more than the use of iterative development and is fairly well established. A prototype accomplishes a lot of things for the developers and designers – it simulates the final design, features, aesthetics and functionality, this in turn allows for stakeholders to get a 'feel' for the product being developed, as also provide feedback that is realistic and not based purely on documented designs or storyboards. The ability to allow learners (users) to interact with the prototype results in better and more constructive feedback for designers. Reduced time and costs for development are one obvious advantage of prototyping, but I see the increased involvement of users in the design process as a significant advantage as well. This involvement has a direct impact on the tangible and intangible quality of the product to be developed. Having said that, there are two common traps I've seen eLearning projects using prototyping falling into. First, spending way too much time on developing the prototype. Users and developers often get stuck in debating the details of the prototype, resulting in delays on actual development. Second, feature creep is a big deal with prototypes. While they start out to model a few basic features, users start to expect more and more as they see and use the prototype. Without clear requirement and design management, this will eventually bring the development to a halt. Its far easier and better to draw a line and coach users on what they can expect and demand from the development team.
There is much learning to garner from software development models and processes. What techniques from other industries do you use in eLearning development?