Agile Principle 9 – Continuous attention to technical excellence and good design

It has been a little while since I’ve made any posts related to running projects. I’ve been a little preoccupied with technical work!

This is ironic because of the topic for this post. Here I look at the 9th principle in the Agile Manifesto, “continuous attention to technical excellence and good design”.

For me this has particular relevance when considering Microsoft Dynamics CRM. The product is big and getting bigger, it is also constantly (and rapidly) evolving. This is especially true when working in the online environment as updates are frequent and it is often important to quickly adopt the new releases to avoid lagging behind.

This can make life difficult (and fun) for anyone working with CRM. But it certainly forces “continuous attention” as you must always be looking at what is about to be released. For example, this week I’ve been working on the preview release of CRM2016 to understand the impacts of the new Interactive Experience on our customers. Another fun challenge!

Technical excellence with Microsoft Dynamics CRM does need constant attention. This is partly achieved by keeping certifications current, I’m not full convinced of their individual value. But they do serve as a useful structure to force learning and revision. One of the reasons I keep going with this blog is because it forces me to consider and document aspects of the product I might not otherwise routinely consider. Technical excellence doesn’t just happen, it takes time and effort. Companies need to realise this and give staff enough time to hone their skills. But also individuals need to take responsibility for their own development. If you want to work in a high tech industry investing your own time and effort into keeping pace with technology should be a given.

Good Design is always important. By continuous attention to good design you prepare yourself for the upcoming releases. I have a rule that I NEVER knowingly implement anything which isn’t a supported change. Adopting this principle makes upgrades from version to version simpler. But good design goes deeper than just doing supported changes. Changes should be well constructed and simple to understand. This has some spin off benefits, in that the solution is typically easier to maintain, quicker to enhance later and requires less documentation. (Anything that means I have to write less documentation has to be a good thing!)

Also ALWAYS do a sprint retrospective, this is something often ignored in fast paced environments. Take a retrospective look at what technical challenges you encountered and how to avoid next time. Also look at what went well. You might have learnt a cool new approach that can be re-used in future sprints. If so, make sure it is recorded. I don’t mean in a word document that will sit on a shelf and never be used! Use whatever technology you have to create a knowledgebase that everyone in your development team can contribute to. Yammer, Wiki, SharePoint, WordPress, OneNote or even CRM knowledgebase …. Any or all of these tools can help. But whatever tool you pick make sure everybody contributes. Maybe even consider giving people a target in their personal development plans to make “n” posts per week. Again this will help reinforce the “continuous” part of this principle.

It is also important for the Scrum Master to constantly be looking at ways to help support the team members learn about new technology. And not just for a few people but the whole team. A team with a limited number of experts has no depth. It is not a good practice to create a single “go to” person, it is much better to develop the skills of the team as a whole. We, for example, do regular Friday briefing sessions. When someone from the team shows everyone something cool they have recently learnt.

This is my favourite manifesto principle …. Simply because “continuous attention to technical excellence and good design” is what being a developer is all about. Coding is most fun when you work on something new and that expands the limits of your knowledge. This principle therefore not only enhances agility but also keeps my job interesting. J

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s