Skip to main content

Why Use a Requirements Matrix? Part 2.

WhyUseARequirements2-1Follow Up – Multi-Tasking

Click here for Part 1 of this 2 Part series

Here is a quote from one of the project oriented discussion groups I follow: “Multi-tasking, road-runner, or focused effort thinking: Most of our folks have been interrupt driven since they started working in the corporate environment. If a “fire” erupts somewhere, go put it out then start looking for the next fire in addition to doing the project work that you have been assigned. In the Critical Chain (CC)/Theory of Constraints approach, we want people to focus on one and only one task and not multi-task. When people are able to “single-task”, their efficiency and productivity on that project goes way up and CC works miracles. When people multi-task, CC suffers tremendously,” says Jack C. Randazzo, RTR Project Management, Lucent Technologies Inc.

How is training your development team related to successful projects? Time-to-market, or product cycle time, is growing in importance. Methods and tools are rapidly evolving. Project teams are continually being asked to shorten their development cycle. One of the first areas they may be asked to reduce, or even do without, is their own training. As a Quality Assurance Director and as a management and technical consultant, I have been asked to review many ‘time-challenged’ projects in the past few years.

One common factor I found among the projects I have reviewed, almost without exception, is that adequate training of the development team was not planned for or funded. Very few projects had a team training plan. When the going gets tough, developers were asked to pick up a new method or tool, or even worse, both, while working at breakneck speed on the project. This article looks at the reasons why team training is critical and how to construct and use a team training matrix.

Systems, Tools and Methods are More Complex

A common misconception among traditional MIS and non-MIS managers is that development team members can just “pick up new technologies in their spare time…” In the past, most analysts could learn using a new version of a mainframe sorting package, a new version of Microsoft DOS, or a source library system. These were relatively minor updates that built upon existing skills.

Today’s enabling technologies use radically new techniques and tools and do not come without a price. For all that control, complexity is needed. It takes only a project or two that either fails completely or misses functional and time estimates by a factor of three or four to educate managers that integrating such knowledge cannot be done “on the fly.”

Many managers are not used to planning for the systems administration and underlying control of many of the low-level functions of LAN and other Client/Server systems. One of my traditional estimates of the likelihood of a project’s success was that it only addressed one area of technological change. Changing more than one of the database, operating system, methodology, development tools, languages, or platform along with major functional updates was risky, to say the least. Changing more than two at a time almost guaranteed failure or frequent scaling back of project goals. Today, however, projects are cropping up everywhere that change ALL of the above at once! No wonder there is chaos in application development. Your project team will need in-depth training in each new area.

Estimate Your Training Needs

Identify the skills your team needs for the project. My rule of thumb for methods and supporting development tools training averages tool vendor, third-party training vendor, and my experience:

  1. Ask the vendor for a plan to bring your team up to speed
  2. Ask a third-party training firm that you trust for the same
  3. Add the vendor’s and training firm’s estimates
  4. Add in your gut feel for the least amount you can get away with
  5. Divide the total by 3: this is the least amount you should plan for!

For example, if your tool or method vendor recommends 12 days per developer to really learn to get the best of their wares, the training firm recommends eight days, and your best guess is five days, total these. Take your total of 25 and divide by three, giving 8 1/3 days. You now have created somewhat realistic training estimates.

Don’t divulge your formulae, or your management is guaranteed to hold you to your five day estimate, and very well may ask for a reduction. Fight for the full 8 1/3 training days in your project planning sessions! Make sure you cover all the days when the vendor or the training firm and your people can devote 100% of their time to training. Offsite is best, although working in a known environment can help direct attention to the areas that need tuning or other support.

Build Your Project Skills Matrix

Constructing and using a project skills matrix will pay back many times the effort expended. The matrix will have three areas of skills to review: application, technical, and team. To get started, meet with your internal or external customer to review any application-level skills needed. Twice in the recent past, I have had customers volunteer to help train a team, once at no cost! They may welcome your team’s learning more about their business. Your needed vertical skill areas may be financial, distribution, manufacturing, engineering, or a combination of these.

Next, meet with your system architects, technical planners, and technicians that have recently completed a similar project, whether in-house or for another development shop. Contractor programmers and consultants can be invaluable, especially if this is your first foray into a new technical realm. Identify all areas of technical skills that need to be added to or refreshed. Do not forget to list the skills needed to plan and execute a system conversion if you are replacing an existing system.

Finally, meet with all the managers that had any of your team members for their last project. Review each person’s strengths in terms of how they relate and help lead the team, how they handle stress, changes to schedules and project content, and how they may best contribute to your project. Ask if they think training in leadership and teamwork would help them work at a higher level. Make sure you list the ‘soft’ skills your project will require, such as interviewing, prototyping, managing multiple teams, as well as estimating and managing the project plan. Areas frequently overlooked are how to run a meeting, how to gel as a team, accurately figuring and reporting project status, and many times even how to manage a project.

