Archives for the ‘Kaizen’ Category

The Secret to Software Craftsmanship

Perfect Practice creates Code Poetry

From Journeyman to Master

It’s been a while since I last coded, so I jumped at the opportunity when I heard about an Object-Oriented kata run by Sandro Mancuso, the man who started the London Software Craftsmanship Community. Sandro and I’ve exchanged a handful of contemplations about the Software Craftsmanship Manifesto recently, so I was really glad to experience it firsthand last week.

According to Sandro, the thing a craftsman strives to achieve is “Perfect Code”. If that’s at one end of the spectrum, what’s at the other? The code we write at work, our Daily Code. And what’s in-between? The space in-between, says Sandro, “represents how much we suck”. I laugh out loud. This remark warms my heart and tickles my funny bone. I like to think of it as “my room for improvement”. Either way, the gap exists and we can all do something about it. It turns out that something is called “Perfect Practice”.

What does “perfect” mean?

To me, “perfect” is an aspiration. It’s elusive by design. It’s an aspiration because we’re always to make things as great as they can be. It’s elusive because something can always be improved. The pursuit of perfection is striving to always be better. That makes “perfect” a moving target which is why it requires lifelong learning. It’s about being a lifelong apprentice.

Perfect Code requires Perfect Practice

When we’re at work, we’re faced with a whole bunch of challenges. Tight deadlines, peer pressure, insufficient skills, knowledge and/or experience, to name but a few. So what do we do? We make compromises, also known as hacks, false trade-offs, driven by short-term thinking.

Instead of trying to write perfect code during work hours from the outset, Sandro suggests we strive for Perfect Practice. In our own time, on our own terms. Why? Because this creates the headspace we need to learn how to do our job better. To close the gap, we need different conditions from those associated with pure “delivery mode”. The army calls it “Train hard, fight easy.” Software crafts people call it “Perfect Practice”.

“The longest journey begins with a single step…”

Sandro gets us to work in pairs, doing Test-Driven Development to develop a banking application with basic functionality such as making deposits and withdrawals. He repeatedly reminds us that the goal of the exercise is to learn and not, as we might immediately assume, to be the pair to finish first or complete it in its entirety.

“It doesn’t matter how far you get in the exercise,” Sandro says. “The goal is ‘Perfect Practice’. Over time, with practice, this becomes second nature. That’s what will enable us to write better code at work.”

Since it’s been a while since I last coded, I give my pair buddy Dan a brief description of my technical skills, knowledge and experience. I explain I was most definitely rusty at best and that I would strive to be better. As a sign of trust, he plugs in the second keyboard and mouse and we’re good to go.

The Art of Perfect Practice

The rest is “Perfect Practice”. Instead of rushing around like a pair of headless chickens, we took our time to think and talk things through, from the approach we would take (Domain-Driven Design) down to the specifics (Ubiquitous Language, Design Patterns and the careful naming of each variable and method).

The result? Well-crafted code that is easy to understand and maintain. Every decision was conscious and considered. What else? A sense of immense satisfaction. It tasted of euphoria because it brought back memories of all those times when we took care to do a good job. And the many possibilities for improvement. I could hear my heart sing.

Class Kata

And as I looked around the room, filled with 15 smiling faces and furrowed brows, all signs of minds deep in thought and conversation, I have proof. Proof that there are others out there who care about their craft. People who care so deeply that they invest their own time in Perfect Practice.

To think of many things

The kata reminded me of many things. That everything we produce tells us a lot about who we are. That programming is poetry, a transmutation of ideas into words. That it takes 10,000 hours to get really good at what we do. That Perfect Practice can be part of what we do and how we live. Every day.

How will you feed your need for Perfect Practice today?

Starting out with Social Gardening

Gnomes know

Ask for help

One of the things that Agile has taught me is this: “When in doubt, ask for help“. So when it comes to gardening, who better to seek help from than seasoned experts with a passion and an excellent track record for helping people grow? I know as a green gardener I’m going to need as much nurturing as my garden does if we’re to start creating a place of beauty and keep it growing.

Where to go for help

