Archive
Ayez le Scrum Robuste!
Scrum n’imposant rien sur le plan technique, une dérive couramment constatée est un manque de rigueur par rapport aux pratiques d’ingénieries utilisées par les équipes de développement. Par exemple, l’omission de tests automatisés lors de l’évolution de projets informatiques rend généralement de plus en plus difficile l’atteinte de l’objectif de livraison de qualité “production” au fil des itérations. Martin Fowler a nommé ce phénomène le Scrum Flasque.
Le cours “Professional Scrum Developer” offert à Pyxis vise à contrer ce problème en replaçant l’emphase sur les bonnes pratiques de développement essentielles à l’atteinte des objectifs de Scrum.
Le développement piloté par les tests (TDD)
Nous avons pu mettre en pratique le TDD dans toutes les facettes de l’application, aussi bien pour le développement en tests unitaires qu’en tests clients (bout en bout). Ceci nous a permis de nous rendre compte qu’il est possible de couvrir la quasi totalité du code par des tests automatisés. En conséquence, le code obtenu est robuste, explicite et diminue le stress du développeur qui sait que ses changements seront plus faciles à implémenter dans le futur.
Choix technologiques
Certains choix technologiques peuvent rendre difficile, voir impossible l’application des bonnes pratiques et donc l’objectif de Scrum Robuste: la livraison itérative de logiciel de qualité. Il est par conséquent essentiel de choisir un ensemble d’outils (langages, cadres d’applications, environnements de développement) qui supporte convenablement ces pratiques. Un exemple parmi tant d’autres, le cas d’utilisation étudié durant la formation utilisait une librairie de rendu visuel légère et testable. Ceci nous a permis de facilement tester les vues de manières unitaires, ce qui est malheureusement rarement possible…
Elimination des mauvaises odeurs de code
Les mauvaises odeurs de code (aka Code Smells), comme par exemple les duplications ou les classes géantes, sont des causes fréquentes de difficulté à maintenir une base de code et d’une réduction de la vélocité des équipes. Le cours nous a permis dans le cadre de la pratique du TDD, de veiller à enrayer en continu, par le “refactoring”, ces mauvaises odeurs.
En conclusion, il faut garder à l’esprit que Scrum ne suffit pas en soit à livrer du logiciel de qualité. Scrum doit nécessairement être entouré de bonnes pratiques de développement, telles que celles enseignées durant la formation pour éviter de sombrer dans la flaccidité.
Allez-y, soyez robustes du Scrum!
Marc-André Thibodeau et Gaël Luisier
Between a rock and a hard place – The managers in an agile transition
I bumped into Steven last week. Steven is director of application development in a large organization and like most manager in his early forty’s, he looked tired and although he is usually a happy individual, his smile wasn’t radiant this time.
In agreement with his teams, Steven initiated an Agile transition a few months ago. I was part of the team who presented to Steven the benefits of a transition and the impact on the team members and their managers. I saw Steven again in a group training I was giving a few weeks after the beginning of the transition to managers and executives. That time again, Steven was very excited and motivated about what he was hearing, except that during the training I could see the light bulbs over his head and in the questions Steven was asking – how is this going to impact my role as a manager? Steven saw the obvious benefits and understood some of the changes he would need to make to his leadership style but I could tell, it hadn’t fully sinked in.
So here we were, less than 3 months in the transition and Steven wasn’t as chipper as he used to be…
- Me: “Hey, Steven. You look tired. How are you doing?”
- Steven: “I’m OK… I’m tired… [silence] The transition is killing me!”
- Me: “How so?” [I asked anticipating what he would tell me next]
- Steven: “The team is having a blast and I can see their performance has increased compared to the past but I don’t think I can cope with this new approach”
- Me: “You seemed so excited about the transition when we started. What changed?”
- Steven: “I now realize what you meant when you talked about changing my leadership style and my role. I’m still up to the challenge but my boss is totally clueless about all of this”
- Me: “What do you mean? Haven’t you brought him in the loop from the beginning?”
- Steven: “Yes. Yes, I have but that’s not the problem. The team’s performance increase is directly linked to the new approach they have been using and the fact that I leave them a lot of autonomy but my boss still asks me to behave like I used to – like he manages his team today. That’s where it hurts the most. I can pretty much deal with everything else but I feel like I’m stuck between a rock and a hard place”
Unfortunately, we (as consultants) do not do such a good job at highlighting this fact before we begin a transition. We work closely with the teams to help them adopt better methods and practices, to increase their overall performance by allowing them to be self-organized. We work on getting the teams to a highly performing level. Then we go get executive sponsorship to secure the initiative (and the budget) and make sure we get support to handle difficult issues but what about the people in the middle?
We develop training programs for Agile managers and we support them with organizational coaching but we don’t do such a good job at telling them upfront how much pressure they will be under once the transition begins. How much their role is likely to change and their leadership style needs to be adapted to the new reality.
For those who haven’t yet have felt the pressure, here are some examples of what to expect:
- You may be willing to trust your team and let them self-organize but is your boss in agreement with this new approach? Will he be as involved (micro-managing) in your activities as he used to be? And more importantly, will he be expecting you to be as involved with your team as you used to be?
- You may be willing to tolerate mistakes in order to increase your team’s learning and with a strategic perspective to increase long term performance but will you hear about your inabilities to control your team during your next performance review?
- You already produce status reports, dashboards, emails and others information to keep everyone (including your boss) informed of what is going on in your unit. Will you need to translate everything that the Agile team is producing to fit the traditional reporting mechanisms? Can you challenge what information is currently being produced to ensure it does bring value to people?
- You expect your team members to handle the details of their activities and you believe in actually seeing (touching, feeling) the end results while your management team expects you to assess progress using Gantt charts. Do you need to educate your entire organization to the new approach? Does the fact that you are adopting Agile make you the evangelist for the entire organization?
Obviously, I don’t mean to scare anyone – especially the managers – with regards to adopting Agile. The approach has a lot of merit and value for many organizations but in order to help with adoption, coaches and consultants need to pay attention to the people in the middle and help them find their new place, otherwise we are very likely to find serious resistance and potential failure of such initiatives – nobody likes to be stuck between a rock and a hard place…
You might be interested in these related posts:
Where is the turtle heading?
Now that the vacations are over and that the 2010 Agile conference has come and gone, Team Urban Turtle is back to work, cooking up another promising release 3.4.
With the release of the Scrum template from Microsoft came a Removed state, making it necessary to propose a recycle bin feature to our users. The next version of Urban Turtle will therefore include a recycle bin icon at the top of the iterations and areas panel. Users will be able to drag and drop items onto it to set the state of selected items to a configured deleted state. It will also be possible to view deleted work items by clicking on the icon.
The team is also working on a select / unselect all option to flag or unflag all iterations and areas as favorites in one click.
We have several more interesting features in our backlog, some of them coming from customers who voiced their opinions and proposed suggestions on our community-powered support site. Thank you all for your support and keep those suggestions coming!
} Dom
Lean Startup: Interesting conference by Eric Ries
There will be an interesting conference on Lean Startup by Eric Ries at SXSW. Eric asks 5 questions everyone involved in building new products (or any market offerings) should ask frequently. Answering these questions is not as easy or obvious as it sounds. It’s even more important for mobile development as product lifecycles are very short and spending too much effort on a bad or average product might have high impacts (opportunity loss). I’ll reuse these questions in coming blogs and apply them specifically to the mobile market. To read these questions and vote for Eric panel, visits http://panelpicker.sxsw.com/ideas/view/8270
Agile 2010 Conference – Day 1
I went to my first Agile Conference! I guess I’m always a bit uneasy when I’m surrounded by people who more or less think the same way I do. On the other hand, it feels great! It’s a stark contrast from what I’m used to – you know, being surrounded by Architects, DBAs, PMOs and project managers who a waiting in the wings to save the day when this “Scrum thing” fails.
So for five days, I dove in the pleasant warmth of my fellow agilists and shared ideas, laughs and a few drinks. Attending the wide variety of sessions was my preferred activity and a great opportunity to listen, participate and learn.
Enough chit chat, let’s get right into it…
My first session was “Leader’s Workshop: Making Change Happen and Making it Stick” with Mary Poppendieck. I won’t go into details so here are a few points…
Mary states that to encourage change, one needs to provide:
1- The proper kind of motivation
2- A clear direction
3- A supportive environment
So what motivates people?
Mary references books such as Switch, Drive and that great video by RSAnimate
A very interesting point is to manage employees as if they were volunteers. With money being out of the equation, what needs to put in place and maintained to keep motivation at a high level? What keeps a volunteer motivated?
- A clear purpose
- Structure and guidance
- Successful project
- Ownership
- Autonomy
- Bragging rights
- Mastery
- Constructive dissonance
What I take back from this session
You can throw all the cash you want at your problems and they still won’t go away. If you want successful projects, hire smart people, offer them a clear direction, a few rules, and get out of their way. Smart people will find a way to make it work.
Lean Startup : Early lessons from the market
Agile in a Command-and-Control Organization : What to do when upper management forces overtime?
My colleague François Perron launched a very interesting discussion on our private wiki – “As a coach, what to do when executives and upper management force the project team to do over time in order to meet deadlines?”.
As you can probably guess, this initiated very interesting discussions and an obvious reaction to such an approach.
Everyone agreed that due to the project visibility and the position of the organization within its market, the project launch date was critical. Everyone also understood that the organization had very few options so nobody debated the need to achieve results. The discussion was strictly around which measures to use in an Agile context.
I’ll admit up front that I am biased toward intrinsic motivation (I really loved Drive by Dan Pink) and the fact that it is well suited for an agile environment.
As such, my first impression to the conversation that was going on were:
- Does the organization wish that employees spend more hours at the office (attendance) or would they prefer more engagement (commitment)?
- If their choice is to increase the hours of attendance, imposing overtime will achieve this goal while giving them a false sense of increased performance. People will show they are working longer hours but the real throughput is unlikely to be much higher. In addition, software development is a brain intensive activity and reducing the amount of rest people get is likely to increase the number of mistakes they make.
- On the contrary, if the organization wanted more involvement, the inclusion of team members in determining the best way to achieve the results would probably come to a better decision – even possibly leading the willingness to do over time
It appears to me that by forcing overtime, the executives and senior managers will probably collect their bonus and congratulate each others in the short term only to realize in the longer term that they have simply pushed the problem forward for others to deal with – and possibly request more over time in the long run.
You might be interested in these related posts:
Lean Startup Applied to ACS
Applying Lean Startup principle to Android application development
Creating good and successful mobile applications is something you learn from the market, not by reading books on how to do wonderful technical tricks on the phone. But getting an application to market is a complex endeavor which requires a level of polish to avoid bad ratings and thus, killing your good product before its even used. So, even more for mobile apps, getting to the market fast and providing constant releases with small improvements to your customers is a key to success. Agility helps us on two axis: customer development and product development.




