Sunday, April 21, 2013

There is no such thing as society. Lets make lots of money!

I want to blog about something that has been bothering me for a while. As members of a community what do we owe each other if anything? What should be the norms that govern our interactions in the "public square"?

What is acceptable behaviour and what is taboo? And does government have a role?

When you see 5 year olds strutting around in heels, mini skirts and boob tubes whilst singing the latest Rihanna songs at the top of their voice, what does that say about our society? Are these young children being best served?

There was a recent out cry about  a clothing line from Victoria Secrets aimed at high school kids. In our capitalist system are young girls fair game or should they be protected from such influences?

Libertarians would argue that advertising is not coercion and short of physical force, individuals and organisations should be free to plug what ever  they choose to whoever they choose.  After all this is nothing more then free speech, and no one is forcing you to listen.

To me this is a very simplistic argument, and one that chooses to ignore the lessons of history. The people who promote such arguments the  most are the rich and the powerful. The same people that profit the most from selling everything and anything using any means necessary (short of force).

As for the history lesson. The twentieth century is full of examples of people that exploited the fears and insecurity of the massess to satisfy their own ends. From Hitler in Germany to Pol Pot in Cambodia, there are numerous examples of where the powerful have used propaganda to get the masses to perform their biding.

Mind control is real. The question is as a society what do we want to do about it? If every magazine is full of pictures of Kim Kardashians arse. What is that saying to young women? And what is it saying to young men? More importantly what is it not saying?  What important social and political discourse has been eclipsed by such trivia?

But is it just trivia? I don't think so. I wouldn't go as far as to say that it is all one big conspiracy, but there are vested interests in keeping the masses dumb and docile. How else would 1% be able to dominate at the expense of 99% in a so called democracy?

The same mechanism is used in politics. US elections have become affairs that can be bought. Sophisticated propaganda techniques are used without limits to secure votes. Everyone despises "negative campaigning" whilst everyone does it. Why? Because it works! If it didn't  politicians wouldn't spend millions on campaigning and end up indebted to their pay masters.

But this is the way it has to be right? To constrain the propagandist would jeopardise our freedoms and for Americans could be deemed unconstitutional.  I argue the opposite. We collectively have a responsibility to protect each other from this deafening barrage of misinformation.

I would go further, by saying that democracy simply doesn't work with such a cacophony as a back drop. What is needed in a functioning democracy is an informed public. Yet if the facts are unfavourable to your interests then factual information is the last thing you want to expose the public to.

The ruling elite worked this out as early as the 1920's when Edward Bernays began to perfect his art of public relations. If anyone was in doubt of the power of propaganda  the rise of the Nazis during the 1930's left no one in doubt.

So where are we today? I think this quote from a native American Indian who spoke on a reservation at the turn of the 20th century sums it up well:

"The white man has many wonderful things, but he cares not whether his people are wise"

Sunday, December 16, 2012

The Newtown School Massacre - Why?

What makes a young man feel so disconnected from others that walking into a school and killing a whole bunch of infants becomes a legitimate form of self expression?

Every time I hear of yet anther massacre like this in the US, I think back to my time living in Atlanta and the loneliness and disconnectedness  I felt whilst living in the centre of a beautiful and vibrant city.

My feeling is the people responsible for such massacres are an extreme manifestation of a wide spread desease that is affecting much of US society - disconnectedness.

I had no true friends in Atlanta, my only friend was the dollar. With dollars I could buy a smile at the coffee shop, or at the Mall, in fact anywhere where people were hoping for a tip. Atlanta is known for it's strip clubs where for a few dollars you can become Gods gift to women for the evening, and for a few more the girls will offer even more. Everything is on the menu for the right price.

Georgia's finest offering up their bodies in exchange for a down payment on a Louis Vuitton handbag. She gets to buy the handbag that makes her feel like somebody, and he gets to physically connect with someone, again to make him feel like somebody.

The other institution that had a roaring trade in Atlanta  is the Church. The dollar was central here too - 10% tithes please. No longer is it acceptable to place what you have into the collecting bowl. No, what was required was a cheque, or a direct debit mandate directly from your bank. Those who didn't offer up, were named and shamed.