Colleagues, friends and family. We’re surrounded by people who have the credentials and who are willing to help. By simply asking around for help, you’ll uncover an abundance of people ready to share their advice and ideas. The key is to find people who care about their craft and has genuine experience with some knowledge and skills to boot.

In my experience, the kind of experts you want on your project behave like ambassadors, people who are willing to share their stories in a respectful way. They won’t tell you what to do. Instead, they’ll share with you what they did, the good, the bad and the ugly. And their lessons learned. And how they’re no expert. That they’re still learning. They’ll usually quickly let you know how much experience they really have so that you both understand where each of you is coming from.

Working together to get started

Next, you’ll move forward together where you clarify your goals and together come up with real options for next steps. The secret when working with experts and consultants is to consult them. You’re under no obligation to take up their advice, but you’d be wise to listen. And if you find yourself strongly disagreeing with one expert, ask someone else for help and see what they come up with. Then, if after speaking to a handful of these experts, you find they’re not providing any value (and all saying the same thing), you’d do well to dig deep. Do some personal root cause analysis and figure out why you’re always right and everyone else wrong.

Some things money just can’t buy

The best help I’ve had over the years are from people who stay hands-on and care deeply about what they do. They take time to understand the situation and your goals before making suggestions. Most important of all, they’ve learned to see the big picture even if we’re stood in a field of weeds.

My Agile Pilgrimage

Beautiful Snowbird

Begin with the end in mind

I still remember the moment when I first heard that Agile 2011 was going to take place in Salt Lake City, Utah. It was during an announcement at the end of Agile 2009.

At the time I wasn’t sure how I’d get there and with whom I’d go, but two things were certain.

Firstly, I thought it would be nice to re-live history by visiting the room where the Agile Manifesto was created 10 years ago. Partly out of curiosity and partly out of respect to the 17 visionary-signatories without whom I probably wouldn’t have a job I love doing and related to IT.

Secondly, I would have to go with a group. After all, Agile is fundamentally about people working together. It would be odd and sad for me to show up and no one to relive the historic moment with.

Almost everything I’ve ever experienced with Agile has been remarkable, so it came as no surprise that our journey to Snowbird was equally serendipitous.

Mission Possible

As soon as I arrived in Salt Lake City, I started polling for interest about a visit up to Snowbird. My mission was clear: to get a bunch of people up to Snowbird to celebrate the manifesto’s 10th birthday. I didn’t do it in a fanatical way. Rather, I offered it as an option.

Some people would smile politely and nod, agreeing that it was a good idea in principle. Others would stare bemused since they felt it unnecessary; we were already at the conference, isn’t that all that mattered? May be for them, but not for me.

Snowbird Souvenir

Two days into the conference, I only had one other person seriously interested in making the journey – Carsten Ruseng, a friendly Dane, from Systematic.

Over the course of the next couple of days, we tried to create and evaluate options for making the visit possible. We both wanted to make the most of the conference AND we wanted to visit Snowbird. I felt confident that we could achieve the mission if  only we applied Agile and Systems Thinking to the problem.

Information Gathering and Agile Planning

Meanwhile, I needed to find out the exact location of the room. Fortunately, I bumped into Alistair Cockburn during the conference and he gave me precise directions. It’s Lodge at Snowbird, exit 3. The rooms’s just above the reception. That was the most crucial piece of information I needed to complete my mission.

Then finally, last Thursday, on the evening before the last day of the conference, Carsten and I committed to executing the mission (the last responsible moment). We’d meet bright and early the next day (at 7 am to be exact) and go to Snowbird. It would mean that we’d miss Kevlin Henney’s talk but I knew Kevlin would understand.

Without a goal, it’s hard to score

Throughout our planning conversations, we always went back to our goals for the mission. In Carsten’s words, “We’ve already come all this way for the conference. Not going would be like not seeing Niagara Falls even though we were in Toronto.” Since we’d both managed to visit the falls independently during Agile 2008, I understood what Carsten meant.

But we were still only two. Given that three’s a crowd, I wished for one more person to join us on the pilgrimage. Just when I’d almost given up hope late Thursday night, Carsten texts me to say that Henrik Kniberg would like to join us and would that be OK. OK? I said. Most definitely!

