Random Acts of IT Project Management

Project Management for Information Technology

Posts Tagged ‘Agile’

Railing Against Project Bureaucrats

Posted by iammarchhare on 3 September 2009

Being a project manager is walking a fine line.  Many mistake project management for doing EVM, making a schedule, filling out a charter, and so on.  These are functions of a PM, but they are not the most important.

TechRepublic posted “Managing innovative projects: Don’t mistake the map for the journey” by Rick Freedman.  Freeman writes about these paper pushers who “manage” projects:

When I teach project management, I often draw a distinction between project managers and project bureaucrats. We’ve all had encounters with project managers who turned into bureaucrats. Project bureaucrats are more interested in ensuring that every step of the methodology is applied and every line of every form is filled in than in what’s actually happening on the ground. On the other hand, it’s common to meet project managers who apply minimal project methodology, yet, through their expert use of relationships and personal interactions, always seem to know exactly where the project stands.

He goes on to give an excellent example of a project failure.  That is, it was a bureaucratic failure.  Yet, the product was an ultimate success.  The product was the film Titanic.

So, how does he view being innovative while still maintaining project discipline?  You’ll need to read his article to find out.

Posted in Agile, Leadership, PM Basics | Tagged: , , , , , , | 1 Comment »

Learn Scrum in the Amount of Time a Stand-Up Meeting Lasts

Posted by iammarchhare on 7 August 2009

One of the more useful items in the Agile arsenal is the daily stand-up meeting.  Naturally, if you are using Scrum, then the meeting is called a “daily Scrum meeting”.  Having everyone stand encourages the meeting to be short.  The ideal meeting should be ten minutes, but never over 15.  If issues come up that cannot be resolved in that time frame, then a longer meeting may be scheduled with only the necessary participants.

How would you like an overview of Scrum in the amount of time that a daily Scrum meeting would last?  Well, Hamid Shojaee posted “Learn SCRUM in Under 10 Minutes (HD) by @hamids” in ProjectCorner that does just that.  The video is actually 8 minutes long and packed full of information that a novice will find handy.

Posted in Agile | Tagged: , , , , , , , , , , | Comments Off on Learn Scrum in the Amount of Time a Stand-Up Meeting Lasts

Tips For Agile Project Planning and Estimating

Posted by iammarchhare on 29 July 2009

I came across the Hub Tech Insider blog article “Twelve Tips for Agile Project Planning and Estimating”, and I’m pretty impressed.  I’m going to check out other articles offered on the blog as well.  However, there seems to be a short series of articles, and then it ends, unfortunately.

The first tip is also one I consider to be one of, if not the, most crucial:

1. Keep everyone on the team involved – Buy-In, or real commitment, from every member of he project team is vital to the success of the project. For example, the estimation of the project is an activity that should involve all members of the project team, while only very particular tasks such as prioritization of requirements should be the primary responsibility of the product owner or an individual project team member. The more work is shared by the team, the more victories the team will have to share.

From my experience, constant communication between team members is at the heart of Agile.  That’s why Scrum is so adamant about co-location for team members.

Anyhow, I hope that Hub Tech Insider continues on.

Posted in Agile | Tagged: , , , | Comments Off on Tips For Agile Project Planning and Estimating

Waterfall vs Agile

Posted by iammarchhare on 21 July 2009

I frequently like to compare waterfall and Agile methodologies, or perhaps mindsets would be a better term.  Yet, I realize that my descriptions are colored a lot by my own experiences.  So, I do like to point you to other sources from time to time that take a different approach or describe the differences in other terms.  I hope that gives the reader a more well-rounded look at things.

Robert Merrill on 18 February 2009 posted “A Tale of two processes”.  He starts out describing “How to create software” by writing:

Let’s create some software value. It’s very simple.

  • You tell the programmers what you want the software to do
  • They create it
  • You verify that it does what it’s supposed to
  • You let people start using it, and out pours the value.

Sounds simple, right?  Well, in a nutshell, he has summed up how waterfall is supposed to work.

I think the contrast is interesting and a worthwhile read.  You can read his article here.

Posted in Agile, SDLC, Software, Waterfall | Tagged: , , , , | Comments Off on Waterfall vs Agile

Agile Development Principles and Pareto’s Law

Posted by iammarchhare on 19 June 2009

Helium writer Kelly Waters wrote an article on “Agile development principles explained”.  I’m going to confess that I often read others’ articles and then write my own version (Helium has authors compete for ratings under the article’s title) because I just don’t like the #1 article.  I’m not going to try to top Waters’ article, although I would have liked to have seen more in it.  It is hard sometimes to strike the right balance between too much and too little information.  In my opinion, though, this particular article should have been named “Pareto’s Law” instead.

