If you get an API right, code will read like prose.
- Joshua Bloch
November 17. 2009 01:14
Nice talk Wanna give that to us in Dublin someday? I think one piece that is missing from your talk is that distributed agile has quite a lot in common with open source development. One of the major points I've taken from.. can't find a link... there was a nice talk by two Google guys on why you should open source early (like, from Day One). And the reason for that is so that other people can see and help you out - i.e. critique is not always pleasant (cultural shift needs to happen), but it is feedback that improves both of the participants (reviewer and reviewee). This leads onto the thing that you absolutely _must_ do, as a developer, in distributed agile environment - golden rule of 'check in early, check in often'. This is crucial in cross-feature development, when patterns start to emerge. While you may have a lead on some things, but discussing the initial design is no more important than seeing the progress of implementation of that design (uber-agile? adapt even before you need to adapt?) This is quite a lot similar to what you said about paired programming - two persons looking at one screen (in reality, or via VNC) produce a better result. Similarly, two persons working on the areas of each others' competence notice changes faster - a big check-in of two days' work from one of them actually harms the dev process, especially if it occasionally breaks the build (breaking early is good, better than late anyways). Being aware and following others and not minding others following you is the key part - both in open source dev, and in agile distributed cross-culture dev.
Dominykas
November 18. 2009 12:49
Wanna give that to us in Dublin someday? If anyone would invite me - why not? Yeah, agile methodologies and OSS have a lot in common. Skilled individuals in a self-organized team, coding standards, collective code ownership, etc. (note, however, that in OSS a real customer doesn't often exist, and roles in a "normal agile" team are somewhat more defined - so it brings in some differences). All that probably proves that some agile principles are fundamental Re 'checkin early, checkin often' - totally agree. As people do daily syncups "on business level" making sure they're still building the right product, components need to "syncup" at least daily as well - making sure they still can work together well.
Andrew