Were the Vikings agile?
While I was on vacation in the southern part of Norway (Flekkefjord) I found a postcard with the “Viking Laws”. Not sure of the authenticity of these laws, but I still found them quite interesting. Surprisingly I also found them quite agile and a set of good rules to follow for any development team!
Here’s the laws and how I link them to software and agile thinking:
§1 Be Brave and Aggressive
- Be direct
- Hmmm… I think I’ll go for N/A for this one.
- Grab all opportunities
- And another N/A…(?)
- Use varying methods of attack (attack is interpreted as testing)
- Test your code and functionality by doing TDD, BDD, Exploratory Testing and/or similar things
- Attack one target at a time
- Don’t do multitasking
- Don’t have single tests that cover multiple functional areas
- Don’t plan everything in detail
- Don’t do a big plan up front (waterfall)
- Use top quality weapons
- Use good software tools
- Use simple planning tools like whiteboard, story cards etc.
§2 Be Prepared
- Keep weapons in good conditions
- Keep plans up to date (e.g. sprint burndown, release burndown etc)
- If 3. party components are used, make sure you upgrade when new versions are available to avoid work to add up
- Keep in shape
- To be fit will let you be more effective at work and also have a lot of energy left when you get home, which in turn hopefully means you’re motivated and energized for work the day after
- Find good battle comrades
- A great team of people will do great things
- Agree on important points
- Common understanding/common code base
- Choose one chief
- Hmmm… Who’s the chief on an agile team? The team or the customer? I would go for the team together with the customer and not one single person.
§3 Be a Good Merchant
- Find out what the market needs
- Develop the most important functionality first and prioritize accordingly
- Don’t promise what you can’t keep
- Tell the customer the truth and keep them updated on time schedules and in the loop by utilizing review meetings etc.
- Don’t demand overpayment
- I’ll let the sales people cover this one :-)
- Arrange things so that you can return
- Have your code and architecture so that you can “easily” change out existing parts of your system. Think separation of concerns, inversion of control and dependency injection.
§4 Keep the Camp in Order
- Keep things tidy and organized
- Keep code and architecture clean and easy to read and understand
- Arrange enjoyable activities which strengthen the group
- Have fun at work, use breaks for fun activities like fußball or other team games and have a beer on Friday night from time to time.
- Make sure everybody does useful work
- Have everybody involved and work as a team
- Consult all members of the group for advice
- Do agile modeling when you don’t know exactly what to do or how to solve a problem
- Involve the team and ask for advice whenever in doubt
- Do pair programming
The title of this book could easily have been The Art of XP Development. My first impression of XP back in the days where two things; pair programming and no documentation. I guess some people still think that(?). Did they choose to use agile to not scare away the people with these type of misconceptions? 