Sunday, February 15, 2009

my return of experience on AGILE projects

The thoughts below are based on the syntheses of my own experience of 3 years project management, many books and blogs, and finally on the Tech-Ed 2008.

Having being interested in AGILE for a few years by now, and since I had the chance to compare a 1.5 year non-Agile project management and 1.5 year AGILE -one, I wanted to share some experience.

How to ensure an AGILE project to go bad ? It's simple : if you apply the Agile techniques dogmatically, without thinking by yourself !

In the past, I only picked up few elements from the AGILE methodology in my projects, and never claimed to use The AGILE methodology. However, as soon as I tried to make it more Agile on a 6 people team, I was facing some of the problems presented below.

1. Enforce a daily Scrum meeting “by the book” where each person speaks in turn to answer the 3 questions. For our team, tt appeared that only few and minor problems came out of during those meetings. Crutial problems suddenly appear after few iterations (e.g people hating each other, ...). Why? the team was asked to speak in turn, that’s what they did, without really admitting in front of others their problems. Solution: I could probably come out with better solutions, but those two below worked. On top of daily scrum, I added

- non official ones (pubs, coffee, ..) where real problems could be raised unofficially. It enabled to reveal fundamental problems (addressing those problems is another story!).

- a one-to-one interview

2. Deeply involving the client in the iteration process : The good side of it is that we are sure that the application’s fundamentals are implemented. The dark side is that, since we are using “software factory” with 3 platforms (development, integration and production) each delivery has to go thought many phases and tests, which is good … until the customer wants more frequent delivery for good reasons. As a result, instead of a 2 weeks' iteration, I had to deliver every second day, if not every day. Problem? This is leads to unhappy customers facing a bad quality and unstable version to meet the schedule. Moreover, the whole team was spending time in testing and releasing instead of developping new features. Solution: easy! Since it was agreed to perform a fortnight release, I should have refused from the very beginning to deliver within a shorter period of time.

Why those problems ? One of the reasons was that, at that time, I knew too little about SCRUM !, and second, because Agile methodology is like a recipe, with 3 phases:
1. Simply apply exactly what is written (however, you don’t exactly have the same oven, you don’t have exactly have the same ingredients, …)
2. Based on the recipe, you could customise it to have something suitable to your customers
3. Once you have a lot of experience, don’t follow any recipe : follow your own way
To me, in order to achieve a successful “AGILE project”, is to do “agile project” where sentences like “in Agile you must / have to do this and that” should be avoided. According to one of the “creator” of agile methodology, the second and third case should be reached, i.e. have some experience/maturity and be flexible to adapt to the customer’s environment changes (e.g. changes in law regulation since the beginning of the project, new innovative ideas were found after the few first iterations, …). If you simply apply AGILE methodology exactly according to the book without analysing what is written “between the lines”, the project will probably lead to a failure.

Tech-Days 2009 in Paris

Hello, a quick feed back on the Tech-Days 2009 in Paris. Excellent Keynote : the demos are dynamics and funny you could find the video here.

Although, I attended only one day out of the 3, I was really looking forward to find out what other new technologies Microsoft is preparing for us : Surface, Windows 7, Visual Studio 2010, Microsoft Solver Foundation ...

It's also a great opportunity :
. to meet previous colleagues and keep in touch;
. to encourage Winwise speakers that are presenting more than 20 sessions in only 3 days !

Great stuff... except at some point, where I must admit, I was unlucky enough to attend an awful session that I left 10 min after it has started. To be polite, I will not mention the session that would have been good for beginners ... 2 years ago ; moreover, since it was classified as "expert" either many people left the session too or sarcastic comments were made.

Among the top quality sessions, I wanted to mention a great one : it's "Coding for fun", with WPF, XNA, Wiimote. The name of the session speaks by it-self : totally unusefull code, but so much fun in designing and coding them, it's real a challenge for the brain to develop such applications. I loved it !!

I wish I could have attended more sessions... nevermind : I'll do it better next year.

October 2008 : Tech-Ed EMEA 2008 in Barcelona

Here we are in Barcelona !! October 2008 : Tech-Ed EMEA 2008 in Barcelona (Europe Middle-East and Africa).

I know, it is really sunny, however, we (as Winwise) are here to work hard on the latest Microsoft technologies during these 4 days conference.

After the usual Keynote, I started directly with one of my favorit topic :
"Best Practices for Managing Projects with Microsoft Visual Studio Team System", where I found my God : Joel Semeniuk, a MVP - Regional Director, very funny that presents us real user cases, not the ones that comes out of the book. That was great !!

So many interresting sessions given by visionnary speakers (The Future of Unit Testing by Roy Osherove, AGILE, ...), but I think it would be boring to mention them all.

For the non interresting ones, with my average of 5 hours-sleep, I just escaped to have a 30 min rest on the beach.

Here is the team sent by Winwise (many many thanks Olivier Bourdin !!) :
Picture on the left Daniel Tizon (Regional Director), Audrey Petit, Julien Tournadre, Davy Frontigny, and my-self on the left hand of the second picture.

Team Tests : Load tests with VSTS 2008 Trial

A little story about some Load Test with VSTS 2008 :

I already had Visual Studio 2008 developer SP1 installed and I desperately needed to install Visual Studio 2008 Team System Team Suite Trial (on the Load / Web tests aspects). Here are the steps required.

1) First :

. Spend a lot of time installing VS 2008 dev + SP1 (and SQL server 2008, etc)
. upgrade it to the Visual Studio 2008 Team System Team Suite Trial

At this step, the "Load Tests" will not work, and you will have the following problem : the new templates (Load Tests, Web Tests, …) will not appear automatically. You will have to execute the command line :

devenv /installvstemplates

2) Second : At this stage, the "Web Tests" will work but not the "Load Tests", as the following bug will appear :

Could not run load test 'LoadTest1' on agent 'NameOfYourComputer': Method not found: 'Void Microsoft.VisualStudio.TestTools.LoadTesting.LoadTestScenario..ctor(System.String, System.Collections.Generic.IEnumerable`1)'

Luckily my colleague Etienne Margraff (a Visual Studio and TFS guru) suggested me to simply run again the VS SP1 (it just take ages to reinstall it !!).

3) Finally, I did re-install VS SP1
Then, I launched again the Load Tests, and .... here you go, it WORKS !!

Hope this post will prevent someone from being stuck for days trying to solve the problem.

PS :
I mentioned "stuck for days" on purpose and not "stuck for hours" because you will spend hours in re-installing SP1 ;-) !!!