Public speaking? Like a great movie!

Posted May 5th, 2008 by Claudio Perrone

I have really enjoyed doing some public speaking this year. I’m just back from the DDD Community Event in Galway and, once again, the feedback on my talk has been very positive. I always feel the responsibility of fulfilling people’s expectations, so hopefully I didn’t disappoint anybody. I must be doing something right though: 2 weeks ago I’ve been invited to present at Øredev, a ~1000 attendees conference in Sweden in November!

As promised, I put my slides on Slideshare. If you haven’t had a chance to attend, at least you could get a fair idea of what the session was all about. Let me know what you think! Don’t be fooled however, the slides are just a tiny part of the whole story.

In my exploration of how to design a better presentation, I used key books such as Presentation Zen and Beyond Bullet Points. I loved the ideas and approach of the first, the Hollywood-style methodology of the latter.
In my quest, I also came across Made to Stick, an eye-opener book which gives amazing examples of how simple, unexpected, concrete, credible and emotional stories can make ideas memorable.

So, what is this new presentation style about? While PowerPoint has been fundamentally the same for almost 20 years, our use of it is beginning to change. Slides are finally becoming more visual and essential, with a renewed appreciation of how people learn. I am particularly interested in the focus on stories and movie structures to make our messages more compelling.

It’s a fascinating idea isn’t it? In fact, I want to develop it further. Content matters more than ever. Pretty pictures that don’t carry a compelling story are just (annoying) pretty pictures.

In preparation for my next presentation, I just received 7 books on screen writing and more are on the way (speed-reading is handy, isn’t it?). No, I won’t be the next Stephen Spielberg and I don’t see myself walking down a red-carpet event any time soon. But I want to learn as much as I can from that industry to be better at mine. My challenge will be to present a potentially dense technical topic in a dramatic and captivating fashion. Who said it is going to be easy? It will be my pet project for my next few months, 48 minutes at a time.

Tags: ,

The Developer Summit 2008 has been a triumph!

Posted April 13th, 2008 by Claudio Perrone

I’m just back from Stockholm, where I presented a session titled “Passionate Teams and Cooperative Customers: Agile tales of creative customer communication”.

Based on my direct experience, I offered some concrete suggestions of how to revert seemingly impossible (but common) situations in IT projects using a combination of agility, effective communication and deliberate creativity. All of these are skills that I’m firmly convinced we can learn and improve upon, and I was committed to do my best to push the boundaries and bring the message across.

successWhat can I say? The feedback has been absolutely tremendous, both on the core message and delivery style. I knew I had prepared something good, but boy, the response went far beyond my best expectations. I will follow Tom Raftery’s excellent advice and publish my slides on slideshare in a few weeks, right after my next presentation.

I will indeed repeat my session here in Ireland at the DDD Community Event in Galway on Saturday May 3rd. If you happen to be around, you may consider coming over and join the action; there are plenty of interesting sessions, the event is totally free and you can register here.

At the Swedish event, there were lots of speakers from ThoughtWorks, including my good friend Dan North who, a few hours before my turn, helped me refining a couple of messages I wanted to convey on Behaviour-Driven Development.

I’ve also been really privileged to meet ThoughtWorks’ founder and chairman, Roy Singham, at dinner. His fervour, values and clarity of intent are simply remarkable and totally explain why ThoughtWorks is such a unique and respected consultancy company all around the world. He confirmed that he is seriously considering opening an office in Sweden within this year, an opportunity that the best talents in Sweden should not miss!

There would be so much more to say about the event and the stories behind the new and old friends I met, but unfortunately I just exhausted my small quota of writing energy! Let me conclude by saying that the event has been a great success and was extremely well organized by Cornerstone. I’m really, really delighted that InnerWorkings has such a good partnership with Cornerstone in Sweden. Well done guys!

Tags: ,

How do you get your ideas?

Posted March 14th, 2008 by Claudio Perrone