Carpe diem

We arrive at 07.50 outside Lodge at Snowbird. When we get to the reception, I look the gentleman behind the desk straight in the eye and begin to explain why we are there.

We’ve come to see a very special room, I say. We’re in Salt Lake City to attend a conference and 10 years ago, a bunch of people created a manifesto related to the conference. They created the manifesto in the room just above your reception, I explain.

In search of the manifesto

At first, the gentleman stares at us blankly and then he starts to ask us a whole bunch of questions. What’s the conference about? Where do you all come from? Why is seeing the room so important?

So close, yet so far

Just when I think he is going to decline our request, Monte tells us that 10 years ago, he was made redundant doing IT. He tells us how, at the time, he thought there must be a better way of developing software and he even wrote an essay about it. He asks us to tell him a bit more about the manifesto. Have the lives of IT professionals improved, he asks. Are they happier? To which we reply things have improved, but with improvements come greater expectations. We’re doing our best. We’re always striving to learn, we tell him. He smiles and shakes his head in disbelief.

Still in search of the manifesto

Monte ushers us into the office so that we could look up the manifesto online. Henrik had come up with the idea that we could double-check we’re looking at the right room based on the background picture of the manifesto with the signatories stood in a circle.

History is what we make it

Everything from there is history. Before taking our group picture, we scribble up the 4 values as though they were fresh from yesterday. We start joking and laughing at our adventure. We ask Monte to take a picture of us. Then we set the camera on auto-shoot so that we can get a picture with Monte in it, too. This is the crowd I was hoping for.

Meeting Monte

We spend the next half hour strolling around Snowbird. It’s not difficult to imagine how such beautiful scenery would inspire people to come up with something like the manifesto, Carsten remarks. During the walk, we exchange more of our memories accumulated over the last decade. We talk about getting lost, following and leadership.

So long, farewell, auf wiedersehen, goodbye…

Stroll in Snowbird

The overarching theme of that day has to be closure. Henrik mentioned it several times. He explains how he was going to go on a family holiday soon for six months and has handed over the Agile Manifesto translation project to Shane Hastie, newly elected on the Agile Alliance board. Henrik describes how by initiating a translation project in a certain region or country, it has brought people together, in debate and discussion about what the manifesto really means. Translating the manifesto into a different language usually marks the start of something important.

Making work matter

For me, closure has resulted in a new beginning. One that builds on the past while clearly looking into the future. It reminds me of Tom Peter’s frustration when he wonders out loud why it’s taken so long for us to realise excellence, and we’re not there yet, even though he wrote the book “In Search of Excellence” more than two decades ago.

And my answer is this. Everyone knows what’s right, but only the Spartans do it. That was the lesson I learnt in history class all those years ago. We can go around claiming to be “agile”, but everyone else recognises when we’re not. To make progress, we need to first be honest with ourselves. How agile are we really? Most importantly, why should it matter? What do we want to achieve, now and in the future? How will you make work matter today?

We made it!

Personal Growth

Continuous Learning

Only a mediocre person is always at his best” – Somerset Maugham

Personal Development

I started my career back in the Dot.com days when we celebrated the launch of new products with champagne and strawberries on a weekly basis. Back then, the going was good and everyone was encouraged to invest in training in order to deliver more value through personal development.

During the boom, I attended conferences such as JavaOne in San Francisco and TheServerSide Symposium in Las Vegas where I learnt a great deal from peers and thought leaders.  In spite of being a software developer, I even attended a course on Project Management where I gained invaluable insight into how project management can add value when it is applied correctly. All the training I participated in helped me see the bigger picture beyond writing code, my core competency at the time.

Then came the crash and organisations no longer seemed to care about the return on investment when it came to training. When the training budget eventually shrunk to almost a taboo, I got creative.

Get creative to learn

During the crash, I got into the habit of investing in my own personal development with my own money and holiday. At first, it was by setting aside a modest book budget. Then I extended it to include conferences. As a result, I learned a great deal by focusing on value when others were busy concentrating on budget cuts.