During my time in Atlanta I spent time in both institutions, the Strip club and the Church, and whilst both on the surface offered some semblance of human connectedness, neither delivered what I would describe as a sense of belonging.

So what has this got to do with Massacres?  Well I never quite understood how people could live without feeling like they belonged to something. I longed back to my childhood growing up in Tottenham, North London where I had a strong sense of belonging. I started to feel more British then I ever had, I started actively supporting Spurs again, my local soccer team back home, trying to hold on to a sense of identity and place, something that wasn't on offer to me in Atlanta it felt.

Surely this sense of disconnectedness must manifest itself somehow, and sure enough I began to realise it does. The idea of lauding my relative wealth over poor young ladies who were trying to make the rent or buy that bag that would make them feel like someone didn't appeal to me. Instead I chose to talk to a few and befriend them.

Off with the make-up and the heals, they became mothers, sisters, daughters, just trying to get by. They didn't believe the hype themselves, yet they were caught in a system, where the only way they felt they could get on was by subjecting themselves to ritual humiliation. Connectedness to them meant making someone else feel big, whilst making themselves feel small, all in exchange for a dollar.

I began to see the internal world of Americans. Fear, insecurity, depression, and even mental illness.  My first response was, what about your families? Why can't they help? Then I began to realise that normal family ties had been stretched to breaking point. Everyone had it hard, and no one wanted to become a burden on anyone else, so the the most loving thing to do is to dig deep, muster all your mental reserves and do whatever it takes to stand on your own two feet.

As a Brit, coming from our over bloated welfare system, there was something admirable about these girls, standing on their own two feet and not relying on anyone. Yet it wasn't lost on me, that perhaps if the men throwing money at the club, spent that money in taxes instead, then these ladies could be provided with the help they need to get a decent education and not have to shake their arse for a living.

Likewise with the tithes at the Church. Couldn't that money be spent more purposely then building yet another extension to the Church itself?

For Americans,  collective action to address social problems is tabu it seems. America was built on rugged individualism, and as I say there is a lot to be admired about that. Taken to extreme though, what are the consequences of each individual being left to himself?

An expression of individualism is the teachings of Ayn Rand. Rand like no other modern philosopher I think, epitomises modern day America. Gone are the religious overtones and sense of community that have always held together small town America, and in it's place we have the worship of the self. I  as God. Individual will expressed through the power of the dollar; and the exaltation of selfish material gain, with scant regard for anyone or anything else.

Unlike others I won't be advocating gun control as a quick fix remedy. I think the problem goes much deeper. What can Americans do to tie in the loners, the people at the periphery to make them feel like they belong?  To bring back a sense of community, and avoid the kind of alienation that in extreme leads to the type of massacres that are occurring far too often?

Note: Following the debate on gun control over the weekend, I think I will add my voice to the call for greater controls. Young people the world over sometimes find it difficult to find their place in the world. Most however don't have access to their Mom's favourite toy, a semiautomatic Bushmaster Assault rifle. It really does beggar belief that there is a lobby that espouses that it is a good idea to have such a thing casually laying around the house.

Saturday, July 02, 2011

Building trust and unlocking the IT/ Business relationship - Show me the Working Software!

Hoping to keep this one short. I've been reading a lot of Gerald Weinberg recently, and I must say that he as an exceptional way of cutting to the core. Computer programming as always been opaque. The people who pay for it, must trust to luck and throw their money into what must seem like a deep dark pit and hope that eventually they may get something back in return.

Invariably they get back very little. If it wasn't for the fact that this very little can go a long way, especially when it allows you to lay people off, business people would have given up on IT long ago. In a way, the wise ones already have. Astute business people don't rely on grandiose IT plans. They've become wise to the promises and have learn't to save their money by keeping IT simple.

Agile was meant to offer a new type of deal between developers and business folk. Give me a bit of money and I'll show you what I can do with it. And by "show", I don't mean a power point presentation, a lengthy requirement spec, pretty UML diagrams, or a fancy customer value model. No, what I'll show you is real working software. Something that you could potentially start using today.

Now this was a seismic shift in the tectonic plates. From a business perspective, software development in progress was no longer opaque. Well at least that was the promise. You can see what you are getting for your money whilst it is still being worked on. If you don't like what you see, you can choose to stop spending. If you do like, then you can choose to spend some more. You no longer have to sign blank cheques and hope!

Gerry Weinberg cottoned on to this psychological hurdle a while back (as early as the 1970's). Business people hate software developers. If they could, they would get rid of the whole lot of us (replacing us with cheap labour from India). And can you blame them? How many other industries do you get to sell faulty products late, and charge your customer for "upgrades" that merely fix faults you introduced in the first place? Not many. Making money out of our own faults, no wonder they hate us.

The IT industry have even managed to use this hatred to their own advantage. IT companies like IBM have learn't that you can sell business people the dream of getting rid or at least marginalising those pesky developers. Every IT silver bullet under the sun has been sold, and none of them have worked, yet they are still selling like hot cakes, SOA being the latest. A real example of the triumph of hope over adversity :) IT creates a problem and then sells phantom remedies. Now that's a real clever way to make friends and influence people!

Back to Agile. Wasn't the new deal meant to bring an end to all of this? Yes, but guess what? IT reneged on their side of the deal. It turns out that producing working software one incremental step at a time is really hard to do. Harder in fact then trying to deliver it all in one big lump, and IT weren't ever any good at doing that either. Now it's alright for the likes of Kent Beck and Ward Cunningham, to cut a new deal with business, because they have the wherewith-all to actually deliver, but what about the rest of us?

Chastened with accusations of Flaccid Scrum (run and hide in shame, being accused of being flaccid in any department is not a good thing :)), what have the mainstream gone and done? Well they haven't chosen to try and put some lead in their pencil. Oh no, instead they have offered every project management rouge they can think of (Scrumban, Kanban, Lean, ToC, ...) to try and mask the fact that they can't get it up (whoops, taking the analogy too far, I mean masking the fact that they can't deliver, but I guess for the ladies the two mean the same thing :)).

Now this is bad enough, but what is even worst is when these passing fads actually require the business to invest even more. This is what got me blogging. The idea that business people should spend hours of their precious time working with IT, analysing business value and prioritising work, when they haven't seen any frigging software worth it's salt in months. WTF?

Not content with mugging me, you now want to monopolise my time too, just to mask the fact that you haven't actually produced anything useful? Now that is really going to make me stop hating you - Not!

When are we going to wake up to the idea, that a deal is a deal, and actually start delivering on our side of the bargain?

Kent and Ward are right. Business people aren't so bad once you give them a reason to trust you. They will actually get off your back and stop micromanaging. They will freely engage and be generous with their time. They will pay for those memory upgrades you asked for 5 years ago. They will even think long and hard about the best ways to realise business value, but this is only after you've proven that you can reliably deliver working software. SHOW ME THE FRIGGING SOFTWARE!

Software people need to get over themselves and accept that they haven't got a good track record. The "new deal" presented yet another opportunity for us to get our house in order. To fix-up. This of course means acknowledging that we are in a mess in the first place, and I see far too few software people who have the humility to admit that!

Saturday, October 30, 2010

Scala Bowling - A better Java or a Research Project?

A short post in the hope that I'll get some input about Scala. I first looked at Scala when it first came about, around 3 years ago now I think. My first impressions were clever, conceptually robust, but schizophrenic. It is as though the language designers decided to shoe horn in every language feature they could think of. It was clear that it was way more powerful then Java, but for me it was too clever, too complex.

Well three years later I'm looking at Scala again. I've recently come back to Java, after spending awhile in C# land, and I'm sorely missing lambdas. A quick perusal of the usual Java forums convinced me of what I had already suspected. Java 7 and closures aren't going to see the light of day anytime soon. What Java needs is a re-write, and you could argue that Scala is it! So I downloaded a Scala plug-in for Eclipse, got "hello world" up and running and started pondering what to do next?

As chance would have it, trusty Ron Jefferies has come to the rescue again with his bowling game. His first attempt at Bowling with Scala is definitely imperative. A sort of Scala for Java programers style. As he anticipated the functional community were quick to come back at him with more functional suggestions, using pattern matching and recursion. Well Scala has all the functional paraphernalia so why not use it? There is a sort of unsaid assumption by the functional crowd that a pure functional solution is somehow intrinsically superior to an imperative one. As I mentioned in my post on Haskell the jury is still out for me. Sure state is evil, and where a functional style is a natural fit to the problem domain, then a pure functional style is a no brainer, but how often is that? My gut feel is that most of the stuff I tend to do (shuffling data between a database and a browser) is imperative in nature, well at least I tend to think of it that way. To me, pure functions are things you use in maths and best suited to mathematical analysis. I get the feeling that Ron also shares my misgivings, and yet again, the expert pure functional solution was found wanting when someone discovered a failing test.

So how should we use Scala? As a pure OO language where we exploit the benefits of immutability as much as we can? Or as a pure functional language were we exclude state entirely Haskell style? It was interesting to see that the expert pure functional solution came about as a direct port from Haskell. looking at the Haskell version and the Scala version, they are almost identical. Based on this evidence you could describe Scala as a pure functional language, that also so happens to support imperative OO programming.

The guys over at Object mentor may beg to differ. Their bowling examples, whilst functional in nature also exhibit an OO quality, yet they still make use of pattern matching. So their Scala style could be considered an OO/Functional hybrid. What is the budding Scala programmer from an imperative background to do? It seems to me that Scala is still a bit of an experiment, with people still working out the best idioms.

The option of using Scala as a better Java is always there of course, and if I get the chance to do so I will, but there will always be this nagging doubt of whether I'm doing it right? And whether a real Scala programmer would approve? I think languages should promote a style. C was very good at this, with everyone adopting the style of Kernnighan and Ritchie. Smalltalk also makes a very strong style statement, exemplified by the code in the Smalltalk-80 image. Scala doesn't seem to have this. It is though it is at least two languages, or perhaps three, all coexisting. A haphazard mix of paradigms, idioms and styles.

I guess I need to read the book by the inventor Odresky to see if he as a Scala style I can comfortably adopt. More important then the discomfort of "am I doing it right?", is the obfuscation of the problem domain that comes IMHO when applying a pure functional style to problems that are more naturally expressed imperatively. Should I always be living in fear of that next failing test that blows a whole in my cleverly contrived pure functional solution? Or should I be able to reason about the correctness of my program with a modicum of confidence by simply reading it?

I'm interested in finding out the thoughts of people who are further down the Scala path. All comments and pointers welcomed.

Monday, May 03, 2010

Pull is the new Push

Just finished watching the video of Kent Becks keynote speech at the recent Lean Startup Conference. First thing to say is that I've got a lot of respect for Kent Beck. The thing that grabbed me about this talk though was that he was advocating that we could use pull and flow to accelerate learning in the context of an internet startup. The learning is identifying where the value is. What is it that customers are willing to pay for, and in turn will mean that your startup will become financially successful.

I'm a forty something, and I remember when none of this technology existed. I remember when it all was a promise. The microchip was going to change our lives for the better, by giving us all lots of leisure time to spend as we like. Well it didn't quite work out that way did it? Instead technology has made our lives faster and less secure. So given this back drop who is going to willingly turn to technology as a fun thing to do?

Sure people will use technology to interact with other people. I guess that's exactly what I'm doing now, but few will be interested in technology for its own sake. There appears to be a dilemma here. People enjoy interacting with other people, yet increasingly they find that they need to put up with irksome technology in order to do so. The village pub were everyone knows your name is now a thing of the past. Instead we're all sat at home by ourselves trying to make friends through blogs and chat rooms.

Is this a trade that anyone really wants? I doubt it. I'd much prefer being in a real social setting right now, getting this all off my chest :) So the trick it seems is to find ways that are less irksome then others that allow us to interact with each other through these horrible technology mediums we've invented.

The village pub closed down years ago by the way, and even if it hadn't your pals haven't the energy to come out for a drink, because the computer at work means that they now have to do three peoples jobs, so in the evenings they barely have the energy to sit through a TV dinner before rolling into bed :(

Kent is pretty open and honest about his failures in startup land. I think he is being slightly unfair to himself though. No one wants this stuff. People will put up with it only if they really have to, or if they see a way of making money out of it. Technology in the work place is seldom a win win proposition. Often a minority gain whilst the majority loose. Is it any wonder that technology as a leisure pursuit is a hard sell?

The whole drive for being "Lean" and efficient leaves me a bit could. We seem to think that by speeding everything up we can some how make the world a better place. I like the idea that many things of value can't be measured and many of the things we can measure have little value. Try putting a number on the value of your humanity?

I can't help but think that all this technology is being pushed on us all. Kent is right, we can learn which aspects of the technology are less irksome to users, to the point that people will actually put up with it, in order to make contact with their fellow man. But is this really market pull? Or just a desperate means of pushing stuff onto people that deep down none of us really want?

An After thought:

Despite this rant I must admit that I'm still a bit of a techno-geek at heart :) I noticed myself salivating over a colleagues iPad the other day, so I'm still attached to the dark side :) What I'm talking abut here is really a sense of balance and purpose. People aren't machines, and their desires and needs have been built up over thousands of years of evolution long before technology existed. We all need balance in our lives in order to gain a sense of well-being, and our current technology driven society isn't providing that I don't think, which brings me to purpose. Technology is just a tool, its what we do with it that counts. Since the microchip revolution I don't believe we have given sufficient thought to the purpose we should apply all these cheap CPU cycles. Quicker and faster, more with less, isn't a forfilling answer, especially when it ends up turning our lives into one big frantic blur. I guess that's why the iPad is so attractive. It offers a glimpse of a technological future were the medium fades into the background and the content comes to the fore. Alan Kay's Dynabook is with us. Now what was Alan's purpose for the Dynabook again? Oh yes, learning and enlightenment. Lofty ideals, but perhaps we'll get there some day :)

