Archive for June, 2009
One Hundreth Away from Fame
I read an article on the strength of the Finnish schooling system yesterday. It’s considered as the best in the world with a 4% variance between the best school and the worst school. How did they achieve that? They give a lot of focus on the bottom 99% of kids in the classroom and not the top 1%.
I have a fear that as a community we promote the top 1%. I hear developers being labeled such as rock stars and ninjas. It’s no different to junior developers and senior developers. We find all sorts of measures to be in the top 1%: Twitter follower-count, Facebook friends, LinkedIn connections. I think such labels and measures create an air of exclusivity and elitism to the detriment of 99% of the people. NINETY NINE PERCENT !!
My 1% rankings have always been nothing more than a fleeting moment. Once I won a book prize at school and I got an award for some design in university and meal voucher or two for a job well done. It was meaningfully great in that context, relative to the others in that context. But it was perceived as such by a few at that moment in time.
Looking back, I feel sad. Not because of the scarcity my top 1% ranking, but by the reflection that those fleeting moments did not have lasting value to those that were in that context with me. I should have made it count more significantly. These days, I want to do things that touch others meaningfully. Is my my code worth reading and from which you can learn? Did our conversation over coffee move us closer to understanding each other? And I want to be affected similarly too, by 100% of the people, not just the 1%.
Sometimes you’re in the top 1% and sometimes you’re in the bottom 99%. But you will always be part of the 100%. I am nothing, yet I am everything.
Great Quotes for Domain Driven Design
I am revisiting the material for the factor10 Domain Driven Design course as part of a “freshen up” for the when I give it to a development team on July 1, 2009. So I started hunting for some quotes to liven it up a bit.
Here are some choice bites for ubiquitous language.
“They have been at a great feast of languages and stolen the scraps” – William Shakespear
and
“Thought is the blossom; language the bud; action the fruit behind it” — Ralph Waldo Emerson
And on the need for simplicity, I really liked this one.
“There is never any justification for things being complex when they could be simple” – Edward de Bono
Robert Bravery commented on an old blog post of mine and I re-discovered this one
“Don’t indulge in any unnecessary, sophisticated moves. You’ll get clobbered if you do” – Bruce Lee
Lastly, and the one I’m definitely going to use to stress the importance of working directly with the domain expert.
“Never hold discussions with the monkey when the organ grinder is in the room” – Winston Churchill
What a diverse group of people but such collective value. Do you have any classic quotes? Obscure quotes?
My Event Horizon
It’s already halfway through the year, so let’s see what events are is in store for the rest of the year.
June: Next week is SPIN week. Join us after the June 16 public holiday. Same time, same place. Last month we had 40 people attend and we just about ran out of chairs. Lots of new faces. Please come along. The talks are normally good and the conversations are great.
July: Really need to get my act together and get to the next SA Developer‘s talk. Hilton Giesenow tells me it’s a great local event. And On July 27, Lia turns 5! Simply amazing!
August: Hmmm, seems quiet? I think I’m going to submit a tutorial proposal for the ICSE conference happening in Cape Town in May 2010.
September: Looking forward to the Scrum User Group‘s conference in early September. I may be giving a talk on the techie track. I think it’s going to be a great event. Carlo and Peter tell me so. But on September 3, Fiona turns … older
October: My tutorial on using DDD and AOP to create clean, rich domain models has been accepted by OOPSLA. So, October is OOPSLA time for me.
November: I will miss Oredev. The competition to get in was so much tougher. That just means it’s going to be better than last year. If you’re a S.African developer, you should make a plan to get there. It’s a great event that is very high on value for money. But my November highlight is Khaleel turning 9 on the 22nd! Boy, how did that happen so fast?
December: Crazy season again. I really hope it’s a quiet, relaxing one this year.
If you’re not on Afrigator, you’re not on the Continent
Take a bow Justin Hartman and the rest of the Afrigator crew! Great site, great feel, constantly improving. Superb.
A few weeks back I got invited to Gatorpeeps by Stii via a tweet dialog that we had. Didn’t know much about it but dived right in. What a great surprise. Although I only have 10 followers and less than 100 peeps, I found the community humble, friendly and relaxed. What a pleasure.
It reminded me of the pre-Internet days when everyone on a BBS at the slow end of a 9600Baud Hayes (in)compatible modem was just there to help each other out. No showboating, no egos, just people interacting with people. It felt good then. And it feels good again.
So what’s wrong with twitter? Nothing. But these are local folk with local perspectives which makes it easier to relate to and quicker to build relationships. Hey, I’m certainly not a big mate of any of my followers but it feels comfortable and that says a lot about what Afrigator is doing right.
I’ve met some remarkable people in the last few weeks. Here’s just a few of them.
@ashraf runs a super cool football fanzine. Why go hunting for footie gossip when I get a peep feed .
@aegjung is an interesting combination of Afrikaner philosphy and culture and alternative views of things.
@cntombela has a another great footie blog with local flavor too.
@justinhartman is the open face behind Afrigator but his blog is a lot wider than his job
@robertbravery gives me a quick daily dose of web content/tech knowledge. Short and sweet.
@stii is a developer supreme at Afrigator and his blog is a mixture of developer experiences and observations.
Go on, get your blog onto Afrigator and start peeping. You’ll be surprised how many people like you are out there.
Like I said … if you ain’t on the gator, you ain’t in africa.
Writing Specs is Writing Code is Designing
A team that I am coaching has settled on using BDD stories and scenarios for describing their requirements and specifications. They’ve also chosen cucumber as their acceptance testing tool. All well and good, but they are making very slow progress and seem to be really struggling with the change in workstyle. I think I’ve spotted the reason for this.
The feedback loop is missing. They view the stories as a spec that has been handed down. And they have not made the connection that spec writing is design work that is intended to clearly illustrates concepts in a domain. It is a form of writing code. But it’s just that this code is, maybe, non-executable.
Here’s my workflow and how I close the loop.
- write story and scenario
- Sketch a design if needed – helps when pairing to be on the same page.
- Start writing test for scenario
- ooops … test is getting complicated? stuck?
- maybe the domain is not understood enough? Dig deeper, improve scenario, design (as needed) and continue writing test
- or maybe the scenario was badly written? Ignore scenario structure, continue writing test. Refactor scenario later. We’re in deep discovery mode here.
- get test to pass
- refactor code
- refactor scenario
- … cycle the red-green-refactor until happy.
Acknowledging when you’re in discovery mode and knowing that you are allowed to refactor requirements is the trick. Nothing is cast in concrete. That’s why I like frequent feedback loops with tight turning circles.
No feedback loop, no progress.
BTW, I really don’t like explaining such things as flow-charts and sequences. You got to find your own style. It’s not a recipe or rules thing. The above is something that is about as close to what I do but it changes when the need arises. That’s also another key feature of being agile – adapt or die in the waterfall.