Nowadays, my learning budget includes events and trips that help increase the value I deliver. It’s not a big budget so I make sure I get the most value out of what I invest in.

Get personal about your development

Over the years, my attitude and approach to training has evolved immensely. My view is that training is a means to continuous learning. This means that anything which helps me learn qualifies as “training”.

Tip #1: Take responsibility for your own learning
You are your own greatest asset. Learning increases the value of that asset. Since you are the primary beneficiary of your personal development, it’s up to you manage that development, not your manager or anyone else.

Tip #2: Put your money where you mouth is
If you truly believe in the value of personal development, you need to invest, be it through time, money and/or effort.

Up close and personal

Here’s a list of things I do to maximise my investment in personal development.

1. If you don’t ask, you don’t get. Most organisations have a training budget. Find out how much of it can be invested in you. Get details of training options, from training providers to ways of learning such as courses, conferences and 1-2-1 mentoring.

2. Identify your learning preferences to maximise the value you get from the different ways of learning. Do you prefer lecture-style learning or interactive learning? Get smarter by mixing and matching what your learn and how you learn.

3. Think of each training request as a business case. Identify the value you and your organisation will get out of the investment as well as the costs. How will you give back after getting training?

4. Present your training request as a set of options with varying value and costs. For instance, I like to come up with between 3 – 5 options for each course or conference I attend with the aim of getting the training request approved. My goal is to ensure that my request contains so much value that the cost is negligible by comparison. Think “Value for Money”.

Ways to increase your value proposition

For many people, learning is a passive activity such as being an “attendee” at a conference. The key to increasing the value of an investment is become an active participant.

Here are some ideas on how:

  • Define your goals and success criteria before the course/event and regularly track progress in terms of your goals and criteria throughout the course/event. It’s also useful to reflect afterwards to determine the estimated vs actual ROI
  • Active participation during sessions through personal contribution – This helps you exercise the theory of what you’ve learned right away and increase the effectiveness of the learning cycle
  • Share what you learned with your colleagues through a series of lunch-and-learns – This helps generate conversations with others or give rise to new ideas
  • Submit a proposal to the conference – This is a great way to get feedback as well as learn how to receive feedback and take improvement actions
  • Present a session at the conference – Similar to submitting a proposal and at least 3 times more valuable in terms of learning through session R & D, public speaking and face-to-face networking. For me, it’s a great test of personal agility

Ways to reduce the cost of training requests to your organisation

  • Become a conference presenter (presenters usually get free entry) – It’s a great WIN-WIN formula, as a presenter you get more value AND it reduces cost
  • Offer to pay for one or more of the following where the number of $ denotes the relative and estimated cost of items: conference entrance fee $$$, accomodation $$, travel $$, expenses $ and days off work (by taking it as holiday – the value of holiday differs from person to person) $$

Learning as a personal investment

Something sobering happens when you start thinking about learning as a personal investment in terms of time, cost and effort. The most poignant moment is when you translate what you’re personally prepared to pay into $$$ value for an opportunity to learn. You know you’re serious about learning when you really put your money where you mouth is.

How much have you invested lately? How much will you invest this year?

Rising to the Challenge of 2011

Be Your Own Champion

One of the life-changing moments for me back in 2010 was hearing Sally Gunnell speak at a great networking event organised by Women in Technology, hosted by BP.

The subject of Sally’s talk was ‘Rising to the Challenge – How to achieve a gold medal career‘. Sally shared numerous heartfelt stories from her 12-year long career in athletics and, most importantly, shared her insights on success.

Who’s Sally?

Sally is a former Olympic British Champion in the 400m hurdles. She’s the only woman to have held the European, World, Commonwealth and Olympic 400 metre hurdles titles at the same time. (Read more about Sally on wikipedia.)

Sally Says

Think big. Have dream goals. Define your goals. Know what you want in life. Have a role model. Work out what you’re bad at. Focus on what you’re good at. Remember that your comfort zone gets smaller every day.

Understand yourself. Learn how to deal with setbacks. Work hard. Make sacrifices. Believe in yourself. Develop a positive mental attitude. Don’t let people who put you down influence your whole life.

Put yourself under pressure. Live your dream.

