Getting the most from your daily stand-up meetings

by Xavier Pacheco 2. March 2010 09:50

Most meetings, I loathe. Often they are drawn-out, not really useful except to maybe a few attendees and there are always those who seem to enjoy the platform to give their long-winded speeches. That said, meetings I actually enjoy and find very useful are Stand-up meetings.

Stand-up meetings are brief meetings held daily and typically at the same time and place where team members can report on their status on a given project. Typically, each member reports on three specific items. These are:

  1. What did I accomplish yesterday?
  2. What am I going to attempt to accomplish today?
  3. What problems am I facing?

Stand-up meetings are deliberately kept short, usually from 5-15 minutes. When meetings go beyond 15 minutes, it is usually an indicator that there is too much discussion. It is important to remember that stand-up meetings are not the place to solve problems or to elaborate on project specifics. Rather, they are the time to report status and identify potential issues that might hinder a developer’s progress.

To get the most out of daily stand-up meetings, each team member must be prepared with his or her status report. In other words, they should come to the meeting with perhaps a written statement of their status. Having to write the statement is a good discipline to help one from dragging on, yet allows for a meaningful status report. I like the idea of a 3x5 rule. That is, if what one has to report cannot fit on a 3x5 card, they are saying too much. As an example, one might report the following:

“Yesterday I installed our repository, restructured the submission services and finished the submission logic. Today I am going to finish the retrieval logic and configure the CI server to run test scripts on the XYZ project. The problems I am facing is that I’m not sure what to use as test data and there is no documentation on the database”

Note, that the report was brief and did not include details as to how the tasks were accomplished or other unnecessary discussion. Finally, the developer stated a possible problem. At this point it is appropriate to identify people who can help mitigate the issues that developer is facing. Note, this is not the time to actually solve any issues, only to identify who can help solve them. Therefore, a likely response might be:

“I can help you with the db structure, see me after the meeting” or “See so and so after the meeting, he has already come up with test data.”

Keep in mind that it is often, it is necessary to schedule another meeting.

With such a limited scope for a meeting, one might wonder why have them at all. Why not just email the PM status? Here are a few reasons why stand-up meetings are important.

  1. Stand-up meetings increase accountability by surfacing commitments and responsibilities to the entire team. Not only do developers report status but so does the PM. Since these meetings are held daily, everybody becomes aware of the overall project status by tracking with what others are doing.
  2. Stand-up meetings help detect and reduce bottlenecks to the project quickly. Since these meetings are held frequently, problems are quickly identified and addressed. In my experience, weekly meetings are not frequent enough to accomplish this. By practicing this daily, risk mitigation becomes a priority.
  3. Stand-up meetings help developer commit to realistic goals. It is much easier to commit to a days worth of work than to try to guess what one might accomplish in a week. This also helps the PM in knowing how much work the entire team can actually get done which results in better estimates given to management.
  4. Stand-up meetings unify the team by getting team members on the same track with the project and encouraging communication and team effort in dealing with problems.

There are many more benefits to the stand-up meeting and you find numerous articles on the Internet and in most books on the Agile development process. Here are a few links on stand-up meetings:

It's Not Just Standing Up: Patterns of Daily Stand-up Meetings

Daily Stand Up Meeting

Stand-up Meeting Antipatterns

DotnetKicks

Estimating Effort Using Points

by Xavier Pacheco 25. February 2009 04:10

Development teams know that estimating is one of the more difficult tasks to get right. One of the frustrating things about estimating is that it often dart takes quite a bit of research to derive a fairly close estimate of a task’s required effort (usually given in time). Furthermore, estimating is not a quote. It is not intended to be accurate and we all know that…well, except the people asking for the estimate. Sometimes deriving an estimate takes just as much time as it would to simply implement the feature. Finally, estimates are always based on the best information had at the time which, most likely will change.

Story point estimating

Story point estimating (feature point estimating) helps to alleviate some of the frustrations of units of time estimating. Rather than trying to derive how long something will take, a developer can focus on the overall scope of the task and assign it a value relative to other tasks. In other words, it is an estimate of a feature’s size and complexity as perceived by the developer.

For instance a simple feature might carry the value of 1 whereas a feature twice the size might carry the value of 2, and so on. Over time, a team gets a sense of how many points they can complete in a 1-week or 2-week sprint. Here’s an illustration; consider the following questions:

How long will it take you (in hours) to mow your front lawn?
How long will it take you (in hours) to add another room to your house?

