Tuesday, April 6, 2010

Agile Community: A little less talk and a lot more action

So I've been reading a lot of blogs lately (like this, and this, and this and this and more...) involving the drama surrounding various certifications and alliances and how this all impacts the agile movement and community. 

Where I stand...
Personally, I believe certifications should endorse the fact that an individual has demonstrated they can apply some concept successfully (even if only at a basic level).  How does a community certify its members on the application of guiding values or high-level principles?  I think the root of the problem is that you can't.  Something else is needed. 
We need...


...a little less talk

The good...
Certifications do promote interest in the topics we, the community, hold dear; they are also providing some level of basic education on these topics; and they will help spread the values and principles by injecting these good ideas into individuals who may attempt to apply them where they work, and perhaps become more involved in the greater community.

The bad...
The certifications don't certify much.  They may also attract trainers that are no more than terminology resellers.  As a result, employers may make poor choices, yet continue to not understand the underlying causes of their problems.  We fear a misplaced trust in something fragile or empty by practitioners or business consumers of software development services.

The reality...
As many have already stated.  This <insert mode of transportation here>has already <insert method of departure here> So what can we do?

I feel the basic problem is that businesses want easy ways to make choices about things they don't fully understand or value.  This is what causes organizations to require things like degrees, certifications, arbitrary years of experience, knowledge of a plethora of specific (yet easily trainable) skills, and a whole bunch of other things that don't really indicate someone knows anything or will be effective, productive, passionate, etc... etc...

We need a stop gap measure...
Given that the certs are here to stay (at least for now) we need our community members that don't despise certs and truly understand the concepts and are passionate about the community to be the trainers leading these certification classes.  These trainers should know, and discuss during training, the shortcomings and realities of the various certifications.  Allow these people to reduce the impact of "the bad" while propagating "the good".  We will owe them a debt of gratitude while the rest of us get our acts together!

Perhaps a way to drive this is with some type of grass-roots, community driven "white list" of endorsed trainers (like this?)?  I would feel a lot better about getting a training class (aka certification) from John Doe Trainer if I saw he was endorsed by folks like James Shore, George Dinwiddie, Cory Foy, Brian Marick, or Robert Martin. Seeing a bunch of substantial positive reviews from other folks that I see are active in the community via blogs, conferences,  events, etc. wouldn't be a bad either!


...and a lot more action

What we really need...
We need to start providing something better or more useful or more meaningful than certifications (or degree programs).  We need a better way to select, produce, and sustain quality software development professionals.  We need to do a better job choosing folks that have the character and talents we believe necessary to be life-long craftsmen in our industry.  We need to imbue these individuals with the skills, knowledge and theory that will lead them towards further experience and wisdom.  Finally, we need a better way to provide consumer education.  Our community of professionals need to be tasked with educating and demonstrating to "business" the value of doing things the way the software development community finds to be the most practical and effective.

Areas of focus...

In short there are three broad categories we need to improve on as a software development industry and community.
1. Entrance/Selection
2. Continuance/Sustainability
3. Consumer Education/Support

Entrance/Selection
We need to raise the bar when it comes to new professional "coming out of the pipe". Perhaps we need to revise (replace?) the academic programs that simply crank out CompSci and MIS majors that get most of their useful knowledge their first few years after college?  Maybe we need more shadowing or apprenticeship style programs?  Maybe we need more boutiques and medium-sized dev shops to align and realize the real competition is not one another, but rather the the pervasive lack of understanding both within our industry and outside, in business regarding how to value our trade?

For example, I would love to see an apprenticeship-style dev shop that auditions high school students that show interest and promise in the craft.  Get this shop endorsed by some community leaders and active members, then let these new professionals grow and flourish.  Get them involved in the community through events, conferences, writing, speaking all the while learning about and developing outstanding software products. 

Bottom line, if we think the system that produces new professionals is broken, we need to fix it.  If we deem it can't be fixed, then we need to build a new system.

Continuance/Sustainability
Once we have raised the bar on selection and have systems in place that are producing high quality software professionals, we need to make sure the learning, sharing, and experience doesn't stop.  After all, these folks will still have most of their careers ahead of them.

I strongly believe that any field which has the potential to outpace its individual members with useful and applicable information needs to do a good job at "continuance"; be it medicine, law, education, whatever.  I personally feel most of these knowledge-based fields don't do a good job at this now, and the software profession is no different.  I think what makes these kinds of fields advance more quickly as a collective is their complex social natures and the fluidity of mental capital that drives progression in these fields.  We need something just as fluid to keep up.  I believe that conduit is community.  We already have it in a fledgling state, and using technology it's even more accessible than it has ever been.  But we need it to be bigger, better, and more adaptive.  The community needs a touch more solidarity, if only to be proud to be part of something greater than ourselves.  Continuous involvement in, and acceptance by the community should be expected, and a driving force of which individuals feel comfortable staying within the profession.  It would also wind up being something looked for or appraised by possible consumers of our industry's services.

Consumer Ed./Support

Here is the kicker.  We perform to how we are measured right?  At the end of the day this could all be for naught because we can't all be altruistic idealists...at least not all the time.  We get "measured" by getting jobs and getting paid, so ultimately the people that employ and pay us dictate what criteria they will make those decisions on.  So we want them to understand and think like we do as much as possible, so they can make the best decisions possible.  If we are right, all the altruistic idealistic stuff pays off and we all have better lives with jobs and pay :)  If not, at least we now have a supportive adaptive community that will figure out how to change next.

The best way I can think of to educate our consumers is to (possibly) take a hit and show them that it works.  This is sort of like needing to slow down to speed up.  This could take the form of working with smaller companies to help make them more competitive.  This could mean living what we speak, and as community members, voting with our feet.  This could be difficult, but in the end if we are able to show enough consumers what it's like to really understand and value their software assets we will be in a much better place.

The call to action...
Ultimately this is our community, whether we consider it to be agile, scrum, developer, tester, whatever...it's not anyone else's job to make it better but our own.  If businesses are requiring useless pieces of paper because they don't understand what we do or how to value us, who do we have to blame but ourselves?  Businesses know they need our services, now more than ever to remain competitive in our shrinking global economy.  We owe it to them and ourselves to teach them how to value us and thus provide our own community with the mechanisms that will ensure businesses we can deliver the competitive value they need.

I hope it is obvious that I do not purport to have the answer.  I don't believe any one person does or will.  I hope to see a discussion start that will lead to an answer that the community grows and evolves.  I don't believe agile has outlived its usefulness or is fading away.  I believe it is simply going through the growing pains of adolescents.  We can do this...we just need to start!