What’s a Manager to Do? Management’s Role in Scrum Organizations, Part III

March 15th, 2010 by AccuRev No comments »

I love the concept of self-managing teams.  Everyone figures out what needs to be done, and does their best to make the greater organization successful.  Beautiful.  Reminds me of the Shaker Village, the Russian Artel, or the Israeli Kibbutz.  All of which are (largely) extinct today.

There are three structural problems that, like termites behind the wallpaper in a French Quarter house, cause these “worker’s paradises” to fail.  Our job, as managers of the Innovation Engine, are to sniff ‘em out, expose them, and exterminate them.

Problem #3: The Buck Starts Here.

For all the happy talk about mission, values, and meaningful work, the ultimate metrics for business are financial.  Our inability to grow, make profits, secure new investors, etc., will ultimately end our ability to accomplish our missions, support our values, or provide work to our employees and worse yet, ours bosses. That’s the bad news.

The good news is that we managers can use money (or their engineering equivalents, people) to accomplish great things.  Which things we choose to accomplish is largely up to us.

No, that doesn’t mean we want to create our own user stories, and reprioritize the backlog to meet the requirements communicated to us in our sleep by our deceased pet snake.  That’s the product owner’s job.

The Scrum process, like its Lean predecessors, is based on incremental improvement.  That’s great for two reasons: first the changes are small enough that we can get them done and see the results before the environment has changed, and second because they are small enough in scope that the individuals in development or product management can understand and control them.

We managers have to see the bigger picture, and that generally means determining the funding level for each of the initiatives we have.  Adding people to a team will eventually, not withstanding our bad management, increase its velocity.  Pulling people off will generally do the opposite (although not as quickly as you might think …….).

The optimization problem for the overall success of the organization involves lots of variables, but that’s really why they pay us the big bucks.  Is this group servicing a stable and productive customer, while this other group is struggling to overcome a mountain of technical debt?  Are competitors starting to emerge for what has been a stable area? Has this project achieved most of its goals? Is it time to determine what should be the next big initiative?

The purely business and marketing side of the equation is usually an area of influence, not control, for the development manager.  But the assignment of resources to projects is the execution of that strategy, and requires management comprehension and “buy-in.” For those of you uncertain, the term “buy-in” refers to agreeing to do something you’d really rather not do at the risk of losing your job.  It’s been around a long time, but has flourished in the recession.

On the technical side, there are important funding issues to consider.  One of the biggest is the effect of architecture on the overall success of projects.  Studies have demonstrated that one of the biggest factors in ROI for IT initiatives is the quality of the underlying architecture.  Should you add features to your Windows XP app, re-write it to run on an i-Phone, or re-write it to run within your CRM system?  Big questions with lots of impact both in the short term or long term.

Conclusions

Senior engineering management is a tough job with many tasks and responsibilities, too numerous to list here, but including team dynamics, people management, strategic funding decisions, and golf at expensive resorts.  Middle management has similar responsibilities, without the golf.

Great organizations are rarely the product of good luck.  Great leadership recruits the right people, puts them in the right roles, identifies problems and fixes them, and looks ahead at trends to make sure resources are assigned to the right places.

In Scrum, this doesn’t require a lot of managers, but does require of lot from managers.  Empowering managers to act, and ensuring that they do, is critical to the long-term success of your Agile organization.

What’s a Manager to Do? Management’s Role in Scrum Organizations, Part II

March 12th, 2010 by lorne cooper No comments »

I love the concept of self-managing teams.  Everyone figures out what needs to be done, and does their best to make the greater organization successful.  Beautiful.  Reminds me of the Shaker Village, the Russian Artel, or the Israeli Kibbutz.  All of which are (largely) extinct today.

There are three structural problems that, like termites behind the wallpaper in a French Quarter house, cause these “worker’s paradises” to fail.  Our job, as managers of the Innovation Engine, are to sniff ‘em out, expose them, and exterminate them.

Problem #2: PURE – Previously Undiagnosed Recruiting Errors

My old boss used to tell me there were three kinds of programmers.  Those smart enough to do the job, those too stupid to do the job, and those that could do the job but don’t care to.  Well, that’s not exactly the words he used, but this is a family blog.

None of us is the perfect recruiter, and every once in a while people get through the screening process that we’d rather have work for Al Qaida.

The incompetent developer (which we managers code name “moron”) is not always the one who takes the longest to do a story.  If some developers generally take longer than average to complete a story, they may be “slow” (as my grandmother would have put it) or the estimates may be dominated by optimists.  Until you’re measuring the amount of rework created by bugs found in QA (and the field), you really won’t know.

