Lesson 1: Incremental Deployment
While not always possible, incremental deployments are beneficial because they:
- Limit the scope of effect of the Day 1 gremlins
- Learn from early missteps of and adapt.
- Improve orientation and training assets based in input from early adopters.
- Sharpen marketing approach via early success stories.
- Grow the user base through early adopters without annoying the often vocal skeptics.
- Those early adopters will pass on their enthusiasm and you will benefit from a "viral" spread in usage.
- The feedback of the early adopters helps create the marketing collateral and tool configuration needed to ease adoption by the skeptics.
Lesson 2: Incremental Development and Early User Engagement
Incremental development engages key users early in the development phase. Our development is organized as a series of two-week sprints (driven by a shared ScrumWorks backlog), which deliver functionality to a group of "Beta consumers" who try out the software and provide feedback in the form of defects and new requirements.
The benefits of this approach are:
- We involve "real" users early in the development process who "own" a piece of the solution and can act as advocates of the solution amongst their peers.
- We benefit from a long period of feedback from users with "early adopter" mindset, which can polish the main deployment.
- We can react to user feedback and a changing deployment environment -- adding, removing re-prioritizing stories.
The benefits of early engagement with key users is so compelling that I would look for a proven agile capability in any supplier undertaking development work on a project I am running. We were fortunate that Tasktop Technologies' background in the Eclipse development process, and their internal adoption of Scrum methods, made it easy for us to work with them in an agile fashion.
Lesson 3: Instrumentation
A key feature being built into the version of Tasktop being deployed at Nokia is the ability to track usage, not only of the tool itself, but also of the different features of the tool. The information (which is collected anonoymously and cannot be traced back to the end user) helps us paint a picture of how users are using Tasktop, Carbide, and other Eclipse-based tools. This helps:
- Track where you are relative to your deployment targets ("Is team x really using this tool?").
- Tell you where you may not have been effective in communicating the value of a feature to users ("Why is nobody using feature when we think it's so great?").
- Put together models of productivity that you can use to secure buy-in from non-user stakeholders such as project and line managers.
In my experience, it is really helpful if the tool itself can provide usage stats -- to the extent that I now view this as a requirement for any tool I am going to deploy.
Lesson 4: Put Yourself In Their Shoes
Our guiding philosophy is that our users are customers, their time is important, and we need their first experience of using the software to be positive.
For these reasons, an understanding of what it is that users find confusing in their initial interaction with the "whole product" is valuable and needs to be factored into development plans or your training materials. I say "whole product" here because it's as much about installation and training material as it is about the actual software itself.
This is one of those situations where an incremental approach with early user engagement -- where you have a chance to adapt installation or orientation materials -- pays off. If you pay close attention to the sorts of things that cause people grief during development, you can deal with them by creating either a development story (which changes the UI in some way) or a training story (for which you develop or enhance your training materials).
It's worth noting that something which is patently obvious to you, may not be to someone else; and if you are deploying to 1000+ users, there may be a significant number of them who will respond differently to the "product" than you would . And they may be a lot less forgiving and a lot more vocal. The moral here is to consider carefully every case of new user confusion, as it may be a warning of things to come.
Lesson 5: Have a Clear View of the Users' Learning Path
Software that supports complex tasks will probably require an investment in time for users to become adept. A well thought out UI and training material will allow users to perform basic tasks quickly and gain immediate benefit from their first steps onto the learning curve.
With that in mind, one useful approach to organising and presenting your training assets is to structure them into a series of levels from new user (white belt) through expert (black belt). In doing this, you need to:
- Identify those pieces of knowledge that users must pick up in order to become effective with the tool.
- Within that set of essentials, identify those concepts and skills which the user must pick up in the first 20 minutes of using the tool.
- Identify those less important pieces of knowledge that a user can pick up at their leisure.
- Avoid mixing the two.
- Provide a learning plan that takes the user from novice to expert.
Again, the driving force behind this is respecting the value of the user's time -- if you make it clear what they need to do to become effective and are careful not to mix basics with advanced usage, then users can structure their learning around their work schedule.
Lesson 6: Digestable Chunks of Wisdom
Make any training screencasts short -- even if they're well structured, their perceived size can be off-putting (the user sees a 40-minute price tag on the screen and decides to set aside their learning for another day that never comes). The deployment of the collaboration suite at Nokia (including IM tool and online meeting tools) took the approach of breaking everything down into 5-minute lessons. Regular emails would appear in your mailbox inviting you to view the next lesson in the series. The beauty of this approach is that it gives the user great flexibility in when they pick up new skills -- again, it respects their time. Small chunks of knowledge presented within a well structured learning plan seems to be the most effective way of enabling users to progress from "white belt" to "black belt."
In deploying ALM, the first and most important part of the project has to be respect for the end user. In deploying Tasktop at Nokia, I've learned that incremental deployment and development and using agile methodology to incorporate the user's perceptions and suggestions into the finished product, as well as providing straightforward and easy-to-digest training resources, will smooth any integration process.