Which of your answers do you think is more accurate? Now consider the following questions:

On a scale of 1 to 10, how difficult is it to mow your front lawn?
On a scale of 1 to 10, how difficult is it to add another room to your house?

There is a good likelihood that both answers are reasonably correct based on your experience and know-how.

There are some real benefits to this type of estimating. Some of these are:

  • A team can better predict how much work they will get done in a sprint because they are targeting points rather than specific features.
  • It is a self-correcting model. As the team develops, they will only improve their estimating and eventually be able to confidently say how many points they can achieve for a sprint.
  • It promotes breaking apart larger, complex features into smaller, less complex tasks to be estimated against. Overall, this reduces uncertainty and risk.
  • Estimating happens more quickly because it is not intended to be precise.

Fibonacci points

There is a variation of estimating points that takes into account risk and uncertainty. Instead of using a uniform distribution of points to effort (1, 2, 3, 4, 5) a team can use points based on the Fibonacci sequence (1, 2, 3, 5, 8, 13 …). It was stated earlier that as the feature increases in size, so does its risk and uncertainty. In a sense, this model enforces that risk and uncertainty are taken into account in estimating (something developers are not prone to doing when estimating). For instance if a team considers a task to have a 6 on the proportional scale, it would need to be assigned a value of 8 according to this model. Hence, risk and uncertainty are taken into account

So just tell me how long will it take?

The key here is to ask the team the following question: How many points can you typically achieve in the given period of time? The answer is not when it will get gone, but how much will be done within a given time frame. This is a much better and more accurate way of determining what it is going to take to accomplish the overall goal.

Stay tuned for a future post on team-based estimating while playing Poker.

DotnetKicks

ActiveFocus featured by TelerikTV

by Xavier Pacheco 23. May 2008 17:38

Falafel Software showcased ActiveFocus on Telerik's web site. This af is a great illustration of what ActiveFocus can do and it can do a lot!  I was the lead developer for the Windows version of ActiveFocus and I have to say, Falafel has really taken this project to levels I never imagined. It is extremely easy to use and richly functional.

You have to see this video - watch the filtering capability on how the graphs interact with the grid - wow!

One thing Lino (the president of Falafel) discussed was how the skins can be customized for different industries. Therefore, the terminology can be customized to a specific industry. I need to add, that for those engaged in Agile development, it would be easy to rename requirements to stories, events to iterations and so forth.  AF also maintains important information like estimated and actual costs and efforts - critical for teams trying to achieve repeatable processes and cost analysis.

You'll hear in Lino's video that the team plans for integration into Microsoft's Team Foundation Server - that's smart!

Falafel software will be showing ActiveFocus at TechEd 2008 in Orlando, Florida in June 2008 and at the PMI Global Congress 2008 in Denver, Colorado in October 2008.

If I sound partial to ActiveFocus, I am. Having conceived the idea, developed its first iteration and then seeing it turn into a state of the art web application by a rock solid team has been exciting to say the least. I am looking forward to using it with my clients and I will be showing how to use ActiveFocus in an Agile (Agile/hybrid) development setting. More to come later. For now, CHECK IT OUT!

DotnetKicks

Tags:

Development Tools | Project Management | Software Development | Technology

Technology vs. Developer Gold-Plating

by Xavier Pacheco 8. April 2008 23:55

According to Steve McConnell, Gold-plating "comes from developers who want to explore a technically challenging new area..."  Jeff Atwood, in his blog, says that "In the purest sense, all refactoring is gold-plating. That is, it consumes extra project time and results in no material benefit for the users. But without periodic and aggressive refactoring, we can't produce sane, maintainable code."

While I agree with Jeff's conclusion, I would not go as far as he does in equating refactoring with gold-plating. Having maintainable code does have a direct benefit to the customer or client (the person paying for the development).  Ultimately, it's a cost/benefit matter. When the cost outweighs the benefit, then it's not worth refactoring.  Plus, at some point (I hesitate at saying this), the code just works and no further development/refactoring is needed regardless of the code being ugly. Furthermore, when it comes to gold-plating, there is an ill-motive even though it may be subtle. 

I should probably note that when I use the term "developer" I may be referring to a development consulting organization, an independent consultant or a developer (at any level) within a development team.  In all cases, this is a person who can influence the tools and technologies employed in a development effort.