That doesn’t mean you don’t have to take action: managers have been acting on intuition since the Donner party decided to try the Sierra Nevadas in the winter of 1846.  Sometimes it’s better to eat the mule than have the whole group starve.

As engineers we tend to focus on technical proficiency, but there are some things which are hard to judge in an interview.  Like whether a developer has good judgment of when to refactor and when to patch.  Or whether a developer can embrace process changes or will struggle for weeks with the changes.  Or whether a developer has that certain combination of personality traits that make their coworkers doodle pictures of poisons, weapons and torture devices.

Now finding the sociopath may be more difficult than you think, because they’ve cleverly chosen to hide out amongst programmers, most of whom act as though still carrying scars from middle-school.  Like a submerged rock in the river, sometimes they can best be detected by the havoc they leave in their wake.

Developers generally treat managers using the same rules the Mafia use with the DA: no matter how much we loath our co-workers, we’re not going to rat them out.  One-on-one meetings with group members can give some indication of problems.  A few tactful questions at retrospectives may give some clues to underlying issues that aren’t being discussed.

Try inviting the group to try a little pair-programming and see what pairs get put together, and who threatens to quit.

Finally, the toughest people management issues are when good performers drop off.  Often this is a temporary fluctuation which just requires some coaching: do they need some customer visits to increase motivation, maybe a chance to learn some new technology they can apply, or sometimes there is a transient personal problem that just needs a little extra time.

Often, establishing expectations with people of what needs to be improved and then giving them a little time to do so is just the right prescription.  They may need mid-course correction and coaching to improve.  They might just need a supportive shoulder, or a swift kick in the pants, but the combination of communicating the issue, establishing higher expectations, and providing support is a good combination for improving performance.

Unfortunately, persistent decreases in performance are usually like that oil leak under your car every morning: they indicate there’s more going wrong than you thought, they’re probably going to get worse, and if untreated the future isn’t going to be pretty.

The most common mistake I see in my conversations with engineering management is the “conflict avoider.”  We’ve all made excuses about how long we need to wait to see if the situation can improve, how hard it is to find new talent, how much training time and ramp-up it is going to take to get a replacement up and productive.  And don’t forget the ‘ole disempowering “I can’t make a change in the middle of the project!”

These are just excuses. We owe it to both the team and the company to accept our mistakes, make the changes, and get on with building a better future.  That’s what we get paid to do.

What's a Manager to Do? Management's Role in Scrum Organizations, Part I

March 4th, 2010 by lorne cooper 1 comment »

I love the concept of self-managing teams.  Everyone figures out what needs to be done, and does their best to make the greater organization successful.  Beautiful.  Reminds me of the Shaker Village, the Russian Artel, or the Israeli Kibbutz.  All of which are (largely) extinct today.

There are three structural problems that, like termites behind the wallpaper in a French Quarter house, cause these “worker’s paradises” to fail.  Our job, as managers of the Innovation Engine, are to sniff ‘em out, expose them, and exterminate them.

Problem #1: “No, you can’t have a BB gun until you’re older.”

Scrum was the solution to product and project managers trying to both predict the future and over-control senior development talent.  Take away the control freak, and we can all let our hair down. We can do what we always knew was right.

Unfortunately, it’s hard to keep a team like that together forever.  The world is a fast changing place, people leave, new people are hired, some are inexperienced, and some good people become more interested in keeping their teenager off drugs than in completing user stories in your ERP system.

Can’t say I blame them, but this isn’t a welfare agency here, and we’ve got to get work done.

Teams, like individuals, have different levels of motivation and different levels of competence.

Let’s imagine that you’d never been on a sailboat before, but decided to try a cruise in the Caribbean aboard a 63’ Sloop (whatever that is).  I’ll bet you’re expecting the captain to train you to do some pretty straightforward tasks, and make sure they’re done correctly.

How’d you feel if the captain shook your hand and walked off onto the pier?

Some years ago, before the One Minute Manager had made him too rich to worry about such things, Ken Blanchard realized that there were different management styles appropriate for different situations.  He (and Hersey) created the Situational Leadership model to map effective leadership styles to different situations.  The most effective leadership style for a group of people who are Capable + Motivated to complete a task is delegatory: set up the process and let them turn the crank.  Sounds like Scrum!

Now not every team gets to work on Avatar.  Somebody’s got to fix that potato peeler code running on the mainframe, and that somebody just might be you.  If you’ve got a team of people who feel like they only get the projects no one else will take, who don’t have a lot of experience with the code and think it’s pretty badly written, and maybe haven’t been out of college long enough to have the wonderful motivation of monthly mortgage payments, that “hands off” style won’t get a lot of productivity.