List all the pertinent technical, application, and ‘soft’ skills on one axis of your matrix. Order them by when they will be needed in the project. For example, if you are doing up-front paper-based usability testing, make sure you schedule interviewing and prototyping training early on. If you are doing usability testing with unit tested modules, those skills can wait until just before system test.

List your team members on the other axis. To have maximum flexibility, add four more columns: users, borrowed resources, consultants, and contractor programmers. You may be able to fill in for lacking skill categories by using an expert for a limited time. If you plan to use these outside resources, try not to schedule them for more than four hours per day project work. You will need the rest of their time to mentor your staff.

Now, being as objective as you can, choose a highlighter color for expert, one for skilled, and one for familiar. Highlight the skills you need to have experts, those you need skilled people, and those you can get by with passing knowledge in their respective colors. You may now want to reorder the matrix to show those skills that are crucial to project success at the top, keeping them in order of when you will need them, working down to the nice-to-haves.

To complete your matrix, distribute it to your entire team including consultants and contract programmers, the project sponsor, and any of your peers or managers that show an interest. Use a legend or key to show that you need four skill levels: expert, skilled, familiar, and completely lacking. One way to fill in the blanks is to meet individually with each team member. Another way is to meet team by team in groups of up to ten. A bonus for meeting in teams is that you can brainstorm ways to fill in your project needs. Make sure your team knows that they will be held accountable for their skill level estimates and assigned deadlines accordingly. This tactic may help reduce the optimistic ‘skill creep’ that many resumes have.

Many times management will review and approve a carefully thought out training plan where they will not approve your gut feel. Include your methodology, the risks to the project of not training adequately, and the estimated costs to complete your training plan. Offer several alternatives, with project schedules and costs increased to accommodate lack of training. Use your four extra columns to add flexibility to dates and costs by involving more users, borrowed resources, consultants, and contract programmers. Many times having mentors available, as long as they are not 100% scheduled, will allow you to reduce your training.

While no guarantee of success, my experience is that projects that use a skills matrix have less frustration and tend to be more controlled throughout their life. I am sold on the process of constructing and using a skills matrix. I am working on a Lotus Notes version that I will release to the public domain if there is sufficient interest.

Side Benefits of Training Planning

Training planning sessions highlight the level of experience each of your team has in particular areas. Reviewing their prior training familiarizes you with their interests as well as their proven skills. You may run across someone with unexpected prior experience in an important area. At the least you will have valuable information for input to decisions such as whether to train the whole team on certain tools or set aside ‘specialist’ time for crucial areas.

Planning for training will keep the ‘flail’ time and needless experimenting to a minimum. It also allows you to do ‘Just in Time Training’. People remember their training best when they begin to use it immediately. Many people forget quickly that which they do not practice.

Training planning helps you negotiate with tool and training vendors. When you can spell out exactly what your needs are for the project, you are more likely to be able to price and close a package deal. Don’t overlook points such as free seats for a vendor’s public classes, free passes to annual user group conferences, and documenting your experiences as a ‘success story’ for their marketing efforts.

In evaluating project managers, how well their people were prepared for their tasks can be a critical measure. It can indicate how important increasing their people’s skills is to a manager. We all know that meeting your dates with a quality product is paramount. Holding the interests and loyalty of team members by not asking them to do the impossible will increase the likelihood of your next project being successful.

Don’t forget to leave your comments below


Darrel Raynor is a Principal Consultant at Advanced Management Services, Inc. (AMS), a full service management consultancy servicing a global client base. Darrel Raynor is a senior technology executive, consultant, and turnaround specialist with over twenty years of leadership experience streamlining operations, systems, people, and projects. Darrel increases margin and profit, and decreases organization friction internally and externally with customers, vendors, and partners. Problem solving, process improvement, and operations optimization are his passion. For more information, visit www.amsconsulting.com

© Advanced Management Services, Inc

Resources

Team Training For Successful Projects: Use A Skills Matrix For Planning!
Published in: American Programmer, premier journal of software engineering
Datamation, international large systems journal
Datamation Europe, international large systems journal
Interact, journal of Hewlett-Packard computers

Technology in Business, newsletter

– IEEE Standards Collection, Software Engineering especially IEEE Std 830-1993 IEEE

Recommended Practices for Requirements Specifications.
http://www.apu.edu/~bmccarty/curricula/cs524/srd.html Azusa Pacific University,

Department of Computer Science, CS 524 Software Engineering I is a good, beginning outline for Requirements.
– A Guide to the PMBOK – Project Management Institute
www.pmi.org especially Project Scope Management 5.3, Scope Definition.