blogs.conchango.com

welcome to the conchango blogging site
Welcome to blogs.conchango.com Sign in | Join | Help
in Search

Howard van Rooijen's Blog

Continuous Education++

While catching up on long overdue flagged posts to read - I spotted a familiar meme on becoming a better developer – I wrote about Continuous Education almost 2 years and it’s nice to see that this topic keeps reappearing. I’ve updated my bubble graph of the technologies to include those that I’ve used over the last 12 months and have also added training courses and events I’ve attended:

ContinuousDevelopmentPlusOn

Apart from the foray into WPF development in late 2006 / early 2007 and a little dabbling with Silverlight 1.1 post Mix 07 – I’ve been involved predominantly in the RIA space. It was a bit of a mental shift working on several smaller projects in 2007 as until Christmas 2006, I had been working for the same client, creating a number of products based on a shared platform for almost 2 years.

Another change that’s happened in the last 18 months is that I took on the role of a Technology Coach responsible for the career development and appraisals of a number of developers within Conchango. Performing this function has given me a new perspective Continuous Education; one thing that Agile Methodologies has taught me is the power of a feedback loop – the tighter the feedback loop the greater your ability to inspect and adjust; this can work really well if you know the career aspirations of the people in your team and you have the mechanism (i.e. an iteration) where you can let those people learn and grow.

One topic I've been spending a lot of time thinking about over the last year is "how do you hone a development team into a state of hyperproductivity?" If you assume that the foundation of the team is an Agile process with iterations and a feedback loop (retrospective), what other facets do the team need? At the moment I'm convinced it's confidence or to be more specific, fearlessness, the state of mind you can achieve when you have confidence that you know what you are doing, confidence that you can make a change and you know the impact and ramifications of that change. Team velocity can be severely impaired by the fact that a development team is intimidated by the codebase, either because it is very large, complex or mainly unknown to them – they fear making changes because they don’t know what the cost of that change would be.

Two vectors that I believe helps developers into the fearless state of mind are test coverage and refactoring tools. Empowering the team with Resharper and spending time teaching them how to really use it means that they are suddenly much more in control of the codebase than before; they can easily see the interconnectedness of the code; renaming, moving, deleting cleaning and extending the code has suddenly become a simple if not trivial task. A feature like Resharper's "find usages" give a great hint as the the cost of a change. But the real confidence only comes with good test coverage (integration and / or unit). These two vectors  should give them enough confidence to put them in the state of mind that they could be a bit more fearless, which tends to means that in time they start becoming more independent, self managing members of the team – which is when they are truly useful and truly productive. Ben Watson has a nice post called 6 Ways to Increase Your Confidence As You Code.

I also tend to read a lot - I subscribe to around 70 blogs (I use Newsgator Inbox (now free!) and Outlooks' search folders to filter for topics I'm interested - the rest get perused on train journeys), I'm also quite an avid consumer of books, below are the ones I’ve purchased and read in the last 12 months:

AgileWebDevelopmentRails Agile Web Development with Rails
RubyForRails Ruby for Rails: Ruby Techniques for Rails Developers
RailsRecipies Rails Recipes
ApplicationPlusCode Applications = Code + Markup: A Guide to the Microsoft Windows Presentation Foundation
DreamingInCode Dreaming in Code: Two Dozen Programmers, Three Years, 4,732 Bugs, and One Quest for Transcendent Software
WPFUnleashed Windows Presentation Foundation Unleashed
WCFUnleashed Windows Communication Foundation Unleashed
ExpressionBlendBible Expression Blend Bible
IntroducingASPNETAJAX Introducing Microsoft ASP.NET AJAX
IntroducingLINQ Introducing Microsoft LINQ
51EC77B5AbL__SS500_ Herding Cats: A Primer for Programmers Who Lead Programmers
4104N6ME70L__SS500_ Getting Things Done: The Art of Stress-free Productivity
51G9GF8VQML__SS500_ Software Estimation: The Black Art Demystified

deploying-net-apps-msbuild-clickonce

Deploying.NET Applications: Learning MSBuilder and Clickonce
51ZfuTVoX0L__SS500_ xUnit Test Patterns: Refactoring Test Code: Refactoring Test Code
41WUmFs2vZL__SS500_ Regular Expression Pocket Reference
51QQidWjIQL__SS500_ Domain-driven Design: Tackling Complexity in the Heart of Software
51PowJFAeAL__SS500_

Domain Specific Development with Visual Studio DSL Tools

Published 05 March 2008 12:36 by howard.vanrooijen

Comment Notification

If you would like to receive an email when updates are made to this post, please register here

Subscribe to this post's comments using RSS

Comments

 

Guru Stop said:

This is the email I sent to the dev team in SilverKey Tech. Egypt dev team yesterday, sharing here as

March 11, 2008 12:58
 

Steve Garnett said:

Good blog!

I think what you've written is correct once a developer and the environment/company they work for has evolved beyond a certain level.

Many project managers and software managers don't want developers touching or refactoring code. "Why are you working on that, you should be doing this!"

One of the biggest hurdles facing agile developers is the business.

Development is still seen as a "top-down" controlled activity even within "so-called" agile organisations. Getting the time to learn and set up a continuous integration environment can be an uphill struggle, and that's just the basics!

I'm beginning to feel that developers that are well rewarded, given the tools, time and freedom to innovate have a duty to the development community as a whole to push forward and prove the value of agile practices.  

Or am I being a bit harsh?

March 30, 2008 10:09

Leave a Comment

(required) 
(optional)
(required) 
Submit
Powered by Community Server (Personal Edition), by Telligent Systems