This comes under the general heading of “coaching”, and some of us are better at it than others.  If you couldn’t figure out why your kids couldn’t learn to ride a bike while you were holding it, if you describe design ideas as “brain dead”, or if you think emailing a link to the manual is a substitute for training, then coaching might not be for you.

And coaching applies to team dynamics, too.  Sometimes the reason senior people didn’t go into management is because they have their own social challenges.  These senior types might not play well with others, and might need a little counseling, if not metal detectors, to keep the atmosphere professional.

Some philosophers think people are inherently good, and bad behaviour comes from social organization.  Some philosophers think people are inherently selfish and bad, and good behaviour comes from compliance with social organization.  My wife hasn’t told me what I think yet, but as managers we are responsible for making sure team members have the coaching and motivation to be successful.

SQE "Agile Comes to You" Tour Update

March 2nd, 2010 by AccuRev No comments »

Over the past few months, SQE’s “Agile Comes to You” tour, featuring AccuRev, Rally, AnthillPro and Coverity has been touring Agile hotspots across the country.  The most recent seminar was held on February 24th in Atlanta, with other stops along the way including San Francisco and Boston.

Seminar attendees are presented with talented keynote speakers, impressive product demos and a Q & A panel of Agile tool experts.  The photo below was taken during our Boston “Agile Comes to You” seminar.

Boston Seminar

During these half- day seminars, attendees get to witness live demos of software development best practices and tools, all necessary to make Agile successful within development teams.  They also learn core fundamentals of Agile engineering practices and are able to see how AgileCycle, an integrated best-of-breed tools suite, enables quality, collaboration and visibility for development teams, managers and executives.

Up next on the tour agenda? Seattle on March 17th and Dallas on March 18th.  So if you are in these areas, come visit AccuRev and learn more about what AgileCycle can do for you.

Register here for the Seattle seminar, and here to register for the seminar in Dallas.

Rolling out Agile? What to Consider

February 23rd, 2010 by AccuRev No comments »

You’ve started to think about going Agile. Rolling it out is a big job; it will require a commitment, education and partnerships with other companies.  But in order for your company to successfully roll out Agile, there are some pitfalls to avoid.  Consider these factors involved for a successful agile implementation.

Agile promises a swift return on your investment. You no longer have to wait for your long waterfall to reap the benefits of your development team’s efforts. The problem now is being able to transition those teams to going Agile. How are you going to manage these transitions? Rolling out Agile to an entire development organization isn’t going to happen overnight, but using a set of standard success stories, you can optimize the results.

In addition, this transition isn’t free, it requires money up front to organize your rollout. If your rollout is not successful, your investment could be lost. Even worse, if your implementation is not optimal, you can actually cause impediments, and work could be lost. Using an Agile and tool stack can help ease this transition, and help provide you with the visibility you need to see if Agile is improving your quality, and bringing back the return on investment you originally were looking for.

Over the next couple of weeks we will look closer at Agile implementations, and factors that successful companies have used to roll out their agile solution.

The Right Stuff

February 18th, 2010 by AccuRev No comments »

Here’s another great whitepaper.  This one is by Michael Sayko, called “Doing Agile Right.” Michael talks about the benefits of using AgileCycle during the development process and the importance of utilizing an Agile ALM Suite.

Michael Sayko says this about AgileCycle: “When used in isolation, no tool supports the entire Agile development lifecycle.  AgileCycle tackles this problem by providing an end-to-end view of user stories from their creation, to their implementations in code, to their realization as working software.  Not only does AgileCycle facilitate the planning and execution of Agile projects, but it manages the code developed for each iteration, the builds created from that code, and the deployments of builds to test and production environments.”

“AgileCycle is able to manage the complete Agile development lifecycle because it integrates best of breed products that collectively support all aspects of the lifecycle.  In particular, AgileCycle integrates:

  • Rally for Agile lifecycle management
  • AccuRev for software configuration management, and
  • AnthillPro for build and deployment process automation.”

To read Michael’s explanations of how Rally, AccuRev and AnthillPro integrate to form a best of breed Agile ALM solution, read the rest of “Doing Agile Right.”

Agile Cycle: "Dream Come True"

February 15th, 2010 by AccuRev No comments »

There is a new and informative paper called “The ‘Best of Breed’Agile ALM Solution” by Ben Weatherall, configuration manager at PDX, Inc. This paper provides great insight into AgileCycle; excerpts are shared below.

