when we look around at the companies who are doing well, it can be hard to see the rhyme or reason of the decisions that led to that success. Take Apple and the work it put into building a technology platform on which hundreds of thousands of independent developers could create apps and offer them to Apple’s customers. Or take Salesforce.com and its willingness to have self-organizing development teams continuously tweaking code, even though, with a global system serving more than two million subscribers, the risks of introducing errors into its 30 million lines of code would seem to present compelling reasons not to. (Drawing on the software development practices known as Agile, Scrum, and XP, the teams work in short, iterative cycles of test-driven development with direct customer feedback as the work proceeds.)

In fact, these companies are not behaving chaotically. They are acting according to a rethinking of the rules to suit today’s business conditions, and learning new heuristics based on their successes.

Like this:

We will talk about a new development technique called WDD or Worries Driven Development.
You might know another couple of *DD techniques: TDD and DDD but they are by far less powerful than WDD.

TDD or Test Driven Development has been invented by Ken Beck (@kentbeck). As Wikipedia states “is a software development process that relies on the repetition of a very short development cycle: first the developer writes an (initially failing) automated test case that defines a desired improvement or new function, then produces the minimum amount of code to pass that test and finally refactors the new code to acceptable standards”.

DDD or Domain Drive Design is a little more recent, especially it’s hype, and as Wikipedia says “is an approach to develop software for complex needs by connecting the implementation to an evolving model.The premise of domain-driven design is the following: Placing the project’s primary focus on the core domain and domain logic; Basing complex designs on a model of the domain; Initiating a creative collaboration between technical and domain experts to iteratively refine a conceptual model that addresses particular domain problems.” In Italy Alberto Barndolini (@ziobrando) is really good at it!

WDD is more powerful because it works at a deeper level. It acts at the level of motivations. We tend to do what we do for one of two reasons: to seek pleasure or to avoid pain.
Now our culture tend to push us to the ‘avoid pain’ side so we tend to use it more often as a motivation to do what we do. So what’s more relieving than solving a problem to ‘avoid pain’?
That’s where WDD come from: we do what worries us. Or better we do, schedule, put in priority what can have consequences that can worry us.
So the algorithm is: if you don’t have it, create a problem, throw it in the future, communicate it so that everybody can be worried. Now you are ready to make a lot of overtime to solve it to ‘avoid pain’.

The secret? WDD is not that new: it is quite often used as a primary development paradigm in many offices of medium-big corporations. And it works …. maybe.

Like this:

Lately I’ve blogged about internal IT projects that do fail and one of the main reasons: lack of Product Owner (Why big projects fail in corporate IT).
Today let me emphasize another major reason: often the team who’s in charge of a project … will leave (I’d say run away as fast as light) as soon as the project is complete. And usually ‘complete’ means ‘when we are exhausted of fighting with the supplier for bugs, change requests and new features’. And all this means that the project is not complete at all. And in any case we know it will evolve.
What is stimulating the project team, in such a context, to work effectively? Work for simplicity? Work to establish a system that will grow up or change in the future weeks / months / years? Are they measured in any way on these goals? Or are they measured on ‘close this fuxxing project quickly that we have already spent all the money they gave us’?
PierG

Share this:

Like this:

Let’s face it, working in an Agile fashion is hard. It requires paying attention to what you’re doing and the results of that. It requires thinking and making choices. It requires honoring the thoughts and feelings of those around you. None of this is easy stuff.

Like this:

I follow the good idea of Alfredo, who has just shared his play list for BetterSoftware2010, to share my one. It’s probably not the final one (also because it seems impossible to follow all this stuff in two days 🙂 ) but at least I’ve started thinking of it!

In the years since then I’ve had a number of occasions to work with him and listen to his talks. I’ve always liked the way that he is able to take his in-depth knowledge and wide-ranging skills and shape them into the ideas and enthusiasm that pervade his life and infect the people around him.

PierG: Francesco, I thought programmers were lonely stars: why are you talking about teams in your speech?

