Home > Blog > Agile@Nuxeo: How we do work estimates

Agile@Nuxeo: How we do work estimates

I’m Benjamin Jalon, a software engineer at Nuxeo and in charge of our agile development practices. One of my missions is to keep Nuxeo’s engineering teams nimble and efficient by continually pushing them to improve our development processes and methodologies. This blog will highlight how we strive to meet these challenges and offer guidance to our clients and integrators so they can do the same. As you might know, at Nuxeo like at many quality software houses, we use techniques from Japan and a strange term from rugby.

Work Load Estimate, The Nuxeo Way

How many times in my working life have I heard a developer explaining to his wife that he will finish in ten minutes? How many times have I told my own wife that she can start to cook because I will be at home soon? Enough times to know that developers’ wives eat alone and burn food. So, exactly how can one have a realistic estimation of time required on every engineering task — specifically, an estimation that will provide a sound basis for planning and an accurate projection of implementation time and costs necessary for our customers to integrate a new feature?

The answer lies not in the elements of a single task but in the dependencies that exist within each. This means that a developer must first calculate the complexity of a task. Although he may not know how many hours it will take to complete the task, he knows the complexity naturally. To illustrate, I will walk you through how we make a time estimation here at Nuxeo.

Complexity Evaluation

For estimation sessions, we apply the scrum method (see here) during which all developers who will be part of the project will try to estimate, not the time, but the complexity.

We wanted to drill into our engineers’ minds the question: “What is the complexity?” and let developers forget the time factor. In the past, we used point evaluation, but eventually we preferred to switch to a vocabulary of complexity as I quickly noticed that it was easy for a developer to equate points with time — too often I would hear: “Ok 1 point is 1 hour!” and we didn’t want this.

Our complexity evaluation vocabulary is now standardized throughout the company:

  • Trivial
  • Easy
  • Normal
  • Difficult
  • Hard Core
  • God Mode
  • Linux reimplementation

Hopefully we will never have to execute Linux reimplementation.

Complexity Cost

Teams at Nuxeo are punctuated by small [time based] iterations. Each team has their own rhythm (for Atlantis team and support team, this is 1 week and for Starship team 2 weeks).

During these iterations, the Product Owner (see here) asks to the team to execute a list of tasks ordered. Each day, each developer puts on the post-it note that represents the task how many hours he worked on that task. At the end of the iteration, we have the time spent on each task finished.

But during the week a Nuxeo developer has meetings, support questions to answer, etc. All these tasks that are related to his work must be taken in consideration. To accurately represent these aspects, we determine a fair average and incorporate the time spent in these endeavors into each finished task during the iteration.

We do this by utilizing a google spreadsheet such as this:

Board

Each line represents a task. We have the real time spent column where we record the time that the developer has logged. If you calculate the sum of the time spent we have 70 hours.

And to log the team activity, we note that Laurent and Sun were present the first day of the iteration, 3 developers the second day, etc.:

Screen Shot 2013-07-05 at 11.19.48

In total, 11 days were available. In France we work 7 hours per day (maybe not for a long time :) so for this week, so 77 hours were available. That means that 7 hours have been used on other tasks. We could say that the focus factor of the team was 91 % (even if in scrum the focus factor is not the same). This value is exceptional, but this team was particularly focused in this iteration.

So we spread this additional time spent fairly, as shown here in the last column (time+HS time):

Board2

As you can see, we considered the second task finished in 5 hours, but in actuality, the cost (in time) was 5,5 hours, etc.

We assign each complexity a final cost based on an average of time + HS that is necessary to complete each task. This is represented here where we can track the statistics of each iteration:

Screen Shot 2013-07-05 at 11.22.41

To keep our statistics as accurate as possible we keep a history of results for the last 23 iterations, which helps us deal with estimation accidents (such as a “trivial” task which took 24 hours instead of 3). This is done by simply writing in our spreadsheet iteration after iteration, rotating on this 24 line table.

And for those who like pictures the process can be visualized in this way:

repartition

In the end we can easily see how a complexity is assigned a cost:

Screen Shot 2013-07-05 at 11.21.57

A “trivial” task costs 3 hours, an “easy” costs 9 hours, etc. With this tool, we speed up our estimation session based only on complexity of tasks to do. I then translate the complexity into time.

And now developers’ wives can eat warm food with their husbands.

Next up, we’ll see how we manage our planning.

Note: In the team activity spreadsheet, to count the x’s, I use this spreadsheet function: =COUNTA(L2:AC6). This gives a count of non-empty cells between L2 and AC6.