Posted in Agile | Tagged: , , , , , | Comments Off on Agile Development Principles and Pareto’s Law

Use Cases and User Stories – Just Degrees of Difference?

Posted by iammarchhare on 26 May 2009

What is the difference between doing use cases and doing user stories?  Use cases are UML methods of bridging user requirements with a system.  User stories are an Agile way of doing the same thing.  However, throw into the mix that there are formal and informal use cases as well as a use case brief, and you have a potentially confusing situation.

What are the differences between these, then?  Well, Scott Sehlhorst at the Tyner Blain blog tries to tackle this question.  Perhaps they are really just different points on a continuum of overhead and detail.  Throw in the level of reader trust, and you can graph these different items.  “User Stories and Use Cases” is an interesting read.

Posted in Agile, Requirements | Tagged: , , , , , , | 1 Comment »

Better Estimating Through Software Sizing

Posted by iammarchhare on 18 May 2009

How do you know how long it will take?  Gut feel is how many do their estimations.

Late last year, I attended a webinar that intrigued me.  I had heard of feature point analysis (FPA) before, but I didn’t know much about it.  I decided to look into it more.

Software sizing is the software engineering term for estimating the size of a piece of software (whether component or entire application).  These estimates then can be used in project management activities.  Software sizing processes are a requirement for CMMi level 2.

Lines of Code

One of the original measurements for coding projects was Lines of Code (LOC).  When procedural languages were the norm, it gave a rough estimate of effort based upon the developer’s output.  With OO software, though, it is a less useful measure, and so it has fallen out of favor in recent times.

In the 1970s, IBM tapped Allan Albrecht to come up with a better tool for estimation.  The result was published in 1979.  He came up with a way of measuring based upon 5 areas:  Internal logical files, external interface files, external inputs, external outputs and external queries.  The Code Project has a 2 part posting that goes into more detail on function point analysis.  Unfortunately, it appears there were supposed to be additional postings that did not occur.

One of the complaints leveled against such measurement is the amount of time required to do the measurements.  However, an experienced person can document one person-year’s worth of effort in about one day.  While some criticisms of function point analysis may be valid, “others are excuses for avoiding the hard work of measurement” (Total Metrics).  There are far too many organizations that would avoid procedures in the estimation process if it took an hour because it would “take too long”.

To me, the biggest disadvantages are the requirements of previous measurements and specialized training.  Previous measurements can be substituted with industry standards, though you will lose the impact of organizational maturity and influences.  Training and experience increase the accuracy of estimates by the estimator.

You also have a catch-22 situation in that functional requirements need to be detailed enough to make an accurate estimate.  No matter the method of estimating, you’ll have this problem, anyhow.  Estimates are improved through the progressive elaboration of requirements.

Both of these disadvantages are quite likely to discourage, rather than encourage, a more systematic approach to estimation.  In addition, FPA is not without its critics for other reasons.  For one thing, best practices in software and the way software is developed is pretty far removed from the 1970s, when FPA was developed.

In addition, project management itself has changed a lot since then.  The concept of FPA might have worked fine with monolithic waterfall projects.  However, with the adoption of Agile by many organizations, such detailed analysis prohibits change rather than encouraging it.

Use Case Points

One alternative to pure FPA is estimation built upon the number and complexity of use cases.  There are tools that can make this much easier, and anyone who understands use cases already can put together an estimate with little additional training.

There is a Windows tool you can use to estimate size with use cases called EZ Estimation at http://ezestimation.googlepages.com/.  I downloaded it, and it looks like a pretty decent estimator that can be used in the requirements gathering phase.

Conclusions

A good plan today is better than a perfect plan tomorrow.

~ George S. Patton

One thing to keep in mind is that any initial estimate is going to be wrong.  That is why progressive elaboration is pointed out in the PMBOK.  One place I worked realized this and broke all but the smallest of projects out into an analysis phase and a construction phase.  The gateway for the construction phase was how the estimate stacked up against the analysis estimate and whether or not the project was still worth it.

The beauty of Agile, of course, is that estimates are adjusted as more is learned.  Estimates become more accurate, as estimates over the life of the project become more accurate towards the end.

