Many people have asked “How do you apply Agile techniques to non-software projects?”. I’ve done a lot of that myself in writing and publishing five books. I’ve also used similar techniques in designing and developing numerous online training courses. I thought I would summarize some of the techniques I’ve learned for doing that over the years.
Here are some common-sense principles I’ve learned from publishing five books.
1. Just Get Started
One of the most important principles I’ve learned is “just get started”. When you’re faced with writing a book or developing a major online training course, it can be a daunting experience. Just getting started is sometimes the hardest part:
- We’re not sure how the final result is going to come out
- We’re not certain how the final result will be structured – what should come first, etc.
- We don’t want to produce something that is going to be a failure
You have to stop worrying about all of that and just get started. I think of this kind of effort like developing a fine art sculpture. You start with a lump of clay and you just keep molding and shaping it until it becomes a work-of-art.
If you never get started, it will remain just a lump of clay.
- It takes some courage and confidence in yourself to do this. You’ve got to have courage and confidence that if you just get started, that somehow the final result is going to come out OK if you keep working at it
- It also takes patience and commitment because you may have to go through a large number of iterations to get something useful out of it. You may even have to throw something completely away and start over again
2. Use an Incremental and Iterative Approach
Many people don’t understand the difference between the words “incremental” and “iterative”:
- “Incremental” means that you break up a solution into pieces and develop one piece (increment) at a time
- “Iterative” means that if you’re not sure what a given piece should be, you develop something and then continue to refine that piece until you meet the customer’s expectations
Both of those are important:
Using an incremental approach is very important. In any large effort like writing a book or developing an online course, its best to break it up into “bite-sized pieces. If you try to take on too much at once, you’ll never finish it. The effort to write a book can easily take well over a year and it’s easy to get discouraged in that period of time that you will never finish if you don’t see progress in the work.
Taking an iterative approach is also important. A close corollary to “Just Get Started” is “Don’t Expect Perfection”. A major reason for not getting started sometimes is that we’re afraid to produce something that is less than perfect.
- We have to accept that whatever we produce on the first iteration is certainly not going to be perfect. The final result may not be perfect either.
- Get something done quickly and then continue to refine it as needed to meet customer expectations.
- There’s also a saying in Agile that is used a lot called “just barely good enough”.
- We shouldn’t try to “gold-plate” or over-design something. It should satisfy the need to provide value to the customer and nothing more. Keep it simple!
3. Know Your Customers and Listen to Them
When I first started writing books, I had a lot of people who helped me. I had a network of people on the Internet who provided me with lots of great feedback and inputs. I would write a chapter or two of the book and put it out to my network for feedback and comments. Part of doing that successfully is recognizing that you “don’t know what you don’t know”. You have to be humble, listen to other people, and respect their needs and interests. If you think that you know it all, you probably won’t be very successful.
In the online training I develop, I get lots of feedback and inputs from students and I listen to it and take action. As a result of that feedback, I have continuously improved all of my courses.
4. Refactor Your Work As You Go Along
I’ve done a fair amount of software development in my career and I’ve learned a lot from it.
- I’ve learned the value of having clean and well-organized software because I have had to support a lot of the software I’ve developed
- Organization and flow of the material is particularly important in books and online training as well
- As a result, it is essential to take time to go back and clean-up your work as necessary as you go along
- When I first write something, I get it done quickly but I may have to rewrite it and reorganize it 5-6 times before I’m satisfied with it
5. Work at a Sustainable Pace and Do a Little at a Time
When you’re doing a long project like writing a book, working at a sustainable pace is very important. That is especially true if it requires a lot of creativity and innovation.
- You can easily get burned out by trying to do too much too quickly and when that happens, your creativity can go downhill quickly.
- Sometimes you need to put it down, walk away from it for a while, and come back when you’re refreshed to start work again.
I think all of this is just good, common-sense things to do – why do people have trouble doing this?
- I think many people think of Agile as Scrum and also think about doing it mechanically. They aren’t sure how they would go about applying a Scrum process to this kind of effort
- Agile is not just Scrum – it is a way of thinking. We need to understand the principles behind Agile. Don’t just do it mechanically and “by-the-book”. Take the time to interpret how it applies to your current situation and adapt it as necessary
You will find much more detail on this in my Online Agile Project Management Training.