I get a lot of ideas on my way to the office, while on my motorbike. Perhaps Dublin’s traffic and pollution is good for my brain. Or maybe not. At one of our daily standup meetings this week, someone suggested that I should try wearing gloves and helmet at my desk :D

Tags:

Patterns of Systematic Creative Thinking: Extract Concept

Posted March 12th, 2008 by Claudio Perrone

As software developers, we love to delve deep into technical matters and write code that delivers value. It’s not a big secret, however, that many problems in software originate with people and not technology. In my experience, the biggest issues arise mostly due to corporate politics, lack of shared values, poor attitude, inadequate communication skills, and, lastly, faulty perceptions.

Ultimately, the way we see the world affects the way we logically reason about it.

Imagine a team of developers and a customer discussing what to do, using agile stories as their starting point. I use the term “customer” to describe the role of the domain expert who prioritizes stories and can clarify what problems a new system is supposed to resolve. Ideally, the customer knows precisely what to program and the team knows exactly how. More realistically, however, requirements evolve both as the team better appreciates the nuances of the business domain and the customer realizes the possibilities and constraints.

But what would happen if both the customer and the development team had a truly open mind and a willingness to be wrong? What solutions would they come up with if they all had a creative attitude and used a language designed to help them restructure their thoughts? I’m suggesting a catalog of practical refactorings and patterns that would add some rigor to anyone’s thinking process!

The great creativity masters can teach us very relevant lessons in this context. Edward De Bono’s “Serious Creativity” book, for example, contains lots of insights and sets the foundation of the first thinking pattern I’m going to introduce:

Extract Concept


You have identified a concrete idea that addresses a given objective.
Extract a broader concept to facilitate the creation of alternatives.

extract concept

Motivation

Extract Concept is one of the most regular techniques I use to deliberately increase my ability to generate alternatives. In fact, it is so basic that, at first glance, it might even seem too obvious. But don’t be fooled. Its mechanism taps into our human talents of abstract thinking, and it is a good step towards sharpening our creativity skills in a disciplined way.

Perhaps the most important benefit is that it forces me to look for alternatives even when I’m fairly confident that the first idea I have is good enough: I’d ask questions such as “this is a way of doing what?” and “how else can this be achieved?” This attitude is particularly important as I know that if I blindly trust my first instincts I may miss tremendous opportunities.

Alternatives must have a reference point: I’d ask “alternatives with reference to what?” A new concept becomes a fresh reference point that can somewhat change my perspective and lead to further ideas.

Mechanics

  1. Define the objective. It might be general or specific, but make sure that you are very clear about what you are focusing on!
  2. Identify one or more ideas relevant to such objective.
  3. For each of those ideas, extract a broader concept by asking: “this is a way of doing what?
  4. See how each concept can trigger further alternatives by asking: “how else can this be achieved?
  5. If applicable, find further alternatives by extracting an even broader concept (a direction) from one or more existing concepts.

Example