Key Ingredients for Success

Nutrition. Your body isn’t so much a temple as the engine that enables you to realise your dreams. Watch what others eat and work out what works best for your mind and body.

Proper preparation. Build training into your schedule. Train lots.

Be professional. Take what you do seriously. Make everything count.

Respect your coach. Listen with an open-mind. Give things a go.

Don’t worry about things outside of your control. Believe in yourself.

Take regular physical exercise. At least 3 – 4 times a week. It’s the quickest way to feel good about yourself.

Plan for you. Define your goals. Take small steps to get you going and get you that gold medal.

The Difference Between a Champion and a Loser

Winners define what success means for themselves. You decide what constitutes a gold medal for you.

Winners know how to shut up that obnoxious voice in one’s head that says, ‘You’re rubbish. You won’t make it, so why bother?’

Winners know what they’ve got to do. They do the best they can. Once they achieve one goal, they set themselves another.

Being a champion is about sustaining excellence. Being a champion is about ever greater expectations of oneself.

Over to You

All this may sound simple, but it’s anything but easy. What are your goals for 2011 and beyond? And what’s your plan?

Make this year a great one. Because we’re worth it.

A Gift from Me to You

 Where are you?

As I turn a year older, I feel compelled to question if I’m really a year wiser. What better way to do this than a personal retrospective?

What have I (re-)learnt?

Perfection doesn’t exist. Perfect doesn’t exist. Perfect is something we aspire to, it’s elusive by design.

Immer besser. It’s OK to make mistakes so long as you learn from them and don’t make the same mistakes. Being better matters more than merely being right.

Courage! Fear is what our lizard brain tells us to be. Courage is what sets us free.

What do I need to (re-)learn?

Drink my own champagne. I was disrespectful to a colleague yesterday. And last Wednesday. Twice in one day. It’s all well and good espousing the Agile Values and Principles. What really matters is that I apply them myself.

Work a Sustainable Pace. The problem with loving the work I do is that it can consume not only me but all those around me. Pretty soon I lose not only my perspective, but compromise my effectiveness.

Admit when you don’t know. This lesson consists of all the lessons I’ve (re-)learnt and need to (re-)learn. It’s not so much about what I know as recognising and then admitting I don’t know. The faster I acknowledge my not-knowing (or forgetting), the faster everyone can move towards creating value together.

On the Eve of Mini XP Days Benelux 2010

Welcome to dinner on Mini XP Days Benelux Eve!

‘Tis the eve before the second Mini XP Days conference and I find myself thinking back to the first time I came across the XP Days Benelux conference. It was around 2 years ago. Pascal and I had just begun pairing on conference sessions and he happened to mention that XP Days Benelux as something he was involved in.

Needless to say, I had lots of questions such as ‘What makes the conference different from other conferences? What value could I add? How could I contribute?’ To which Pascal replied in his usual matter-of-fact way, ‘Vera and I started the conference because we needed a conference we wanted to go to near where we lived. You could help by making it a conference you want to go to, too.’

I accepted the invitation and began to contribute with baby steps, first by reviewing conference sessions, then by submitting my own and by helping out on the days of the conference. I’ve learnt so many things through helping out over the years.

What makes a high value conference?

1. A conference tells you a lot about the people who organise it. It’s difficult to distinguish between the organisers and the participants at XP Days Benelux. This is intentional. It highlights the fact that we all have something to learn from each other. Some presenters say that the feedback they get from the participants go a long way to amplify and accelerate their own learning.

2. Effective learning begins in an environment where everyone can be courageous. Many of the participants are equally as helpful and enthusiastic as those who organise the conference. It’s this sense of camaraderie, willingness to muck in and courage to expand one’s comfort zone, that has made this conference the kind of conference I thrive on participating in.

3. Self-organisation is a key characteristic of a successful team. I was able to witness self-organisation firsthand by working as part of the group of diverse volunteers. I noticed there was no one telling the others what to do. When I mentioned this to Pascal, he said, ‘It’s up to all of us to decide and agree on what we want to get out of the conference. Then we can decide how much and what we put in.’  That’s when I realised that there isn’t just one leader in a group. Everyone’s a leader. To be a good leader, you have to lead yourself first. It sounds simple, but it’s not easy.

