Category: IT


US National Archives - Creative Commons image

Workers assembling radios. Photographer Lewis Hine. US National Archives – Creative Commons image

Typically in plan driven model, scope is fixed and the cost and schedule are variables.  Many large scale software projects were and continued to be implemented this way.  In many instances, when a particular scope is desired within a giving time-frame (fixing the schedule), plan driven projects add resources.  But as we know simply adding resources to a project doesn’t always bring about the desired goals.  As a matter of fact, if resources are added late on a software project, it actually has an adverse effect.  This was indeed observed by Fred Brooks in his book The Mythical Man Month, also known as Brooks’ Law: “adding manpower to a late software project makes it later”. 

With Agile software development, the triangle gets  inverted – where cost and schedules are fixed and the scope is variable.

Waterfall-Agile Triangle

Even for Agile projects, there could be instances when a fixed scope is desired within a given time period.  For example, when an external entity drives a compliance or mandated project.  In those instances, the only lever stakeholders may have is adding resources for a delivery with fix scope and schedule.  But, are there better ways to add resources or capacity to an Agile project without falling in the same traps of experienced with plan driven methods?

Before we answer that, lets briefly consider teams on Agile projects.  Agilists  have generally made 2 recommendations for effective teams:

  • Keep team intact or stable for a long periods of time
  • Keep team size between 5-9

A recent paper called The Impact of Agile Quantified seems to support these two recommendations out through empirical data.

Stable teams, defined as having less than 10% membership change in a 3 months period vs Unstable teams defined as 40% variance in their membership tend to:

  • Have more throughput (volume or work)
  • Have less variance in their  throughput (they are more predictable)
  • Have less defect density (higher quality)
  • Have less time in process (better time to market)

From the same research findings, teams of 5-9 team members have the most balanced performance when it comes to predictability, productivity, quality and responsiveness.   Generally, smaller teams (of 1-3 people) are 40% less predictable and have 17% lower quality; however, they do have 17% more productivity.

Instability in Agile teams can happen sometimes which may not be in direct control of the resource managers.  Like, for example, a team member gets promoted or changes positions or leaves the company altogether.  In some instances, a resource manager may also have to move team members due to skills match, team dynamics or performance considerations.

So given these findings, what would be the best options in adding resources to an Agile project or a release?  Creating a whole new cross-functional team of 5-9 team members during early to mid part of the project along with a Product Owner and a ScrumMaster (presuming you are following Scrum) would be the best option.  This will allow added capacity without running foul of the Brooks’ Law.

But if the budget add doesn’t allow addition of an entire new Agile team, then other viable options becomes little less ideal.  One option would be to add team members to an existing team to make them more cross-functional or remove a crucial skills constraint, so the team becomes more self-sufficient.  The other option is to shore up smaller teams that have less than 5 team members.

Alternatively, you can level-off a larger team and form 2 teams.  Take for example, there is additional funding for 4 team members and Original Team A makeup: 9 team members + PO + SM.  Form Team B: 5 team members – 3 new team members + 2 team members from Team A (presumably a team member can initially serve as SM initially) and  a PO.  Now New Team A would be: 7 team members + PO + SM.  Since, both teams would be within the ideal size range, and assuming you are able to maintain the cross-functional nature of both teams, you can still reap the benefits of higher throughput, better quality, more predictability and better time to market.  Again, these aren’t the best options because affecting existing well performing teams will inevitably create an initial setback as new teams re-form and then re-norm.

Ideally, if short term results are desired, say within a quarter, scope reduction is probably still the best option instead of disrupting Agile teams.

Advertisements

Department Store - Mall (© Aashish Vaidya)

Last month, like millions of other shoppers, we headed to a department store.  We noticed that the associates were little more cheerful than in the past.  Maybe this was new a crop of temp workers who took to their jobs with gusto or just existing employees, who were spurred on by new spirit of customer service.  Within minutes, an associate greeted us warmly and moments later another one engaged us directly.  Not content with just a friendly hello, he went on to mentioned items that were on sale, especially the wool jackets, which we noticed we were passing by.  When I mentioned that I already had a short wool jacket and a long overcoat, he looked at my wife and said “well, he can always add a third in his wardrobe, right?”  Unlike typical mall-store employee, it seemed like this guy actually knew to appeal to the real decision maker.  Well, the power of suggestion was already at work and we figured that it might actually make an appropriate gift for someone on list.

As I was trying out a jacket, a third associate came by.  “Wow, ” she said, “this really looks good on you.”   When I told her that we were looking for a jacket for someone else, someone older.  She immediately went on to recommend a more conservatively styled, but a considerably less costly jacket.  This was refreshing, she was really trying to help us come up with a gift that suitable, instead of trying to power selling.