Extract Concept Example

  • I start defining the problem: “Provide useful help on our website”.
  • I quickly identify as many relevant ideas as I can. In this case is pretty easy to get a good few of those, but let’s pick 2 of them for simplicity sake:
    • Add “?” icon beside potentially confusing fields to open a popup dialog
    • Provide Email address
  • For each of those ideas, I extract one or more concepts:
    • Using the “?” icon, is a way of answering questions on the same page they arise
    • An email could be seen as a form of human interaction when visitors can’t find the help they need.
  • Using each concept, I can now identify more alternatives:
    • The concept “Answer questions on the same page they arise” leads me to the following ideas:
      • Use the “?” icon to inline-expand helpful hints
      • Add permanent “why?” sections beside each form section
      • Add (light-grey) instructive text directly inside each field (that disappears when the visitor clicks on a field)
      • Add help search section within page
      • Add inline validation (to show error messages within the form before the visitor has the opportunity to click the button that submits the form data
    • The concept “human interaction” helps me finding further alternatives:
      • Phone us (visitor calls us)
      • We phone you (visitor gives us his/her number, we call)
      • Forums (let visitors help themselves)
      • Chat
Tags: ,

Something Worth Doing

Posted February 14th, 2008 by Claudio Perrone

Over the years I have used several productivity approaches, from goal-driven/top-down (e.g. Steven Covey’s First-Things-First quadrants) to more reactive/bottom-up (e.g. David Allen’s Getting Things Done).
I have also used more tactical approaches, such as the 48 minutes rule, which I always find surprisingly effective, particularly when I know I can work for some time uninterrupted.

To beat my worst procrastination habits however, I’m now using another set of productivity weapons: David Seah’s The Printable CEO tools.
In the last few months I started measuring where my time goes during my work day. It is always a good idea to know where you are, before taking corrective actions and get where you want to go, don’t you think? Armed with my trusted TimeLeft countdown, every fifteen minutes I tracked my activities (and distractions) in the Emergent Task Timer. After a while I got pretty used to it.

The form that really got my attention, however, is the Concrete Goals Tracker. David suggests a brilliant motivational approach which comes from his experience in the gaming industry: every time you complete something worth doing, you award yourself points.
In the last couple of years I’ve been doing quite a bit of research on motivational patterns emerged in game development and it is amazing to realize how simple things like adding a score to value our activities can trigger some of the most primitive mechanisms of our brain.

This morning, I thought I could use this system at home to help me focus on the tangible things I can do in preparation to my next talk.
Here is my first draft:

worth doing

Don’t worry if you don’t quite understand some of the items I have written for now. It will all become clearer in the next few weeks. Let’s just say that these are relevant to my talk. The actual deliverables (slides and narrative) are worth 10 points, the goal supporting activities are worth 5 or 2 points, the attitude 1 point.
So what do you think? Would a system like this work for you? In my case, I have absolutely no doubts!

Tags:

Software Developers Are Glorified Translators

Posted February 12th, 2008 by Claudio Perrone

A close friend of mine who works as a developer in a geographically distributed team, recently told me, with extreme frustration, that our profession is doomed and it won’t be long before we will all lose our jobs.
“We just translate user requirements into code”, he said. “Companies see IT as just a cost, we just can’t compete with India and China on a price basis”, he added.

Almost every time I travel to the US I hear stories of IT projects outsourced to India or to some other country abroad. Despite the reported mixed results, the trend is set to continue and it is beginning to extend to Western Europe as well.
Are we going to lose our jobs in the foreseeable future? I seriously doubt. Call me naïve, but I never regarded my job as an expense, although admittedly our financial department may beg to differ ;-)

My friend is right about one thing though: we can’t compete on a price basis. To survive, we need to get hungry again and learn how to deliberately think better, since creating new value is the only basis for competition left to us.

Besides, developers who are not cheap but consistently create opportunities that make or save their employers lots of money are, indeed, an investment. Furthermore, if we consider how hard it is to bring projects to success, investing on people who simply can’t fail is actually a fantastic investment.

But who and where are those talented few? Are you exceptional? Am I? Silence in our head. Let’s contemplate this possibility together for a moment… LOL, nice try! Perhaps we can work on refining our skills and try harder though :-)

Tags:

The Joy of Speaking and the ExpertZone Developer Summit 2008

Posted February 4th, 2008 by Claudio Perrone

I’ll be back to Stockholm in early April, delivering a talk at one of the main IT conferences in Sweden. For such a technology-centric event, it is quite fascinating to see an entire track dealing with the often neglected issues of people working together. We should really give the organizers a standing ovation for such a splendid decision.

My talk is titled “Passionate Teams and Cooperative Customers: Agile tales of creative customer communication“. I have the abstract here for your convenience:

“In this session, Claudio presents stories of effective collaboration, thinking tools and valuable insights that can transform “incompetent” customers and “arrogant” teams into unstoppable forces.

We are getting so used to complexity that we no longer notice it. To bring simplicity to our software however, we need to communicate effectively with our customers, distill their knowledge and bake it into our domain models. Yet, we focus so much on improving our technical skills that we often offer elaborate solutions to the wrong problems, unprepared to deal with a world where perception is far more important than logic.”