Nicole and Vera know to take a look from the other side

A Gathering of Adventurers

Participants of XP Days Benelux share a few common traits:

  • Open-minded – ‘Aikido breathing exercises to start off the day? Go on then, I’m willing to give anything a go!’
  • Good listeners who question everything – ‘Will you qualify your approach? What makes you describe people as “blockers”? What can you do to help?’
  • Continuously Learning – ‘What works well? What’s going wrong? Lessons Learnt? And puzzles?’
  • Continuously Improving – ‘Thanks to our conversation at the last conference, I’ve helped introduce pairing to my team. What else can I do to improve? How can I add more value?’

If you’re ready for this kind of learning, we hope to see you on Monday and, of course, at the 2-day XP Days Benelux conference on 25 – 26 November!

Webinar: Enterprise Agility

Learning London

emergn will be hosting a free one-hour webinar titled “Enterprise Agility” on Tuesday, 20 April at 10 a.m. EST US (3 p.m. BST).
 
It’s going to be an exciting webinar featuring Mike Croucher, British Airway’s Head of Software Engineering, and Alex Adamopoulos, emergn CEO. Mike and Alex will be sharing with you their experiences and lessons learnt on scaling Agile and Lean to meet enterprise requirements and overcome pervasive challenges.

You’ll learn how to apply some of the techniques used by British Airways and those employed by emergn within your own organisation. Join us to learn how to:

  • Overcome inefficiencies due to traditional ad-hoc agile approaches
  • Attach tangible value to your efforts
  • Align business units and set enterprise-wide goals
  • Develop an enterprise-wide Agile adoption framework.

Register quick!

April Smarts

 Be an artist today!

Ahead of Marketing

It was great to have celebrated this April Fool’s Day by seeing Seth Godin present ‘Ahead of Marketing’ live in Antwerp, Belgium. The event was organised by Flanders DC (District of Creativity) with around 1000 attendees awaiting with bated breath to hear words of inspiration from one of the most famous marketers around.

Seth Godin in Short

Seth shared 7 core messages with the audience:

1. Abandon instructions. According to Seth, we’re all conditioned to strive for mediocrity from school age. It’s this conditioning that stops many of us from daring to be remarkable. We set our own limits.

2. Do work that matters. Seth urged us to make a difference regardless of our job title. Make solving interesting problems a key part of our job.

3. Become an artist. Make a splash of genius by solving a problem like no one ever has before. Make people think. Instead of treating our jobs as a mere means to an end, we should use it as a platform for our ‘art’.

4. Real art demands courage. ‘Art that matters always involves going the other way,’ said Seth.

5. Ship! Ship! Ship! Real artists ship their creations. Ship early and often.

6. Give gifts. Paint pictures. Make the world better.  Give away your art often. Giving makes you create more.

7. Teach people to lead. Seth invited us to begin by leading ourselves. And to encourage others to do the same.

My Takeaway in Market Speak

Practice the gift of giving. Be generous to be better.

Turku Agile Day Conference 2010

Let the Conference Season Begin!

2010 looks set to be another year of learning and fun! I’ll be in beautiful Turku, Finland on 17 – 18 March to present at the academic conference of Turku Agile Day.

A Series of Firsts

Pascal Van Cauwenberghe and I will be presenting our first ever Agile Fairytale keynote. It’s significant because 1) it’ll be my first ever keynote; 2) it’ll be our first ever keynote together; and 3) it’ll be the first ever Agile Fairytale to be presented as a keynote; 4) we’ll be presenting a brand new Agile Fairytale – “Pinocchio: On Becoming a Leader“. Exciting times indeed.

Warning: Too much candy turns toy boys into donkeys!

And There’s More!

Another first is that Staffan Nöteberg and I will be pair presenting for the first time on a brand session based on a topic close to my heart: “Timeboxed Thinking – How to Make More of Your Time“.

Timeboxed Thinking to make more of your thinking!

We’ve taken special care to make both the keynote and session highly interactive and full of fun. We hope you can join us. See you then!