That said, I find that an extensive amount of gold-plating occurs at a much earlier phase of development (such as the proposal phase) which is why I prefer the term "Technology gold-plating" over "Developer gold-plating".  This goes right in line with McConnell's definition.  

I divide Technology Gold-Plating into two categories.

  1. New Technologies (Bleeding Edge)
  2. Preferred Technologies

New Technology Gold-plating

New technology gold-plating is exactly what the name implies. The developer wants an opportunity to delve into the latest technology.  This is extremely dangerous for the client who may be investing his/her money to the effort.  In essence what is going on here is development research and education at the client's expense.  It works like this. The vendor comes out with a new bleeding edge technology. The vendor pushes it on its partners (who want to play with it). The partners push it on to their clients. Their clients get blood splattered all over them - not good and frankly, quite messy.

Preferred Technology Gold-plating

Preferred technology gold-plating is the use of technologies with which the developer is most familiar or favors for whatever reason. For instance, a developer may use a pre-designed architectural model from the latest popular book on software architecture. Or he may use some pre-fabricated framework.  I am by no means saying these are bad. They are excellent if they actually meet the client's technology and business needs.  Yet, it happens too frequently that a company ends up with an over-architected monolith of a system when all they needed was an html page and a few lines of java script.

So, how does one prevent this from happening to their project?  Stay tuned, I'll be covering this and more in future posts.

DotnetKicks

Tags:

Best Practices | Project Management | Software Development

Wiki - Making Development Collaboration Easier

by Xavier Pacheco 26. September 2007 10:08

I can say unhesitatingly that every project on which I have worked has been a collaborative nightmare.  The reason? Because Email has been the primary means of team collaboration.

I am pretty much sold on the Wiki approach to team collaboration. At this point, I have not personally implemented a Wiki, I am currently in the process of reading about the various options available. Needless to say, I am only interested in free / open source options.  At the moment, I'm considering ScrewTurn Wiki.  I am also anxious to see what Google does with their JotSpot acquisition.

In the meantime, to see why Wiki is good for collaboration, watch this video.

If you have any comments/suggestions on Wiki tools - do tell!

DotnetKicks

Tags:

Best Practices | Development Tools | Project Management | Software Development | Technology

Small companies lack best practices, but should they? (part 1)

by Xavier Pacheco 3. September 2007 16:13

Recently, a colleague and I were discussing the merits of best practices amongst small teams.  The context of this discussion is of a development consulting company; companies that provide development resources from project managers to programmers and testers.

We agreed that "best practices" are often a difficult sell to clients that out source their projects to these consulting companies. The reason is that the there is a notion that best practices are time consuming tasks that offer no tangible benefit, but only perceived benefit.  In other words, to the client, adding an extra X hours to a task that takes X hours to develop and deliver seems like unnecessary time and money. However, there is a serious fallacy to this reasoning. 

Take, for instance, the best practice of code reviews. The whole purpose behind code reviews is to prevent defects in the software and to allow for their repair early in the project life-cycle. Generally speaking a defect costs much more to repair later in the development cycle. Therefore, it is advantageous to  find it and fix it soon. This is made possible through code reviews. 

One study involves a 10,000 line project done by two different groups of developers. One group did not perform code-reviews. The other did.  The amount of money that would have been saved is substantial as shown in the figures below.

 

 

Personally, if I am the the customer hiring a development company, I want to make sure that the company performs code reviews, otherwise, I may be agreeing to pay some serious dough when I didn't have to.

If I'm the development company, and if I'm honest, I want to offer my clients the best service for their money. If I really believe that code reviews work, then I am going to work it into the development agreement. If a potential client resists, then I must show the potential cost in my estimate realizing I may not win the client.

I'll leave the analysis up to the reader. For more on this study, go here:  Code Review Study.

 

Thoughts?

DotnetKicks

Tags:

Project Management | Software Development | Best Practices

Project Heroics = Bad Management, Poor Leadership

by Xavier Pacheco 23. August 2007 09:29

Heroes are great, they work overtime, they give it their all, tackle every crisis and sign up for every seemingly impossible task (do this 20 hour job in 2 hours). According to one manager, "these are the people that advance in a company."

This might come as a surprise, but in reality, what might seem like a good thing is actually bad for projects, bad for the company and bad for the team (the so called heroes and everybody else).

Heroics harbor bad practices

Every project management book I know of that has anything to say about heroics declares that it is a bad practice, a classic mistake. 

