EXTREME SCOPING™ Agile DW/BI Project Team Dynamics
Traditional project teams depend on the project manager to coordinate and assign tasks to individual project team members and to track and report the progress of the project.
The project manager also reviews the work deliverables and makes project-related decisions. The individual project team members are responsible for their own task deliverables, which they hand off at the appropriate time. For example, the requirements analyst gathers the application requirements, which are then handed off to the data modeler who creates the logical data model, which is then handed off to the database architect who produces the physical data model and builds the database structures, which are then handed off to the developer who constructs the application. The only collaborative interactions that involve the entire team happen once a week during the status review meetings. This approach is ineffective for agile DW/BI projects that must deliver every 90-120 days.
Self-organizing project teams
With the Extreme Scoping™ agile approach (described in my previous article), the project management function is performed by the entire core team and not by a single project manager. The following figure (Figure 1 – DW/BI Team Organization) illustrates how a self-organizing project team is organized.
The core team should be staffed by a seasoned project manager; a business representative or subject matter expert who has the authority to make decisions and to set business policies; an enterprise information management (EIM) person like a data administrator who is trained in data administration disciplines, such as logical data modeling, normalization rules, data standards, taxonomy; and at least one senior technical person (lead developer or technical architect) with strong programming and technology skills. All core team members together comprise the project management team, which replaces the single project manager function. The core team members manage all software releases of an application, thus ensuring continuity and knowledge transfer.
Core teams are self-organizing SWAT teams where all members of the team (together as a team) coordinate and assign tasks to each other. They review each other’s work, collaborate on project issues, and make project-related decisions. The entire core team meets every day for a status review, and the core team members take over each other’s tasks when needed, for example, when a core team member is out sick.
A core team must be very small; a team size of 3 to 5 people (per project) is optimal. Project core teams should never exceed 7 people per project.
Development Track Team
As Figure 1 implies, development track teams are extensions of the core team, but they do not participate in making daily project management decisions. They do, however, function similar to the core team within their own tracks.
The most common tracks are ETL, BI application development, and metadata repository (MDR) installation or development. If metadata is not a deliverable, then at least two development track teams work in parallel, namely ETL and BI application development.
The development track teams are led by the lead developer or technical architect from the core team. You may also choose to have a separate lead developer or technical architect for each development track, if that better supports your organization and if you have the resources. Development track team members should be developers that have the skills needed for their particular track. They only participate in track-specific tasks for the duration of their track activities.
A development track team is even smaller than a core team; a team size of 2 to 3 people per track on one project is optimal. Development track teams should never exceed 5 people per project.
The extended team members play traditional roles and participate on the DW and BI projects on an as-needed and as-scheduled basis, not on a full-time or daily basis. Members of the extended team may be heavily involved only at certain times during the project, or they may be called intermittently for their expertise and contributions. Extended team members include technicians and businesspeople who contribute in much the same way they do on traditional projects. Extended teams include support roles such as technical support, operations, the security officer, IT auditor, the business sponsor, and other stakeholders.
The core team, the development track teams, and the extended team make up the complete DW/BI project team.
BI Steering Committee
The BI steering committee is an advisory body of business executives and senior business managers, who understand BI and DW, who support enterprise-wide activities, and who provide collective sponsorship. They meet on a regular basis to discuss, plan, staff, and fund business initiatives. They stand behind a DW/BI strategy that supports the business drivers. They fund the EIM group to perform enterprise-wide data governance activities. They also free up businesspeople from their operational responsibilities so that they can participate as members on the project core teams.
BI Program Manager
The BI program management office is led by a BI program manager (director) who works directly with – if not for – the BI steering committee. The BI program manager performs periodic readiness assessments to identify new information needs and to ascertain the satisfaction among businesspeople with the DW and their BI applications. With the backing of the BI steering committee, the BI program manager creates a BI strategy and enforces the common technical and non-technical infrastructure components in the BI environment. Working with the BI steering committee, the BI program manager prioritizes BI and DW projects, determines the project interdependencies, and coordinates the project resources and activities around these interdependencies.
Team Interaction and Communication
The dynamics of an agile self-organizing project team are different from that of a traditional project team.
The core team members have their assigned cubicles and offices, but they do not spend most of their time in them. Instead they collaborate, brainstorm, solve problems, and make decisions together in a “war room” dedicated to their project. They meet every day to review status and deliverables and to discuss roadblocks and solutions. Sometimes these meetings last ten minutes, at other times working sessions could be scheduled for half a day. During these sessions, individual assignments are distributed to the appropriate team members who will work on them right after the meeting and report back the following day.
The development track team members also meet every day but only to review the status and deliverables within their own track. They collaborate, brainstorm, solve problems, and make decisions together on their track-specific issues. Communication with the core team is automatically accomplished through the lead developer or technical architect, who is managing the development track teams.
The extended team meets with the core team once a week, usually on the same day and time of the week. The core team members set up the meeting schedule at the beginning of the project, and the sponsor sends out the notification to the extended team members. The meetings are scheduled for one hour, but could be as short as ten minutes if no major issues are to be discussed. The purpose of the weekly meetings is to keep all team members current with activities, status, and issues of the project.
In summary, when you use an agile approach to DW and BI, you have to convert your traditional project teams into agile, self-organizing SWAT teams. The key is to keep your project teams small. Transfer the project management activities to the core team members (collectively). Be sure you have a business representative on the core team. Your development track teams should be 2-3 developers (per track, per project). And finally, include the extended team members on your project on an as-needed basis.