If you happen to be at the conference, make sure you attend my session! I bet you won’t be disappointed ;-).

Freddie Krueger The list of stars that will join me at the event is, quite frankly, a tad intimidating (see here).

I always wonder about what drives people to speak in public. Is it the genuine spirit of contribution? Perhaps the publicity and recognition that inevitably goes with it? Is it maybe the excitement of being on stage? It’s probably a combination of all of that and more; my biggest reason, however, is to confront my greatest fears: speaking in public is like Freddie Krueger, a pure nightmare becoming real. In fact, it is the preparation and the waiting for the moment of truth that drives me nuts. All my insecurities emerge all of the sudden, my entire body reacts, and I become absurdly anxious. Then again, once on stage, everything changes completely: I’m on a mission, I’m (over)prepared, I just can’t fail.

So, there you go. It is never easy and probably it will never be. I still haven’t won my fears at all, but the past rewarded me with really good memories (like when, a million years ago, I addressed a group of scientists at CERN for a whole week, for example), and the future will surely hold even better ones.

By the way, have you ever considered speaking in public? There is a good chance that your own community would love you to volunteer on a topic you feel passionate about. If you live in Ireland like I do, this is definitely the case. It takes a lot of commitment, but perhaps this year you could try. Just don’t let your fears eat you. People want you to succeed, don’t you know?

Tags: , ,

Code Is Not Art

Posted January 31st, 2008 by Claudio Perrone

I just read Brian’s post titled “The art of science (or the science of art)“, which reminded me of certain discussions I had over dinner at the workshop in South Africa, particularly with Carli Deysel, from ThoughtWorks.

On the very first evening, as we were talking about our mutual aspirations to change the world and help people in our industry (!), she posed the classic question: Is code art? Is there code that can be considered as such?

She seemed surprised to hear that I categorically didn’t think so. After all, we were just talking very passionately about our profession and the creativity and skills it requires; so why not?

I quickly learned that if you try to debate with Carli, you better have a solid point. LOL, she easily crushed my weak attempts to make my case. Luckily, Andrea Provaglio joined the conversation and supported my view. He pointed out that we can certainly find beauty in code. But aesthetic appreciation alone is not sufficient to define something as “Art”.

In hindsight, my biggest grief with defining code as art, is that code has a functional purpose. It is born to be useful; it solves problems; it creates opportunities. Code is like any “how-to” books: it has a function and a limited time-span.

poetryPoetry, on the other side, is (functionally) totally worthless; we don’t “need” it. I can’t read a poetry book to learn how to do something. Yet, some of these books are simply immortal because they force us to reflect on who we are; they deepen our understanding of our human condition; they may even make us cry unexpectedly while truly touching our souls.

In other words:

If writing software is about problem solving, then code will never be art. At best, we (the developers) create beautiful hammers.

Tags:

Celebrating cultural differences

Posted January 29th, 2008 by Claudio Perrone

The software architecture workshop in South Africa has come to an end. Spending a few days in a beautiful game resort close to Sun City, I worked closely with a tiny group of new and old friends from different parts of the world. As in previous editions, we used the open space organizational framework.

bakubungAs usual, we voiced our opinions, listened, tried ideas and shared stories, occasionally challenging but also consistently helping each other.

On the closing comments at the end of the workshop, Jimmy tried to identify the main theme that seemed to emerge from the dialogs and suggested “cultural differences”. I can’t agree more. I was particularly touched by some extreme stories of titanic struggle while working with certain teams and customers due to differences in attitude, values, ethnic group and gender.

At first, I was vividly shocked. In the past, particularly while working as a consultant, I have been deeply involved in some seriously complex projects, where hostile customers, uncooperative teams and blaming cultures seemed to preclude any chance of success from day 1. Yet, I’ve somewhat always managed to reverse the “natural” course and helped teams succeed well beyond anyone’s expectations.

