Saturday, November 22, 2008

Italian Agile Day 2008 First Impressions

First of all... wow 400 people, definitely a success and a huge growth from the former editions. It was very interesting and an occasion to meet so many passionate professionals (among them, after some long-distance debates I finally met Gabriele and Matteo in the flesh).

Pity that workouts were sold out virtually two seconds after the registration process started... I hope we'll manage to contact the speakers and get some materials.

The meeting was very dense, I barely had the time to breath between sessions. Maybe a little more relaxed schedule could leave you some time to interact with speakers and panelists on a face-to-face basis for better to clarify some doubts or to go into topics thoroughly (after all, culture is acquired in cloisters and not in lecturehalls, as I was brilliantly told in my youth in Politecnico that is forgotten).

That said it surely was a positive experience. The introductory panel dealt with the apparent dichotomy between pragmatism and agile; after an interesting debate Simone Genini pointed out the Agile Manifesto as a very good answer to the "where's the path?" question. Very interesting insights by the other panelists (Stefano Fornari and Paolo Polce) as well.

Not having the gift of ubiquity (I actually do have it, but if you discovered it you'd be envious so I always try to hide it) I could not follow everything I'd have liked, so I'll just talk about the six sessions or experience reports I attended to.
  • Agile come strumento efficace per la gestione dei progetti: interesting (and necessarily very light) introduction to risk management and some ways in which agile helps to deal with it. I was very happy to see that Simone gave many bibliographical references (pity I just bought three books on project management so I'll have to defer them a little).
  • Funambol: introducing SCRUM in software product development. Edoardo presented a synopsis of their transition to a waterfallish method to a "scrummy" one (transition in progress, we're working for you). Very interesting because I could really appreciate the power of the tools that Scrum gives us, as reading their burndown charts I just exactly knew what was happening even if I had no clue of Funambol and their teams before today (one for all, they choose stories that were too big).
  • First coffee break: a queue worse than the one I normally experience when commuting. Actually I didn't attend to it :-(
  • SCRUM-W: quando si maschera waterfall con Scrum. You instantly know when someone is used to presentations, and Luca surely is: no bullets slides, creation of expectations, clearness of exposition and knowledge on the topic.
  • Non si impara solo dai libri: la nostra esperienza di Mentoring. Matteo (see link above) reported two mentoring experiences in two very different realities: the first one in a loose environment and the second one in a highly structured one, and he explained the different approaches used.
  • Second coffee break: this time we really did it! probably many were discouraged by the morning experience...
  • Processo al database server relazionale: very funny drama (after all it was an experience report based on a true story) with very good actors performing a trial. Database was convicted in the end, even if I'm sure, as someone said, that tools are innocent and people are guilty
  • Il nostro metodo per piccoli team con molti progetti da gestire contemporaneamente. I arrived eager for answers, as that's just what we face each and every day, and I was quite disappointed when Claudio said, just a few seconds after starting, that he didn't have any. Luckily what he really meant was (at least that's what I understood) that he hasn't developed a great theoretical meta-ultra-mega-iper-method but he has found a series of practices that help him, his team and his customers. I wish our customers were like his... but complaining is useless, it is our job and responsibility to teach them.
More and more will follow on the Italian Agile Movement freshly refactored site.

What now? to quote Mr. Shin, passion!

Thursday, November 20, 2008

Italian Agile Day 2008 Last Reminder

Looking forward to meeting you all there tomorrow.

Wednesday, November 19, 2008

NetBeans 6.5 is available for download

Version 6.5 of the popular IDE is now available for download here. This version also includes an anonymnous usage statistics collector about high level features for better to help developers to steer the project on the basis of the real usage.

Monday, November 17, 2008

Logs are there to be read

If your application produces a new folder whenever it generates files AND writes an application log, it is NOT enough to check if the newly created folder exists to infer that all went well.

Example given, last time that we were following an issue (apparently) concerning missing data we discovered that the operator - who fired the missing data issue - had started the elaboration but did not check the logs. If he did he would have easily discover that the log was truncated not only in the middle of the elaboration, but also in the middle of a row. If he also checked the system log he would have just as easily spotted a system crash with subsequent reboot. And he would start the elaboration again. <irony>And he would not have dared to disturb us</irony>, but most of all he would not have alarmed the customer, leaving him with some doubts on the integrity of the system.

Unluckily, logs are just another thing like manuals: nobody reads them. I wonder whether there's an equivalent for RTFM... RTFL? No, that's not ROTFL, just the opposite...

Thanks to Antonio for letting me shoot his logs.

Single Choppable Neck

That's a good definition of the Product Owner... and as an add-on to last post, he's the one that gets the blame when he takes bad decisions. This time the product owner choose to prioritize a quick deliver instead of focusing on requirements, and this was not a happy choice. Luckily, his head has not been chopped and it is not going to be, but surely this taught him something.

Unluckily, the Product Owner is also the one who gets the blame when decisions were good but the outcome wasn't. Moreover, we have to remember that a bad decision is better than no decisions at all, as bad decisions can (almost) always be reversed, and that we firmly believe that everyone is always doing (trying to do) his best.

So what's the point in being a Product Owner? well, it is true that you have to carry the burden of insuccess, but you also are the shining star in case of success. Nevertheless, it is quite difficult to find someone who is willing to play this role when you're transitioning to Scrum, because of that axe always lurking above. Even more difficult when the Product Owner is an external customer.

The only way we have to persuade people is to educate them, showing that we are not looking for a single neck to chop, but we're looking for someone that could help us to reach a truly win-win situation.

Friday, November 14, 2008

Stakeholders and Requirements

Use cases are a widespread adopted technique for recording requirements. One of the sections (in the Cockburn format) is named "Stakeholders and Interests", and it reports... stakeholders AND interests. ALWAYS use it. Forget a stakeholder and you'll miss his interests, and as you can guess this is NOT good.

Cockburn uses a candy machine as an example: you interact with a candy machine to get a candy, so you're the user. If the manufacturer did not hold into account the interests of the seller (make money out of selling you candies) the candy machine would not ask you any money, but would give you free candies. That would make you happy, but it would make the seller unhappy. It would be very expensive to recollect all the candy machines on the market, go back to design, build new machines and redistribute them, let alone all the free candies gone with the wind.

The same happens with software, and it is a worse phenomenon as it is much easier to forget a stakeholder.

I recently witnessed a situation in which the headquarter superimposed a software to other offices without taking into account the real needs of the final users (yes, it holds for both extremes) but oversimplifying the business model. That was not an act of power nor stupidity, it simply was what they thought was best - and they had their reasons. Unluckily now they're back to formula, and a meeting has been scheduled to gather more requirements that can satisfy these stakeholders. Everyone would have saved a lot of time, and a lot of money as well (as one of the latest activities was an almost pointless meeting with more than twenty managers).

The problem was magnified by the fact that the software was a tool to use in a change management process, namely the first step to computerization and standardization of workgroup activities, which is already noteworthy per se. And, as change management involves people, it is never easy nor simple, as people normally resist changes. This time the persons involved (that were stakeholders AND users) did not understand the message (one of the reasons for resistance) because it was not conveyed in their language, and that brings us to another consideration.

Eric Evans asserts that everyone involved in a project should speak the very same language (he calls it "Ubiquitous Language"), and that a great investment has to be done in discovering and defining it: it will definitely pay off. Do it. It is the language that drives development, understand the language and you'll understand the requirements, thus you'll deploy more suitable software.

So to summarize: do not forget any stakeholder AND find a common language.

WordPress cats and tags

Wow, you can automagically turn selected categories into tags... Last time I made a blue, now I see where categories fit in... Looks like the inverse is not possible, but maybe I've not explored enough... I will :-)

Thursday, November 13, 2008

DownThemAll!

DownThemAll! is a very useful Firefox extension that lets you download all the links or images contained in a web page, with powerful filters and stuff.

After some months of use I almost accidentally found that you can also specify patterns for downloads using batch descriptors, e.g. if you want to download all pictures from #10 to #25 from your gallery you would use the following URL:

http://your.domain/path/to/gallery/picture[10:25].jpg

Detailed requirements: a never ending story

In an article about selling your IT Projects to Executives the author quotes a former managing director and global CIO:

User requirements, no matter what the development style, must be rigorously developed, detailed and documented.


While I think that it is perfectly true for big companies like Credit Suisse First Boston, where he worked for 18 years, I still am persuaded that it doesn't apply to every situation, though I hope my bank gives very detailed requirements to developers and that they have a very deep QA process in act (I also read from Symantec that banks spend about 10% of their IT budget in security).

But... where's the point of having 600 sheets of paper and 0 lines of code? Surely the requirements eliciting process can provide customers with real breakthroughs and give them a much clearer view of their processes and needs, but it all seems to end with that...

Iceberg approaching?

According to this article Sun is going to face the same adventure Titanic did a long time ago. The worst thing is that everything seems unavoidable, despite what Sun says. To quote from the article:

Do [they] know something we don't? Or do we know something they don't?

I heartly hope for the former...

Just Another WordPress Weblog

I finally gave up... surrounded by tons of WordPress addicted, I decided to give it a try myself, so I downloaded, installed and configured Apache, php and mySQL (with some pain in the b...ack trying to persuade Windows that extensions really are in the c:/php/ext dir).

Finally I got my installation working, as the picture clearly shows. Now what? well a tour in the administrative pages is due, so... hey there's an import feature! Will I manage to get a local copy of my blog on Blogger? The system says it's supported, so I won't spend time with anything, just gotta try this one. Everything seems fine, wp tells me that I must tell Blogger to authorize my local installation, I do it and... well...

Unable to find the socket transport "ssl"- did you forget to enable it when you configured PHP? (0)

I think you can say you forgot to something when you knew you had to, but no time for details... let's go to php.ini... decomment extension=php_openssl.dll... argh it does not work... stop service, start service... yuck! 0 post out of 146, 0 comments out of 10... Import? Import! Importing... importing... importing... (I got a 44k dial-up, no ADSL on the whole territory)... 14 out of 146... I also get the feeling that the download stops every 5-10 posts or so, but maybe it's my wonderful (...) Internet connection. No need to wait till the end, let's go check the first posts.

Everything seems ok, pictures are imported as well. For some strange reasons Blogger tags are called Categories in WordPress, while WordPress tags seem to have no correspondence in Blogger, but more or less my local backup is growing into shape.

Obviously I won't get Blogger Widgets, but as most of them are javascript supplied by other parties (e.g. the Italian Agile Day Banner) it shouldn't be very difficult to fit them into WordPress.

More on this will follow.

Thursday, November 6, 2008

Star Wars revisited

Hey this guy is a genius...



Well, as matter of fact all musical credits go to moosebutter, but the video version really adds that extra bit.

And, after the elections in the USA, some spots for the elections in the galaxy:

See more funny videos at Funny or Die

Wednesday, November 5, 2008

Is software quality expendable?

This is one of tose questions that has been around for a very long time. A recent study from Original Software shows that it will probably stick around in the next years, as the world of CIOs appears splitted in two: 46% of CIOs think that quality has a very important role, while 41% sees it as a "nice to have quality" or even as a necessary cost.


I'm not a CIO (yet) but I have a very clear opinion on the matter.

Many CIOs have a special bend for asking "low cost working software, ready for yesterday". The problem is that the real cost associated with software is not writing it, but - even after a considerable amount of time - reading it for further modifications, bug fixing, evolutions, refactorings, etc. Leave that mess now and it'll cost you much more tomorrow. Software becomes kippleized (read this book for more infos on the term), someone says this happens even if you're not touching it and, mostly, when you're not watching. Bad quality software makes your technical debt increase, thus increasing the cost of software. Add the fact that most of the time you're modifying existing software rather than creating fresh new applications and you'll have an idea about the huge impact this debt can have.

And... is that low cost software really working? The forces involved in software development are intertwined, so you can't modify one without affecting the others. Literature normally refers to time, scope, cost and quality. Cut time and cost and guess what happens.

Another very important aspect, albeit disregarded by CIOs, is that developers love their job (well most of them do). We try to do our best, and we are proud of it. We are not satisfied when time is cut and cost and scope are kept fixed, as quality necessarily drops. Nobody wants to produce sloppy code. Nobody wants to be forced to produce sloppy code. Somebody might even think to move to another company, which, again, means a non neglectable cost. That could even start a trend, and you can see a company slowly transforming into a sinking boat. I'm probably going too far, but it is just for the sake of clarity.

The whole study can be downloaded here (some informations required).

Scrum Mind Maps

These are the mind maps we produced during our Scrum Master Certification Course (thanks to Pietro for posting the original photos).






They have been drawn iteratively, i.e. after our initial draft we started circulating between tables and inspecting the work of other groups. They are a very clean example of how a small set of simple techniques like Scrum can be perceived and represented in very different ways.