Francesco: PierG, we’ve both been in this field for awhile and as you well know the reigning model of that time, what we all dreamed of doing, was to Be the Best Programmer of All – the Star – and to have a team of assistants: some to do the debugging, some to organize and print documentation and perhaps meet with clients, etc… It’s even been codified as an organizational model: it’s generally referred to as ‘the Surgeon and his Assistants". This model aims to employ the human capacity to manage – though a single mind in a single place – an entire intricate knowledge of a system. In other words, the surgeon would save time by answering his own questions :-). It was thought that the star could manage hundreds of thousands of lines of code, give or take a line. People who were able to handle truckloads of code and slough off collateral hassles (meetings, documentation, bugs) were recruited. But over time the stars who took this approach were subject to brain burnout caused by the increasing complexity and a sense of obligation and guilt. Under the burden of these responsibilities, it’s pretty easy to end up working 16, 18, 20 hours a day and be miserable. Some of the questions I’ve always asked myself: how can a group of people work under a single mind in a way that is sustainable and pleasant? What effects does hierarchy have on efficacy? How can we develop shared knowledge and authentic collaboration? I think this is why I became a mentor and coach. And this is why I’m giving a speech on working in teams.

PierG: So, what suggestions would you give to team members (starting from managers 🙂 ) ?

Francesco: First: Don’t work to motivate others. There are ethical reasons not to (it is always a kind of manipulation whether conscious or not) and anyway, it doesn’t work 🙂 . I don’t let anyone tell me why I should work: it’s my energy and I decide what to do with it 🙂 This is an important point: if it’s ignored, failure is sure to follow. Not right away, but inevitably it will happen when you face a problem that calls for a cohesive team with a unique vision. I’ve recently written a post about this I Don’t Want To Be Motivated By Anyone But Myself. Second: don’t make teamwork into group therapy sessions. First of all because we don’t know how to do it and in any case it just doesn’t work. It’s not a good idea to interpret, make things personal, place blame and then have to get out from under that. On the other hand it’s a good idea to make a collective effort to understand the objective causes of problems. Third: Practice 100% responsibility. Being 100% responsible feels good and it leads to the enjoyment of accepting new and greater responsibilities. It’s good for everyone. In my experience, without these three points it’s impossible to think about an effective and reactive team, nevermind one that self-organizes.

PierG: Francesco, you are a very prolific entrepreneur: XPLabs, AgileMethods, the Pomodoro Technique so you know it’s not easy: why is it so difficult to start your own company in Italy?

Francesco: Ah, but this is just the beginning 🙂 . There is no lack of good ideas in Italy. It’s just difficult to get them going. As most Italians know, absolutely anything you do, from ordering a cappuccino (in the exact cup at the exact temperature and with the exact combination of coffee, milk and who knows what else requested) to getting to the office with public transportation (with the potential aggravating factors of precipitation or strikes) can turn into an authentic adventure. This likely adds to foreigners’ fascination with Italy. If I had two weeks’ vacation, I too, wouldn’t mind heading out for a place only to ‘change my mind’ when it turns out to be impossible to get there by lunchtime. This mentality generally becomes less acceptable when it causes a continuous stream of obstacles – arising from unpredictable combinations of unattributable inefficiencies, useless abuses of power and self-congratulatory obstructionism – that beat down a project. But it’s an ideal environment in which to learn to be Agile 🙂 I think explaining why Italy is the way it is isn’t easy even for Italians, nevermind foreigners. It’s not that there’s a lack of ability; it’s a question of ‘desired incontrollability’. I think that every Italian feels that being perceived as subject to control (as in ‘do what what you are expected to do as per your role’) is an unpleasant, lowly condition that determines scarce personal worth. Perhaps the explanation that best matches reality can be found in Tomasi di Lampedusa’s novel "The Leopard". This is part of what makes things difficult.

How can a company located in Italy win against efficient foreign competitors? Never accept the ways of working imposed by the Italian ‘system’; concentrate instead on developing all of your abilities in the direction of reactivity, efficiency and agility. The ceaseless unpredictability of events here means that rigid, inflexible plans will inevitably meet with failure. How could you predict that when you go to the Italian Post Office for information about shipping costs, that the clerk – without any apparent reason – will tell you that neither he nor his manager has time to answer your questions? But this cloud has a silver lining. New tools and solutions have to be invented all the time to turn each of these obstacles into an opportunity for a better solution. To do this we need ideas, and luckily, in Italy, there is no shortage of people with good ideas.This is an ability that we have developed over the years. And we are proud to be able to export this knowledge. If Swiss companies call on our Italian company to improve their organization, it means that we’ve learned something valuable.

PierG: What are you working on now?

Francesco: My next project….As you know I’m writing a book. At the moment the project is secret. It’s not an easy book to write but I think that it will be able to help a lot of people in the work they do every day…(but it’s got nothing to do with the Pomodoro 🙂 ) I feel like a big opportunity is being given to me with this. Unfortunately I can’t tell you anything else for the time being 🙂