If time allows, however, it would seem prudent to do enough analysis upfront so as to be able to hit that middle ground of estimation so that less will be left out in the end.  By doing use cases and using estimating tools based upon that seems to me to be the most reasonable approach.  The larger the project, the more this approach might make sense.  In an Agile environment, this would be done once to get the best possible overall estimate, but user stories, backlogs and adjustments after a sprint would still be carried out on  a normal basis.  The key would be “appropriate detail” in use cases.

I would love to hear anyone’s experience with these.  I have a feeling it depends a lot upon the type of project, the type of customer and the overall project size.


Sources:

  1. Buglione, Luigi.  (25 July 2008).  Functional Size Measurement.  Retrieved 12 May 2009 from http://www.geocities.com/lbu_measure/fpa/fpa.htm.
  2. Cohn, Mike.  (2005).  Estimating With Use Case Points.  Retrieved 12 May 2009 from http://www.methodsandtools.com/archive/archive.php?id=25.
  3. Function point.  (n.d.).  Retrieved 12 May 2009, from http://en.wikipedia.org/wiki/Function_points.
  4. s.kushal.  (11 Mar 2007).  Function Point and Function Point Analysis.  Message posted to http://www.codeproject.com/KB/architecture/Function_Point.aspx.
  5. Software Composition Technologies, Inc.  (June 2003).  Function Point FAQ. Retrieved 12 May 2009 from http://www.royceedwards.com/floating_function_point_faq/about_function_point_analysis.htm.
  6. Software Sizing.  (n.d.).  Retrieved 12 May 2009, from http://en.wikipedia.org/wiki/Software_Size.
  7. Total Metrics.  (June 2007).  Methods for Software Sizing: How to Decide which Method to Use. Retrieved 12 May 2009 from http://www.totalmetrics.com/function-point-resources/downloads/Why-use-Function-Points.pdf.

Posted in Estimating, PM Basics | Tagged: , , , , , , , , , , | Comments Off on Better Estimating Through Software Sizing

Scrum

Posted by iammarchhare on 15 May 2009

I have had to introduce Agile processes and techniques into various situations and environments, but I’ve never had the opportunity to go fully scrum.  That’s OK, as a methodology is just a tool to get you where you are going, but it would have been nice to actually go through an entire project using all of the core practices at least once.

Anyhow, I know there is a lot I can learn about it as a result.  If you are as unfamiliar with full-blown scrum as I am, I suggest you check out “Am I, or Am I Not, Using Scrum?” over at Scrum Alliance.

Posted in Agile, SDLC | Tagged: , , , , , | Comments Off on Scrum

Defensive Programming

Posted by iammarchhare on 4 May 2009

Remember when you learned how to drive, and you had to take a course called “defensive driving”?  You learned to anticipate problems on the road instead of racing down the road assuming nothing would ever go wrong.  By driving in a manner that would put you in the best position possible should something go wrong, you often avoided anything going wrong at all.

Software developers tend to be an optimistic bunch.  Write code for that?  No problem!  Want it in a week?  No problem!  Somehow, they tend to underestimate the power of a computer to do only exactly what it is told to do, whether by their own code, someone else’s they have to interface with or the compiler.

Agile development encourages people to do their test cases up-front.  I am in complete agreement with that concept.

There are problems with that, as there are with anything in life.  In “Developers Can’t Test for Toffee!”, Kelly Waters asks, “Why is it that developers can’t test?”  Waters pretty much states it is the “can’t see the forest for the trees” syndrome.  Developers can only test for issues they think of.  They are down in the bowels of the code, so naturally testers can think of scenarios the developers have not.

Waters makes a pretty good case, I think.  However, my experience is that most developers aren’t trained to think about what goes wrong.  I remember more than one post-mortem where I would ask, “Why wasn’t this accounted for?” and the answer very often was “I never thought that [condition] would occur.”

I guess I was fortunate in that I had a professor who insisted that code ran and produced the expected result.  “Code for the error conditions first,” he used to say.  “Think about what will happen, because it eventually will, when you get in some bad data.  Don’t assume users will input valid data.”

I began to call this concept “defensive programming”.  Anticipate the problems before the best case scenario is even written.

Posted in Risk Management | Tagged: , , , , , , , , , , , , , , | 1 Comment »

The Beast Called “Waterfall”

Posted by iammarchhare on 1 May 2009

There seems to be an unofficial theme this week of pointing out some fallible lines of thinking.  I honestly didn’t plan it to come out this way, but sometimes patterns emerge before we become cognizant of them.

This week started off talking about “What is Agile Project Management?”  Basically, describing Agile as a “methodology” doesn’t make much sense.  Rather, it is an umbrella, or better a philosophy, underneath of which are some methodologies (scrum, XP, etc.).