Nuxeo Document Management
Document
Management
with the
Nuxeo Platform Watch the webinar >
  • http://www.areyouagile.com Pablo

    Hello,
    Cette approche ne serait-elle pas une façon complexe de dissimuler l’équation X story point = Y man day ? Et dans ce cas s’agit-il toujours d’une approche agile ?
    Bye

  • http://profile.typepad.com/bjalon bjalon

    Salut,
    En effet c’est une façon de présenter comment nous faisons le chiffrage. Le chiffrage est malheureusement une activité qui nécessite de sortir de notre organisation interne.
    Nous avons besoin de cet outils : nos clients ne sont pas armés pour fonctionner avec nous pour faire du Scrum. Nous n’avons pas en face de nous un PO, mais nous avons des cahier des charges ; nous n’avons pas de user stories mais des références dans le cahier des charge ; etc… Nous avons conclus que nous devions traduire notre activité en terme compréhensible avec nos clients, sans tricher. Et ces métriques que j’obtiens dans cet article sont au final destinées à nos clients.
    Ceci dit, je touche un autre sujet dans cet article qui me semble intéressant et qui a orienté notre organisation : le vocabulaire de complexité qui, pour moi, semble un élément intéressant de fonctionnement des équipes.
    Ceci dit, je n’ai pas voulu parler en premier de notre organisation interne qui utilise les canons de la démarche agile. J’ai aimé commencer à traiter cette transposition monde du temps (rassurant pour nous clients) vers le monde de la complexité qui est le vrai langage du développeur.
    Dans mon ticket, je ne fait que survoler mon sujet, mais comme on dit, je vais essayer d’expliquer itérativement comment nous fonctionnons chez Nuxeo.

  • http://www.cuclapita.com directory

    I just want to say I am just new to blogging and site-building and really loved your website. Most likely I’m going to bookmark your blog . You definitely come with excellent articles. Thanks for sharing with us your web site.

  • http://www.sexovisa.com have a peek at this website
  • http://www.buishappy.com click for info
  • http://talent.pl/portal/Profile?username=aanbssdy karmagra

    Good post. I absolutely appreciate this website. Keep it up!

  • http://www.hot-porn-site.com/21/penetrando-el-chocho-de-una-escort-colombiana/ read website
  • http://www.sexo-cam.com/9/corrida-en-la-boca-de-suhaila/ follow this page
  • http://www.2014PandaSeo.com/ seo

    Hello Web Admin, I noticed that your On-Page SEO is is missing a few factors, for one you do not use all three H tags in your post, also I notice that you are not using bold or italics properly in your SEO optimization. On-Page SEO means more now than ever since the new Google update: Panda. No longer are backlinks and simply pinging or sending out a RSS feed the key to getting Google PageRank or Alexa Rankings, You now NEED On-Page SEO. So what is good On-Page SEO?First your keyword must appear in the title.Then it must appear in the URL.You have to optimize your keyword and make sure that it has a nice keyword density of 3-5% in your article with relevant LSI (Latent Semantic Indexing). Then you should spread all H1,H2,H3 tags in your article.Your Keyword should appear in your first paragraph and in the last sentence of the page. You should have relevant usage of Bold and italics of your keyword.There should be one internal link to a page on your blog and you should have one image with an alt tag that has your keyword….wait there’s even more Now what if i told you there was a simple WordPress plugin that does all the On-Page SEO, and automatically for you? That’s right AUTOMATICALLY, just watch this 4minute video for more information at. Seo Plugin

  • http://www.ige.com The best wow gold sales on Australia

    Back when i instructed a few The best wow gold sales on Australia I could declare I’d been relatively fired up, every bit as Now i’m everytime Simply put i order them. When My spouse and i have been given these individuals I felt fairly disappointed. I got these individuals bigger 9 with regards to were left with a good sizing this was first equivalent to the thing are usually discovered on the base from bigfoot, for the reason that The best wow gold sales on Australia happen to be too colossal and much a little too wide-ranging. Although they had been superb Simply put i looked wholly stupid sending each of them. Without a doubt, it happens to be a little something instantly repaired, obviously changed him or her on the grounds that above was too big. Which means, quite some time shortly after My husband and i gained consumers and they fit perfect. Having been cheerful until they are I recevied pointed out that the particular button in the software was missing within one for this The best wow gold sales on Australia as well numerous you a hole involved with it. Consequently, I just now gave up also plonked them all outdoors. My husband and i weren’t only going to be squandering any more pertaining to time.

  • http://forums.socialblade.com/members/3394-benek71 Sprawdź

    With my youngest at violin lessons twice a week and the oldest getting really into her aquarels at the moment, http://www.handy-hilfeforum.de/members/26117/benek71.html Dobro więc niebyło żadnego występku albo mniej uczynił nad tą materyą rozwodził, osobliwie w naszej dotrzymamy,

  • http://www.plumppornstars.com/18/cibersexo-con-una-jovencita-tetona/ see this

    I just want to tell you that I am just new to blogging and site-building and honestly savored this blog site. Almost certainly I’m going to bookmark your website . You absolutely have perfect articles and reviews. Thanks a bunch for sharing your web site.

  • http://www.kiwibox.com/hunterw13z/blog/entry/119889153/things-specialists-have-to-say-about-roofing-shingles/?pPage=0 Camelia

    Hey, you used to write magnificent, but the last several posts have been kinda boring… I miss your great writings. Past few posts are just a bit out of track! come on!

  • http://fi.wikipedia.org/wiki/Kirjasintyyppi sparta

    You made some good points there. I looked on the internet for more
    info about the issue and found most individuals will go along
    with your views on this web site.

  • http://jjj Ralph Osuch

    Opinie znalezione na http://ogloszenia-lubelskie.pl

  • http://articles.rc54.ru/node/7308 locate an ip address

    I have learn some just right stuff here. Definitely worth bookmarking for revisiting. I wonder how much effort you set to create such a magnificent informative website.