Monday, November 23, 2009

What is agile communication?

In thinking about some things for the Agile Skills Project, I realized that agile teams communicate differently than non-agile teams.

It seems to me that agile communication aims to be:
  • public (vs private or secret) [public within the entire team, not public as in news media]
  • early (vs delayed)
  • spoken, preferably in person (vs email)
  • free from judgment (vs assigning blame)
  • osmotic (vs selectively broadcast)
  • flat (vs hierarchical)
A significant enabler of agile communication is the Supportive Environment Agile Pillar.

What characteristics of agile communications do you notice?

Monday, November 16, 2009

Why we say: "No Best Practices"

I came across an great article from 2005 titled: No Best Practices and it reminded me that there was some discussion about the term "best practice" at the recent 1DevDay event.

Besides speaking to reasons why we say there are no best practices, James Bach gives a nice list of "simple, honest alternatives":
  • “Here’s what I would recommend for this situation.”
  • “Here is a practice I find interesting.”
  • “Here is my favorite practice for dealing with {x}.”
  • “{Person X} attributes {practice Y} for his success. Maybe you’d like to learn about it.”
as well as a list of answers to common replies to his argument, replies like:
  • “I don’t mean ‘best practice’ literally. I’m just suggesting that this is a damn good practice.”
  • “When I said this practice is a ‘best practice’ I meant it was best for a certain context. But pretty much everyone in the industry shares that context, so what’s the point of talking about context?”
  • “This practice represents a consensus among industry leaders.”
  • “Lighten up. It’s just an expression.”
It really helped me get clear about why we say: "No Best Practices".

Sunday, November 15, 2009

My (growing) Agile Booklist

In no particular order, here are the agile books currently in my bookcase:

  • Practices of an Agile Developer, by Venkat Subramaniam and Andy Hunt
  • Clean Code, by (Uncle) Bob Martin
  • Refactoring: Improving the Design of Existing Code, by Martin Fowler
  • Test Driven Development: By Example, by Kent Beck
  • Working Effectively with Legacy Code, by Michael Feathers
  • Agile Principles, Patterns, and Practices in C#, by: Martin C. Robert & Martin Micah

CodeRetreat 12-5-09 LeanDog

I'm looking forward to attending CodeRetreat 12-5-09.
It's a free event, sponsored by and held at LeanDog. If you aren't familiar with the idea of a Code Retreat, as promoted by my friend Patrick Wilson Welsh, take a look at his description here.

Briefly, it's an event where agile software developers get together and pair program several solutions to a practice program, with the goal of honing our craft and furthering learning and discussion (Think software kata.) The event hits 5 of the 7 agile skill pillars proposed by the Agile Developer Skills Project:
* Collaboration
* Supportive Culture
* Confidence
* Technical Excellence
* Self-Improvement

I attended the previous LeanDog CodeRetreat and it was great! Lots of talented developers, great practice and learning, tech talks and a party-like atmosphere.

LeanDog's location is amazing. Their website describes says:
Our office is floating in downtown Cleveland right next to the U.S.S. Cod (a WWII Submarine), the Burke Lakefront Airport, and the Rock and Roll Hall of Fame. We are located on a converted steamship, the Keasarge, that was formerly known as Hornblower’s Barge and Grill. The restaurant setting remains and offers open spaces that are perfect for practicing Agile. Our location gives a great view of the skyline of the city we support.

We'll be coding in Java again, but if you want to learn or practice pairing and you don't know Java, don't let that stop you. That was my situation last time and it was still a great experience!

CodeMash 2010

I've registered for CodeMash 2010
January 14-15, 2010 in Sandusky, OH

There are several agile sessions scheduled:

- Agile Iteration 0 by Ken Sipe
- An Agile Toolchain for Flex RIAs by James Ward
- Credit Crunch Code – Time to Pay Back the Technical Debt by Gary Short
- Domain-Driven Design: An Introduction by Barry Hawkins
- Seeing Constraints, Kanban Explained by Jon Stahl
- Testing the Enterprise by Leon Gersing and Charley Baker
- User Stories: Closing the Agile Loop by Barry Hawkins

Wednesday is an optional Precompiler session(full registration required to attend). The agile topics that day are:
- Practical T/BDD - Half Day Hands-on Lab by Phil Japikse
- Test Driven Development: From Concept to Deployment with Leon Gersing (all day)

There are loads of sessions that aren't specifically about agile but look great anyhow. According to the CodeMash site:
More than 45 sessions will be held, spread across the following tracks:

* Architecture: SOA, W3C Standards, WS* Implementations, Interoperability and all things 30,000 foot or higher.
* Desktop Development: Standalone Applications, Fat/Smart Client, Client/Server and all things running local on Windows, Mac or your favorite Linux distribution.
* Web Development: Web services, Ajax, frameworks, and all things related to the browser.
* Methodologies: Anything pertinent to how modern development methodologies help build software faster, cheaper, and with less grief.
* Mobility: All things mobile: platforms, devices, content distribution, social networking, community building, and anything else used in conjunction with those devices which have little screens.
* Languages: What's new and cool in languages such as C#, Java, PHP, Python, PHP, Ruby? Of course there are other languages which we've omitted from this list for reasons of space but don't mean to offend their feelings.

and since one of the seven pillars is Self Improvement, why not attend and check out what interests you or what you think might help your team? And the cost for the conference is very low (see below.)

Details:
CodeMash 2010 will be held January 13-15, 2010 in Sandusky, OH at Kalahari Resort, America's largest indoor water park

Early Bird discount $175 until Nov 30
Regular $220 until Jan 7, 2010
Procrastinator $300

1DevDay Detroit

Yesterday, I attended a great event, 1DevDay Detroit. It was put on by the Detroit Java User Group, generously hosted at ePrize, and sponsored by too many companies to mention here. The day was amazingly affordable ($40) and, I think, a great success - especially given that it is a new event. There were a few minor hiccups, mainly around timing talks, but they didn't impact the overall quality of the day.

While 1DevDay was not specifically an agile event, there was much agile activity, including:

- Venkat Subramaniam's excellent and funny keynote, "Facts and Fallacies of Everyday Software Development"

- Chet Hendrickson's talk about the Agile Skills Project, a non-commercial group created to quantify skills needed by agile software developers and identify valid means of assessing skills, trainings, and books.

- Nayan Hajratwala's interactive session on refactoring legacy code with no tests and gradually adding and increasing test coverage to the codebase.

There was also a twitter hashtag, #1devday, where participants posted thoughts and comments. Check it out to get a picture of what the day was like.

Just as fun was meeting and talking with other developers, many of whom are using at least some agile practices.

I'm already looking forward to next year's event!