Projects frequently run the risk of becoming dependant upon heroics when heroics are the norm.  Yet, heroics seem to be the one aspect of a team that leaders and managers revere.  When a project fails, blame is often shifted to those that didn't give it their all or the heroes who simply couldn't run faster than a speeding train.

Truth be told, heroics exists because of poor project management or poor leadership.

According to Steve McConnell,

"...emphasizing heroics in any form usually does more harm than good. In the case study, mid-level management placed a higher premium on can-do attitudes than on steady and consistent progress and meaningful progress reporting. The result was a pattern of scheduling brinkmanship in which impending schedule slips weren't detected, acknowledged, or reported"1

Heroics harbor several bad practices. Here are only a few, I'm sure there are many more: 

  • Heroics to meet deadlines only guarantee future tight deadlines
  • Heroics burns people out, rendering them ineffective
  • Heroics leads to inaccurate and unrealistic schedules and estimates
  • Heroics minimize the efforts of those who actually plan and are realistic about schedules and work effort
  • Heroics promote the neglect of sustainable and dependable processes
A Culture of Heroics

I have worked for several companies that elevate the "can do attitude" to the extreme. In these environments, people tend to get distinguished for "going the extra mile".  A can-do-attitude is often equated with loyalty and commitment.  Don't get me wrong, there is some truth to that last statement. I'm all about overtime, dealing with crises head on, giving more when necessary and advantageous. It is when these practices are 1) revered and 2) normative (the way business gets done), I say that the company is dangerously immature and unstable.

The SEI Capability Maturity Model defines the lowest level of maturity for a software company (Level 1) as,

 "ad hoc, and the organization usually does not provide a stable environment. Success in these organizations depends on the competence and heroics of the people in the organization, and not on the use of proven processes"2

At CMM Level 3, a company is implementing an "effective project management system". Implied here is that individual heroics are not what makes projects succeed, but rather that the company operates according to a proven set of standard processes. Essentially, the capability of a company is organization itself, not the talents and the superior capabilities of a few people.  

The bad side to heroics

In battle, the hero is often the one who risks or even gives his life. They are the ones who run into a foxhole with two grenades to take it out during an ambush.  Eventually, the foxhole is taken, the hero may be dead as well as members of his team.

Could the team have avoided the ambush if there was proper training, preparation and planning for the mission? Could the team have benefited by having considered all potential risks - areas that an ambush was likely? Could the battle have been won had leadership laid out a well-planned battle strategy?  

It would be worthwhile to consider where your organization stands regarding heroics.  I would be interested in other drawbacks to heroics, comments?

 

1 http://stevemcconnell.com/rdenum.htm

2 http://en.wikipedia.org/wiki/Capability_Maturity_Model#Level_1_-_Initial

DotnetKicks

Tags:

Leadership | Project Management | Software Development

PMP Certification Anyone?

by Xavier Pacheco 19. August 2007 18:01

The Project Management Institute (PMI) is the authority in the area of Project Management (PM) and has created the leading standards on PM including the Project Management Body of Knowledge (PMBOK). PMBOK is an internationally IEEE recognized standard and it is the standard used in establishing the Project Management Professional (PMP) certification.

If the above paragraph doesn't make your head spin, just look into the requirements for PMP certification. I've been reading numerous articles and blog posts about whether such certification is necessary and worth the investment. One PMP holder suggests that the cost for certification can reach up to $5000 plus a huge investment in time!

I think of the PM's I have worked with over the years and none (including myself) are PMP certified. Yet, many articles I've read seem to indicate that PMP certification is starting to become very important in the marketplace. I quote one author who says, "The exam tests you on PMI's terminology, processes, and process boundaries. What the PMP does not demonstrate is our competency as project managers or our skills in applying our competencies in real-world situations."1  This, however, can be said of most certifications I believe.

I've read a few articles that make the case for PMP certification. These mostly have to do with personal, professional advancement. One author presents common excuses, my favorite of which was this, "PMP sounds too much like "p1mp," and I don't condone e$_cort services."  (Note: I've purposefully changed the text hoping it will prevent any offensive AdSense ads).  

Anyway, what I'm wondering, and intend to research, is this question. How important is having PMP certified staff in software development /consulting organizations that provide the entire development team to its clients?

More later.

DotnetKicks

Tags:

Project Management | Software Development

Disclaimer
The opinions expressed herein are my own personal opinions and do not represent my employer's view in anyway.

© Copyright 2012 X Talks Tech