Sunday, May 10, 2009

Popularity and Success are not the same thing

After my last post, I went back and read through Giles blog post again. I missed his main point, and I dismissed what he had to say far too quickly. This video of DHH and Tim ferri, drove the point home for me and is well worth watching. This talk didn't prove as half as successful at Rails Conf, as Bob Martins.

Whilst I still think that Giles point is tangential to what Uncle Bob had to say, I think it is a profound one. That is, that any proclamation that requires free thought is likely to be unpopular. This lack of popularity doesn't equate to failure however, it just means that such ideas are more likely to benefit the few, rather then the many.

Uncles Bob's use of Smalltalk as the epitome of failure, rather cleverly raises the spector of fear, and as we all know fear is the great motivator of the masses. So if as a Ruby programmer, you want to be in a job for the foreseeable future, then make sure and do TDD. It's kind of like a Mom using threats to make sure that the kids eat their greens.

Whilst DHH and Tim and Paul Graham, are fundamentally right, they don't address the psychic of the average mainstream programmer, which is mostly dominated by the fear of not finding a job. So in a way this brings me back to were I started. Sometimes being right isn't enough. Sometimes you need to be effective too, and whilst fear is the worst of motivators, Uncle Bob is addressing the world as it appears to the vast populous, which is an effective tactic.