We did like the jacket she suggested, but, the store did not have it in the size we wanted.  No problem, the associate assured us, she’ll just look one up in the system and have it shipped.  She was able to locate a jacket, and we proceeded to make payment, partially with their store issued gift certificate and the rest with a credit card.  And this where things got little more interesting with a seemingly ordinary transaction.  Her system would not accept the gift certificate as a partial payment.  No problem, the associate consulted with her teammate and figure out, she can exchange the gift certificate for a gift card.  And then she processed the payment.  Nice, it was admirable to see the associate and her teammate being resourceful and making the extra effort to complete a sale.

But, the very next day, we got an email simply stating that the order was canceled and no money was charged to the credit card and the value of the gift card was reverted back to the card.  Hmmm, hello, that’s a problem!  As the gift card was fully used, so as we generally do in this situation, we had already handed the gift card back to the store associate to recycle it.

Groan – that meant having to deal with the Customer Service department.  After the usual dreadful shuffle of getting through the labyrinthine IVR system, about 30-40mins later, we got a live rep.  This rep, though, had none of the warmth and the level of engagement that the store employees exhibited.  Instead of expressing any type of regret, he told us  that a new gift card to replace our old one should make its way to us in 7-10 days.  And if we were still interested in buying a jacket, we can pick it up at a store that was about 20-25miles away, but it was no longer on sale.  And if we wanted it shipped, there would be additional shipping charges.  None of the compelling reasons of value or convenience existed for us, so we declined his offer of having the nearby store hold the item for us.

About 10 days elapsed, when the gift card didn’t show up, another call to the customer service had to be placed.  Good 45 minutes later, a “friendly” CSR,  said she couldn’t find any record that we had talked to someone about 2 weeks back in the system.  But she would revert the value on the original gift card.  Umm, deja vu, didn’t we just go through this before!  After patiently explaining to her that we no longer have the said gift card, she asked us if we can contact the store to see if they had the card.  Uhh, does she really think the store clerks would really have that particular gift card on their hands after 2 weeks?  We leaned on her, and had her finally agree to send a replacement gift card.

I recount this experience in some what details,  as this  raises a few interesting IT related systems and management questions:

  • Why would the POS (point of sale, not the other type!) system not work with the store issued gift certificate, but work with a gift card?  Did someone put in a weird business rule that no one can fathom and the frontline sales associates are left to fend for themselves?
  • Why did the system allowed overselling an item when it showed there were plenty of units available at the time of purchase?  Was the inventory not real time?  And if so, was this a usability issue where the system should have alerted the sales associate not to make the sale and have a problem until the actual inventory count is confirmed?
  • Why wasn’t the system handling a gift card related cancellation differently?  Did it always presumed that the customers will keep their spent gift card, on which the value could be restored?  Or did a product owner did not hand a properly written acceptance criteria or acceptance tests to the software IT team?  Or that the software implementation team never bothered asking?
  • Was customer service department cluelessness, a vendor management issue (if it was an outsourced vendor)?  And why wouldn’t the company properly empower their CSRs  to actually make a sale when they are in a live, high touch customer interaction?  Many other retailers have already figured this out, their store clerks or their CSRs can ship products from their warehouses or from any stores either to a convenient store location or directly to the customer.  So this was a lost opportunity.

The net effect of this was a dissatisfied customer, who lost a lot of their time and use of gift card for days.  And it was a huge waste of effort for the frontline sales staff, which worked diligently and creatively to problem-solve and make the sale.  And for the retailer, this is still a revenue sapping transaction, as it still might generate more customer service calls (the replacement gift card is yet to arrive at the end of the promised delivery window).

As IT and software professionals, many times we are so removed from actual users of our systems that we don’t provide the type of support the frontline associates need, or we don’t ask the right questions from our business or product owners.  In this particular instance, the value chain wasn’t aligned from front to back.  The system wasn’t aligned with a single focus – make a sale with least waste and satisfy the customer.

But, lest you think this is just another rant (which it is!) on usual poor customer service of a big department store, I will close with a very interesting observation we made at the store.  While we were waiting for the transaction to complete, we saw a few store associates in an impromptu “huddle”, where one of the teammates reminded others to keep restacking clothes and tidying up all the floor space.  There was even a mention to balance the engagement with customers, while at the same time flowing around so other customers feel just as welcomed.  Nice, a wonderful example of inspect and adapt.  Now only if the frontline staff can extend this spirit to their CSR and IT departments.  And if the CSR and IT departments really learn to have their spirited frontline’s back, they will be on to something!

%d bloggers like this: