External versus Internal Dependencies

External dependencies for the development project would include any connections to the work products of other projects. These may be higher-level projects (see Step 2, "Find Any Higher System WBS," in the "Building a WBS for Softwaré section of Chapter 8) with dependencies on your project's work products or deliverables. Your project may be dependent on other development activities parallel to the software development. An example of this is when there is a higher-level WBS describing a total turnkey system solution under development that includes hardware (customized, or just assembled), software (what you are responsible for), and installation and training (you may or may not be responsible for all or part of this).

Another source for external dependencies is stakeholders. Stakeholders are anyone who has an interest in the project and who might influence it in a positive or negative way. An early project planning activity is to identify stakeholders and plan to manage relationships with them during the course of the project. This minimizes the chances that someone will "come out of nowhere" and destroy the project, since managing expectations and monitoring requirements changes is a big part of managing a software development project.

Stakeholders include, at a minimum: the project team, the sponsor, the functional manager(s), the customer(s), and the user(s). Sometimes the customers' customer or the user's users are included as well. Stakeholder management happens early and throughout the project, and includes communication and soliciting of stakeholder input for planning and scheduling, not just in requirements analysis, but throughout the planning process. Often, it is recommended to assign responsibility to the members of the project team to manage stakeholders on a one-to-one basis. This need not be a time-consuming activity, but the chances for surprise diminish if people on the project take explicit actions (such as occasional emails and short update visits or phone calls) to keep the stakeholders connected to the project and its goal. This is relationship management and is just as important to the success of the project as the technical parts, because projects in business are not just about transactions, but are about relationships, too. The objective of stakeholder management is to obtain and retain stakeholder buy-in to the project's objectives and plans. Individual stakeholder contacts can be selected using a variety of criteria, such as:

• Existing social relationship with a stakeholder—was there already an acquaintance in another context; ® Shared domain—both are database gurus or GUI experts who have attended similar conferences;

® Expect to work together later—maybe as a tester, installer, or beta user of the developed product;

• Common location or language—share the same workplace, campus, city, country, or time zone.

Examples of stakeholder dependencies that are important to many software development projects are major business events important to the customer, orto their customers. If you are developing a software system for a client to resell in the client's specialized marketplace, the customer's marketing team may have events such as trade shows at which they would want to show early versions of the software (often beta versions). This is an important dependency to know about for your project schedule, as it implies some kind of working version to be ready by some (immovable) date. This can really put a lot of pressure on a project team trying to develop a working product for a real deliverable later. It should be treated as a hard project constraint (on the schedule side of the triple constraint triangle). Experience suggests that this kind of event can be overlooked in the planning steps of the project life cycle because they may be on the periphery of knowledge of the direct customer from whom you get most of your requirements information.

Another major source of external dependencies are suppliers. They are also stakeholders, but are usually much closer to the project than most external stakeholders. Often, there are specific contractual relationships that can dictate firm constraints for the project. An example of a supplier dependency might be an interface to a third-party system that your software must communicate with. You may be dependent on another project's schedule in another department, company, or location over which you have little or no control. These become constraints for your project and cause a high need for contingency planning.

Internal dependencies abound in a software development project because the modules, components, and processes are so interrelated. Many of them are a direct result of relationships between components in the product-oriented WBS. For instance, the complete system build is dependent on all of the code for the components being compiled and ready. There are also many integral process dependencies in a software development project. These would include configuration management, project management, and software quality assurance. These tend to be very project specific, but some examples of common dependencies are:

® Project plan sign-offs and approvals; ® Requirements sign-offs and approvals; ® Internal or external management review cycles; ® Configuration item identification; ® Software quality audits.

It is recommended that these dependencies are represented as milestones in the software development project plan. Often, there is more than one activity that must be finished to recognize them anyway. Showing external dependencies as explicit milestones shows that your project is dependent on inputs out of your control. These must be kept visible and monitored frequently, as slips in them can cascade throughout the rest of your project plans. Describing project milestones was described in Chapter 8.

Project Management Made Easy

Project Management Made Easy

What you need to know about… Project Management Made Easy! Project management consists of more than just a large building project and can encompass small projects as well. No matter what the size of your project, you need to have some sort of project management. How you manage your project has everything to do with its outcome.

Get My Free Ebook

Post a comment