But these new stories forced me to dig deeper and question my own abilities once again. I thought over and over about what gave me strength in those situations. Why didn’t I just quit? Where those new stories all that different from mine?

Maybe. But, at the risk of sounding extremely preachy, here is a thought. There are no quick-fix solutions to these problems but there is a definite path. To get all the support you need, you have to lead by example, respecting each other’s skills and talents, fully trusting everyone and expecting them to meet that trust. Show integrity and passion, be determined to do what’s right and help others to get there as well. This has nothing to do with being nice. It takes a lot more than “being nice” to develop the will, knowledge and skills to move people for the greater good. I know now, more than I ever knew, that my strengths come from the inside, from being (or, rather, trying to be) principle centered.

When I mention how profoundly “The 7 Habits of Highly Effective People” helped me throughout my personal path, I often hear “Oh, yeah, I read that book” (btw: get the cd first, it is much more effective, imho). But I think most people may not reflect on the hundreds of hours I spent listening to the audio tapes, over and over, learning, teaching to others, and fundamentally reprogramming my behavioral scripts.

I am eternally grateful to those who shared their stories at the workshop; I really wish I could help. I hope to see you again next year, at the latest.

Tags:

Looking Backward, Moving Forward

Posted January 18th, 2008 by Claudio Perrone

I’m just back from Sweden, where I met several folks from Microsoft and our really good friends and partners at Cornerstone. I really like going to Stockholm as people are really bright and welcoming over there!

Tomorrow I will be flying to participate to Jimmy Nilsson’s “European” Software Architecture Workshop…in South Africa!! I know, I know. I’m truly blessed.

2008As you may have already noticed, this year is looking really promising for me already, so I decided to break my stupid own rules and write down my New Year’s resolutions while the enthusiasm is still high.

Write more code

Last year I moved full steam into product management, release planning, agile coaching, strategic development, research, coordination and business development. In other words, I’ve been fighting like a lion, aiming at removing obstacles, mitigating risks, dealing with constraints, creating new ideas and pursuing new opportunities.
There is something horribly missing in this busy picture, however. I haven’t written much production code for the best part of the year. So that’s it? Years of hard work refining “the craft” have been totally thrown out of the window? Guess what, I’m not prepared to let go of it.
In my humble opinion, C# 3.0 absolutely rocks. I spent Christmas playing with Moq and parsing expression trees for a toy(ish) Linq provider I developed! If you just think that all of this is sad, leave this blog now…there won’t be anything for you to see here :-)

Therefore this year
Write tons of code. Production code. Learn, share, help and lead by example. As usual, strive for elegance and simplicity. Be humble, it will be easier to improve.

Simplify

But I also want to help people writing more meaningful code. We like to estimate, quantify, measure lines of code, complexity, coverage, we start the stopwatch, we really want to be faster. Some metrics are incredibly helpful; others are not that beneficial.
If there is one thing that I learned while working in the software development industry all these years however, is that we are so distracted by the details of the solutions that we offer, that we often fail to see that we end up trying to solve wrong problems in the first place.

Therefore this year
Strive for elegant simplicity, being more creative than ever… Simple solutions are often incredibly hard to find and may not be there at all. But do not to give up too quickly. Challenge the requirement definitions, as actual needs are almost invariably poorly understood and defined.

Be Focused

I want to be less reactive than I have been in past year. At times, I have been a slave of Outlook for the best part of my day. It is part of my evolving role, I guess. I tried lots of techniques and addins to cope with the ever increasing amount of emails and tasks that clutter my existence…I know, it is only an excuse.

Therefore this year
Stay alert and curious, but don’t get distracted easily. Be less committed and just involved, or simply let go of things that are not that important.

And finally…

Contribute!

I constantly learn things, from everything and everyone, but I sometimes feel that I’m not able to give much in return.

Therefore this year
Contribute more actively to the development community. Work on some meaningful open-source project, speak and write more often.

Happy 2008!

Tags: