You are currently browsing the category archive for the ‘XP’ category.
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.
“create a low-fi prototype at the first responsible moment, create the hi-fi product at the last responsible moment” @aslamkhn
Wordle is toy for generating “word clouds” from text that you provide.
So what’s a Better Software made of? Except for the obvious terms (like ‘talk’ or ‘slides0) I read: team, agile, startup, fare (doing), persone (people), idea, essere (to be), cercare (to look for).
What do you read? What’s your “better software” made of?
Here are the first slides available from BetterSoftware2010 #bsw2010 (some are in italian). It seems everyone has read slide:ology and Presentation Zen :
Francesco Cirillo – Dinamiche di team di sviluppo
Alberto Falossi – Crowdfunding (Prezi!!!!)
Luca Mascaro – UX design agile
Maurizio Delmonte – Come avviene Plone
Elvira Berlingieri – I nuovi modelli di business developer centered: un`analisi giuridica.
Giuliano Prati – Enterprise microblog per il Project Management
Omar Cafini – Sviluppare e vendere applicazioni per iPhone
Fabio Franzini – Sviluppare applicazioni mobile native in html e java script
Stefano Sanna – Application Store: opportunita’ e trappole
Luca Mearelli – WorseSoftware
Antonio Volpon – Recruitment2.0
(updated) Giordano Scalzo – Better Software Developers
(updated) Giovanni Intini – Agile tricks
(updated) Giacomo ‘Peldi’ Guilizzoni – Alcune lezioni che ho imparato negli ultimi due anni
(updated) Daniele Montagni, Davide Cerbo, Stefano Linguerri – Playing between the clouds
(update) Fabio Castronuovo – Management Agile e Improvvisazione Jazz
(update) Pietro Polsinelli – Una Homepage memorabile
(update) Roberto Cobianchi – Il project management degli avatar
(update) Leandro Agrò – Una storia di SW dai protocolli alla startup
(update) Salvatore Laisa – Augmented Reality e il web
A lot of good stuff!!!
If you know where to find other presentations from BetterSoftware2010, please let me know.
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!
See you at #bsw2010
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.
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
I met Francesco Cirillo 7 years ago and every time I meet him again it’s always a pleasure … so I can’t wait watching his presentation at BetterSoftware2010 (have a look at the interesting special Twitter discounts , it’s a kind of new at least to me)
What happens when you start accelerating deploying?
You might says it’s not going to happen in your industry. I tell you that someone else will start showing your customer that it can be done faster and so you will have to, if you want to survive.
Interesting post by Michael Hugos called: Agile Software Development Depends on Pair Programming. Michael is at the Agile 2009 conference in Chicago to find about the state of agile software development and live posts about the Pair Programming practice.
A good article especially if you are in some way new to the agile software development paradigms: it gives you a flavor of the benefits of Pair Programming and talks about the Myth of the Hero Programmer.
And I think reality is a bit more complex and we have to remember that the goal is creating value and not adhering to principles or practices. So I agree with what Kent Beck point out in a recent article To Fix Or Not To Fix?: Another Good Question
When I noted that tests needed to be used thoughtfully on the runway I was accused of abandoning my principles, of having no pride, of not being a craftsman. None of these is true, not of testing, not of defects, and not of (coming next) design. The higher principle I follow is to create as much value with my skills and talent as I can.