“With the release of AgileCycle, it seems to be the year Agile ALM will finally be a reality!  So what are the minimum requirements for an ALM solution for Agile?  There needs to be an Agile-specific management system, a workflow engine, a version control system, a defect and enhancement tracking system and a build management system.  And each of these components need to be supplied by vendors that have good reputations and “corporate” stability, be responsive to user requests for change and defect resolution and be considered among the “Best of Breed” in their market niche.”

“So forming a “Best of Breed” ALM solution from multiple vendor components would be something like having AnthillPro manage the overall ALM framework and the builds while AccuRev manages the version control, changes tracking and DIET functions and Rally handles the Agile-specific management stuff and helps control the content and organization of the reported defects and announcements.”

“With the advent of AgileCycle, we finally have a solution where the various vendors cooperate in creating an out-of-the-box integration tailored to Agile development.  All of them supporting it is a dream come true.”

Dream come true? AccuRev thinks so too.

To read the complete version of “The ‘Best of Breed’ Agile ALM Solution” by Ben Weatherall, see AccuRev’s Product Reviews.

Agile’s Advantages for Business Requirements

February 4th, 2010 by AccuRev No comments »

A couple of posts ago we talked about Agile’s business values; now we want to talk about business requirements.

It is important to deliver requirements with the highest business value in each iteration so that the client receives quantifiable results. Businesses are under pressure to deliver results and, for the most part, they cannot sustain a competitive advantage if they have to wait an extended period of time for business value from the developers.

Not all requirements have the same value to the client; some requirements are essential to the business’ objectives whereas others, like infrastructure improvements, may be perceived as having little business value. Some requirements that reflect business value should be prioritized high for each iteration. This way, in each iteration, the developers deliver business value to the recipient.

In conclusion:

  • Identifying the requirements of a system that are important to the client is often the most important phase in measuring successful software development projects
  • Prioritizing requirements so the client receives software that provides quantifiable results with each iteration or release benefits business development
  • Better business value is delivered with each iteration

Couldn’t your business develop better through identifying and prioritizing your requirements?

AccuRev Introduces AgileCycle Suite for Agile ALM

January 26th, 2010 by AccuRev No comments »

AccuRev today announced AgileCycle™, the first fully-integrated best-of-breed Agile ALM solution incorporating Software Configuration Management, Agile Lifecycle Management, and Build and Release Management. AgileCycle consists of the award winning software development tools AccuRev Enterprise, AnthillPro, and Rally Enterprise, delivering a comprehensive Agile suite for scaling and optimizing the Agile software development process.

AgileCycle is designed specifically for today’s Agile development teams and provides CIO’s and development managers with a best-of-breed tool set to further automate the Agile software development lifecycle. AgileCycle offers a single-vendor solution with AccuRev providing comprehensive services across the toolset, including deployment, training and support. This combined solution ensures complete management visibility of projects, improved team productivity and quicker ROI for scaling Agile development initiatives.

Agile development methods continue to gain ground due to dramatic time and cost savings for companies and their software development organizations. “By 2012, agile development methods will be utilized in 80 percent of all software development projects,” according to a recent report by Gartner (“Predicts 2010: Agile and Cloud Impact Application Development Directions” – December 3, 2009).

Utilizing Agile to Deliver Business Value in Every Step

January 25th, 2010 by AccuRev No comments »

The last couple of posts have been about the importance of development tool stacks and what tools are available. This post moves on from there to discuss how Agile delivers business value in every step of the development process.

In software development projects, more teams have been adopting the Agile methodology instead of the Waterfall model because of the advantage of the former in delivering business value quickly and efficiently. The development cycle using the Waterfall model often takes a year or more, which means at the culmination of a project, the initial requirements of the project will most likely be outdated. This results in new software that may have less value in the market for the client than originally planned. One benefit of moving to Agile processes is having short iterations so the team can adapt to changing requirements and complete valuable and relevant deliverables in a faster timeframe.

A frequent stumbling block inherent in the traditional development process often arises when identifying system requirements. In this phase, the developers work with the client to establish the functionality of a system or more specifically what will be built. This is when the business value of each requirement is evaluated. Problems often arise at this point because the client does not know exactly know what they want or they may think they do and then change their mind as the project moves forward.

In Agile, the client can continuously give feedback on what has already been delivered. The developers can then update the requirements and their business value based on the desires of the client. To achieve this, a developer would be best served by working with Agile development tools that offer complete management visibility of projects throughout the entire development process and into production. This makes it easy for changes to be made during the process, and the client can realize their business value along the way.

Wouldn’t you rather make changes with each iteration than at the end when the project should be complete?