Tuesday, I pointed out some faulty beliefs that point to a lack of proper priorities in “Where Is the Time?

Wednesday’s post was on “Web 3.0, Anyone?”  While the technology is emerging to do some really cool stuff, a lot of it just isn’t here yet.  Somehow, though, I saw job postings for people “experienced in Web 3.0”.

Thursday’s post was about “Don’t Make It Hard!”  This was mainly about how people can make things harder than they need to.  It also scratched the surface of how a team’s reaction can make the problems worse.  Finally, I used the example that bore the topic of implementation and how it isn’t implementation that is hard, but rather it is the sequence of steps and missteps that lead up to it that are hard.

It seems appropriate today to come full circle and examine the waterfall method.  Just like the others this week, I read something that made me go “No!” out loud.

In case you are new around here, let me summarize from my own Associated Content article on “Agile Project Management” just how I feel about the waterfall:

Like a dinosaur, the waterfall methodology is large, cumbersome and slow. If it trips and falls, it makes a very large noise. Unfortunately, the waterfall is not like a dinosaur, as the latter is extinct.

So, what do you think went through my mind when I read that Steve McConnell of all people wrote about a company that “embraced Extreme Programming (XP) as the development approach”.  Yet:

Development went on for about two years. While the team was being highly responsive to customer input, that wasn’t good enough. The cumulative total of its work was not converging to anything resembling a saleable product. Eventually the company concluded that the team was never going to produce a product, at which point most of the 200 people were laid off and the company reported a $50 million loss on the project.

~ McConnell, Steve.  (29 July 2008).  Agile Software: Business Impact and Business Benefits.  Retrieved 29 April 2009, from http://forums.construx.com/blogs/stevemcc/archive/2008/07/29/agile-software-business-impact-and-business-benefits.aspx.

The real tip-off here is that nothing was “converging” to make a “saleable product”.  Say what?

Sometimes life is a lot like Alice in Wonderland (or at least the Disney version).

Alice: Would you tell me, please, which way I ought to go from here?

Cheshire Cat: That depends a good deal on where you want to get to.

Alice: I don’t much care where–

Cheshire Cat: Then it doesn’t matter which way you go.

Alice: –so long as I get somewhere.

Cheshire Cat: Oh, you’re sure to do that, if you only walk long enough.

On George Dinwiddie’s Blog, Dinwiddie posted an article “Agility and Predictability”, where he addresses the predictability factor.  However, I want to focus on the fact that the product owner in the above example “didn’t have a vision for a salable product.”

I hope many of you got the chance to attend the webinar yesterday on “Agile Requirements (Not an Oxymoron)” by Ellen Gottesdiener of EBG Consulting.  She pointed out you need: A “now-view” at the iteration level, a “pre-view” at the release level and a “big-view” at the product level.  It is debatable if the team even had a release level view in McConnell’s example, but it is certain that they did not have a “big-view” of the end product.

Agile is no excuse for not knowing where you are going.  Agile won’t help you get there if you don’t know the destination.  The methodology cannot help you if you are simply wandering around Wonderland.

In fact, Agile is not a cure-all by any means.  If anything, Agile will tend to uncover organizational and procedural deficiencies much sooner than the waterfall method.  However, regardless of the methodology, if an organization buries its head in the sand, it won’t work out.  One of the main features of Agile is evaluating performance at the end of a sprint.  Like any evaluation, though, individuals and teams can gloss over and politic, or they can admit mistakes and make adjustments.

Waterfall will cover up mistakes until the very end, when suddenly, everyone realizes the project is behind schedule.  It’s almost inevitable on any project of any complexity or of any significant size.  So, yeah, waterfall is more “predictable”.  It is more predictable that it will fail!

When does waterfall work?  Waterfall works when the results and processes to get there are well known.  If you are setting up servers just like the last 20 you did in the last quarter, then the waterfall approach will most likely be suitable.  When the chance of randomness is very low, then it is much easier to project the end.

Waterfall also works when the duration is shorter than 4 weeks (not including project management paperwork).

IOW, waterfall sometimes works when the one iteration is about the same size as recommended for one or two Agile sprints!

When you think about that, you think about how there is no real feedback until the end of the cycle, you think about how little testing is done until the end and you think about “progressive elaboration”, then why would you tie your cart to the waterfall horse?

Posted in Agile, PMBOK, SDLC | Tagged: , , , , , , , , , , , , , | Comments Off on The Beast Called “Waterfall”