In this blog post I interview Davide Varvello, currently working as XP coach at 7Pixel. I've had the pleasure to work with Davide for a couple of years during the early 2000's in Motorola; back then, he first introduced me to the practices of eXtreme Programming and Kent Beck's books (ironically enough, at the time we were attending an internal training to apply CMM processes to our daily job as Motorola software developers – our center in Turin would have eventually been rated at CMM level 5 years later, long after Davide had left the company).
Stefano: Can you tell our readers a bit about yourself?
Davide: I've been fond of computers since the 80s, I had a Commodore 64 and I loved playing and programming with my friends even if they were better than me :-)
Next I turned my passion into a work, I've been busy with software for about 14 years wearing several hats: programmer, coach, mentor, tester.
The lovely thing about software building is that it's a creative activity like poetry or painting even if it does not follow the same goal. From an external point of view it's difficult to understand it, because a sw developer has always been seen like a guy struggling with weird numbers and cryptic algorithms, instead he is like a child with his modeling clay, taking care of it, pressing a bit, removing a bit to generate something new.
Stefano: How did you first get involved in Agile?
Davide: I think Agile is a forma mentis, it's not only linked to the will you have to improve the way of producing software, but it's the natural tendency to think how you see your life. I've always searched how to work better and I had an "Ah-ha" moment several years ago when I read an article of Bob Martin about changes in software requirements, I believe it was 1999 or 1998, anyway, Martin said requirements change 100% of the times and we, as sw engineer, should address that issue instead of wining. As I was facing a project with al lot of unclear requirements and with many changes, that words had a big impact on me. So I started to improve my technical skills and study more at night after work. At that time there was a lot of hype on XP and it was clear to me XP matched my ideas to build software. Through an ex-colleague of mine I met Francesco Cirillo who gave me a lot of spurs on studying something valuable for my work.
Stefano: What motivated you to become a coach?
Davide: Every Xprogrammer is an XP coach; every single development day you, as a programmer, are facing problems about how to implement some features: "is there a simpler way to do that?" "Is there a better test to implement?" "Ouch, that object doesn't behave in the right way, I have to fix it now." "Can I understand that deploy script?". All these questions rise every minute, what I like as a coach is to help the team to find a way to answer those issues.
Stefano: Can you describe what a typical day of a coach looks like?
Davide: It's like to be an alien on the Earth, you have to see and listen a lot: comments, postures, level of good noise, level of bad noise, flying questions, mechanical typing :-) and... code, of course. I don't have a private office, my work is in the bullpen and I keep attention to that indicators, than I try to help the team to work together. It's not easy because people have consolidated habits and dynamics but, all together, we have to move from a local optima to a better one.
Stefano: What is the single most important factor within an organization to succeed with agile?
Davide: That's a good question. There is a no single answer, but there are four :-) simplicity, communication, feedback and courage i.e. the Values. If a company or a slice of it is not ready to sustain those values, probably it will be precluded to the benefits that agile methods can produce.
Stefano: Have you found any connection between the platform/language a team uses and its success in agile?
Davide: Yep. If you are a professional and can embrace the values above, you are in the right direction, but there are technologies or languages that can match your expectations better than others, so they can make your work easier.
Let's take the value of feedback: you are considering a new language to study, you don't know anything about it, but there is some buzz on the net, so you give it a chance and start downloading the development environment; then you start with a tutorial, but unfortunately you face some show stoppers: you should configure this or that, you are constrained to compile and/or link whatever, you should validate something or throwing some mandatory exceptions to produce your first piece of new software, clearly that scenario does not work in the direction of a fast feedback.
So, it's not a secret I like a lot simple languages like Smalltalk.
Stefano: What final recommendations can you give to team who might want to try or just starting with agile?
Davide: The team members (in the whole) should be professional and disciplined, they should study a lot, start small and ask themselves the whys of every step in their working efforts. Organizing your work this way is a useful path towards improvement and it's fun too :-)