The world that is Giles reality is a rarefied place and the few people and languages that live there are likely to remain obscure for some time to come yet. The last interesting point is that it appears that DHH has out grown the community he created. This is hardly surprising. Like I say followers don't think for themselves, they rely on others, and as Rails becomes ever more popular, the community will become dominated by followers, just like what happened with Java.

For someone like David, this influx of non-thinkers must be nauseating.


What Killed Smalltalk: Sometimes Balls can be Useful

Uncle Bob, has been his usual charismatic and entertaining self in his keynote speech this year at Rails Conf. He presented a dire warning for the Ruby Community: "What Killed Smalltalk Could Kill Ruby, too". So what is this beast of death? Well Uncle Bob blames the ease at which programmers could create a mess in Smalltalk as the thing that killed off the language, quoting no other then Ward Cunningham to back up his argument. Interestingly he makes only brief mention of another VM based OO language with garbage collection that appeared in 1995, and was market mercilessly and given away for free, whilst Smalltalk vendors were still charging £3K plus per pop for Smalltalk licenses (yes that's over £3000 per seat). Hmm...

Anyway as you would expect, the Smalltalk community is up in arms. James Robertson has this post. And Giles Bowkett makes this response entitled "What Killed Smalltalk: My Balls". Giles response, demonstrates IMHO complete ambivalence to what is actually happening in mainstream programming today. Whilst IMHO Uncle Bob clearly has his finger on the pulse. I have never been a full blown member of the Smalltalk community. I've always been one of those people on the side lines, using Smalltalk for fun and hoping to get a Job that would allow me to write Smalltalk commercially, but never being fortunate enough to do so. I think that gives me a more balanced perspective. I am neither a curly bracket or square bracket zealot, having lived most of my programming career with both. Whilst I've always admired the Smalltalk language, I have noticed that the Smalltalk community has a tendency to be insular and inward looking (with no sign of those balls Giles speaks of). Anyway, here is my comment in response to James Robertsons blog post. I thought I'd post it here (with some minor edits), since I know that very few people take the time to look at Smalltalk blogs:

There are two audiences here. One audience are the 20 somethings who were merely a lusty glint in their fathers eye when the clash of C++ and Smalltalk was taking place in the 1980's. The other audience are the people who where actually there.

For the 20 somethings, I think there is a lot in this presentation to get excited about. First of all it makes the point that good ideas can fade. It also makes the point that great languages provide the programmer with great power. With this power comes responsibility. As developers we have a choice. We can allow ourselves to be dumbed down and given dull tools so we won't hurt ourselves, or we can become responsible and disciplined to the extent that we can be trusted to use sharp knives. This message is an important one. The other great message, Smalltalk, which is now being discussed amongst a new young audience. If any of these young kids are half as curious as I was at their age, then we should expect downloads of Squeak to spike this weekend...

As for the other audience. The people that were actually there. It is easy to dismiss this presentation as a pile of BS. Well it mostly is, but to engage with it only on a factual level is to miss the point. This presentation is not for us. Bob Martin is not a Smalltalk programmer and never was. I was on one of his OOD courses in the 1990's and he asked who in here as used Smalltalk? I was the only person to sheepishly raised my hand. He then went one to castigate Smalltalk, saying that you couldn't use it for anything serious because it would lead to a mess once you got to more then 10K lines of code. Back in them days Bob was a curly bracket language zealot.

I'm glad that James has admitted that that back in the 90's the Smalltalk community suffered from arrogance too. I read Giles response and it sounded more like a tirade. The mainstream developer community at the moment is in flux. They trusted in vendors only to be let down. Now they are looking for new leaders. Most of them are followers, if they weren't they would have self educated themselves long ago, and Uncle Bob wouldn't be able to get away with his historical inaccuracies. The Smalltalk community are in a great position to provide leadership. The Agile movement came from Smalltalk, TDD from Smalltalk, Ruby from Smalltalk...

So why isn't the Smalltalk community doing so? Why wasn't a Smalltalk programmer giving this keynote instead? Where is Alan Kay when you need him or Dan Ingalls? Is it because we've all got a reputation of being grumpy old men? It is up to the Smalltalk community to make themselves relevant to these new young kids. Bob is doing his best to tell a story second hand. The Smalltalk community should be telling this story itself. Looking in the mirror at yourself and your own short comings, is much harder then pointing fingers at others.


Sunday, March 15, 2009

The road to mastery - Practice, Practice, then Practice some more...

The craftsmanship movement has hit the ground running. First a conference in London organised by Jason Gorman. Looking through Jason's Blog, and from the video, it looks like the whole Xtc London crowd were in attendance. Jason is an established member of the Xtc crowd, so I suppose it shouldn't have been surprising. Familiar faces like Ivan Moore and Nat Pryce. It brings me back to my early XP days, when I too attended such conferences and the excitement and delight of it all, not to mention the friendships and the insights. What fond memories.

So after going full circle, the "Agile" movement are now back were they started: Writing Code! Or should I call it the post Agile movement? Or better still lets just call them the folks who like to program, get stuff done, and take a pride in doing it well.

Micah Martin was there, and presented his Langston's Ant Ruby Kata. Now Micah's dad, Uncle bob is the guy responsible for teaching me the fundamentals of OO design. So anyone schooled by Uncle Bob, will probably have something to say that would prick my interest. Watch the video. Its a real expose of the Ruby language and the mechanics of programming in general.

Micah borrowed the word Kata from marshal arts. A Kata is an almost ritualised performance of a set of martial art skills, with the desired aim of re-enforcing those skills through practice. So Kata's are meant to be performed again and again, until the practitioner becomes use to the moves involved. Its a wonderful idea, and is synergistic with Ron Jefferies emphasis on practice and learning through doing. Ron's bowling game example could be considered yet another Kata. Hopefully Micah will develop this idea further and I'm looking forward to a whole catalogue of Kata's that the aspiring programmer can learn and practice. Katas to me seem like a great tool when going through the Shu (hold) phase of learning.

Focusing on Micahs Ruby Kata, what was interesting to me was his interpretation of BDD. I have been doing quite a lot of BDD lately, and I have found the style of BDD I've been learning a tad verbose. Micahs BDD style using Rspec is very similar to my own TDD style, and a lot more appealing as a consequence. Given that Uncle Bob learned TDD from Kent Beck, and I learned TDD from a bunch of XPers (Ivan Moore, Steve Freeman, etc) who presumably picked it up from Kent Beck too, its clear to me that Micah and I share a common BDD/TDD lineage. This raises an interesting point about style.

Micahs software shop is called 8th Light, and they conduct an apprenticeship program. Now I always thought of an apprenticeship as something for novices, but 8th Light take a different slant on the apprenticeship idea. Rather then an apprenticeship being just a means of teaching someone the basics, 8th Light also sees an apprenticeship as a means of teaching someone the 8th Light Style. This is another great idea. From my waterfall days, I have known that great programmers will get the job done, using what ever approach is familiar to them, and there is no one right way, No Best Practice, No one style.

Corey Haines explores the idea of style with Paul Pagel of 8th Light in this video. They also talk a bit about the recent Craftsmanship Manifesto and what motivated it. They suggest that programmers should learn more than one style during their Journeyman phase. Again this is something that is synergistic with my experience. I remember working with Ivan Moore and Erik Deorenenberg on the same project. Both great programmers, but each with a different style. Whilst I found Ivans "Smalltalk/Python" biased style more appealing, Eriks prolific nature and practical bias was extremely informative too, and I vowed to get my keyboard skills up to Eriks levels (which is still something on my to do list :)).

So the Journeyman must be prepared to break with his master and explore alternative styles. This seems to me like the Ha (break) phase of learning. At 8th Light they are hoping to facilitate this by organising exchange programs with other software shops.

So there we have it. People walking the talk, and software as a profession actually being practiced. It is interesting contrasting the Craftsmanship movement with the Kanban movement, both recent off shoots of Agile. One group (Kanban) are busy telling others how to manage software development, and are selling their services as Consultants, whilst the other group (Craftsman) are busy writing software themselves for real customers and sharing their practices and insights for free with anyone interested in learning.

I saw this on Jasons blog:

Q: How do you get to Carnegie Hall?

A. (craftsman): Practice, practice, practice.

A. (consultant): Pay a respected market research company shedloads of money to write a report that concludes you're already at Carnegie Hall, and then make a killing selling maps and directions (even though you've never actually been there)
I think it says it all. All's left for me to do now is to get practicing myself. I'll think I'll start with the Langston's Ant Kata in Newspeak. Now that should be fun!