Escolar Documentos
Profissional Documentos
Cultura Documentos
July 2004
Contact Information
This information was prepared by:
www.rjgtech.com
This document is protected under the copyright laws of the United States and other countries as
an unpublished work. This document contains information that is proprietary and confidential to
RJ Goodman Technologies that may not be disclosed, duplicated or used in whole or in part for
any purpose other than to evaluate our services. Any such use or disclosure in whole or in part of
this information without express written permission from RJG Tech is prohibited.
Head of
Development
The functional organization makes use of the fact that the major software engineering
functions follow a well-known pattern known as the systems development life cycle.
Projects are accomplished by passing the work from one department to another as the
project moves though its life cycle.
After the completion of the project, the new software may become the responsibility of a
“maintenance” group, which may be a part of the same department, or a separate one.
This group will learn the software and perform minor maintenance. A major new release
of the software will prompt a new project to be initiated.
Head of
Development
The project manager has full authority to hire, fire, train and promote people during the
course of the project, as well as take corrective action. In fact, the project manager has
all of the “planning”, “organizing”, “staffing” “directing” and “controlling” responsibilities
and authorities described earlier.
Project teams may be formed from pools of available personnel, or from outside
contractors. At the end of the project, the team is disbanded.
A true project organization will treat requests for service as a
project. For example, a maintenance request to an existing
product that enters the Development organization will cause
The Matrix
the creation of a project team – there is no “maintenance Organization
organization” within Development. If such an organization requires the most
exists, it is always outside of the Development organization detailed definition of
and it handles minor software maintenance requests responsibility.
independently of Development.
Without it, managers
will find it very
3.3 The Matrix Organization
difficult to determine
The Matrix Organization has characteristics of both the
Project and Functional Organizations. The project manager
the limits of their
has the responsibility and authority for completing the authority.
Head of
Development
In the matrix organization, the project manager usually does not have the full authority to
hire, fire, train or promote people. The project manager does manage the day-to-day
supervision of the project personnel, but the functional manager is responsible for their
career planning, training and well being.
Since the individual worker is “supervised” by two separate managers, this system is
sometimes called the “two-boss” system.
Functional Organization
Strengths Weaknesses
Organization already exists, allowing for No central position of responsibility or
quick project start up and phase down. authority for any project
Recruiting, training and retention are The interface between development
easier. Associates can develop deep functions may cause problems, and these
expertise in their functional areas. problems are typically difficult to solve,
particularly due to the “pier-to-pier” nature
of the functional areas.
Policies, procedures, standards, methods, Projects are difficult to control. High risk of
tools and techniques may be established “runaway” projects, as no one will have
ultimate delivery authority and
Project Organization
Strengths Weaknesses
A central position of responsibility and Organization must be formed for each
authority exists for the project. Highest project.
level of project control.
Much easier to pass work across the Recruiting, training and retention may be
software engineering functions as each more difficult.
function resides inside the project team.
Decisions can be made quickly. Policies, procedures, standards, methods,
tools and techniques may need to be
established for every new project.
Staff motivation is typically high. Team members may not develop deep
knowledge in a functional area.
Matrix Organization
Strengths Weaknesses
A central position of project responsibility Responsibility for and authority over
and authority is created, compared to project members is shared between two or
functional format more managers – unlike project or
functional organizations.
Fewer difficulties in passing work across It may be too easy to move people from
the software engineering functions than the one project to another, unlike functional or
functional format. project formats.
Recruiting, training and retention should be Staff motivation may be lower than the
easier than project organization. project format.
Policies, procedures, standards, methods, Greater competition exists for resources
tools and techniques should already be than project or functional format.
established
It is easier to start and end a project than
in project organization.
More flexible use of people is possible than
either project or functional formats.
Purpose
Each functional area has functional directors and leads. Their primary role is to be a key
functional resource for projects, enhancement and support. They are responsible for
making sure good project decisions are made within their functional areas. They will do
that by ensuring knowledge is transferred in their areas. They also will establish and
educate their functional areas on best practices, policies and procedures. Functional
management will also facilitate career development of the functional team members -
career path, career plan, training, etc.
It is within these functional areas that specific thought leadership and responsibility is
necessary to incorporate internal lessons learned from each project and evolve the
thinking, approach and delivery of these skills for future projects. From this perspective,
functional managers must help define, track and take responsibility for project
performance metrics related to their functional area.
Roles
Team Lead – Ensure good project decisions are made within their functional area via
best practice and resource management
Director – Ensure overall policies are followed and skill sets are managed and evolved.
Purpose
Product Design’s (may be called System Design) mission is to work with Marketing,
Support and Sales or other operational business units to define the product or system
requirements.
In organizations that are developing commercial software, Product Strategists work with
Product Managers in Marketing to develop product roadmaps and strategic plans.
Product Analysts define, analyze and document the product requirements and
communicate the project goals and objectives in the framework of a Project Charter.
In organizations that are developing custom software for internal business units, a
similar requirements process is used that defines a system roadmap and strategic plan.
Again, the overall project goals and objectives are developed into the framework of a
Project Charter that justifies moving forward and allocating resources.
Designers are responsible for the visual presentation of the software and the
development of use-cases that describe how the software will be used. The documents
produced by the Product Design team are the Strategic Plans, Product Roadmaps,
Project Charters, Business Requirements, and User Requirements documents. All roles
will have extensive interaction with marketing and internal or external customers.
4.3 Architecture
Purpose
Architecture’s mission is to work with Product Design, Programming, and Testing to
develop and evolve technical infrastructures, high-level application architecture and data
architecture. The architecture team members all have a strategic vision as well as
project responsibilities. Infrastructure Architects work with Software Engineers and
Software Test Engineers to define and build the application middleware layer.
Application Architects work with Product Designers, Software Engineers and Software
Test Engineers to develop the high-level application architecture components. Data
Architects work with Software Engineers and Software Test Engineers to develop data
definitions and structures that are used across all products. Architecture reviews and
participates in the creation of Specifications, Product Prototypes and Designs, and
produces Architectural Design documents.
In a Matrix Organization, the Architecture functional area has the responsibility and
opportunity to see across projects and coordinate and leverage architecture decisions
and investments for the overall benefit of the organization – and this is balanced with the
needs of the individual projects. The matrix organization must be prepared to arbitrate
when the needs of the project are not consistent with other needs of the organization.
Roles
Infrastructure Architect – Determines overall technical framework used and application
middleware layer
Application Architect – Determines high-level application architecture components
Data Architect – Determines data definitions and structures that are used across all
products
Purpose
The Programming area’s purpose is to produce high quality software by using
specifications, prototypes, architectural and data designs to develop software modules
that are unit tested. Programming produces Detailed Design documents, Code, and Unit
Test Plans.
Project teams will be assembled quickly and are expected to deliver as quickly as
possible. These teams should not usually be burdened with the development of coding
techniques and tool selection. The Programming area should have best practices, tools
and trained staff ready. These functional areas will typically need to develop a “tool box”
of coding tools from which individual project may select those that are most appropriate.
Organizations that our developing software for internal use may have a tool box that
includes tools necessary for enterprise application development, e-commerce/internet
application development, small application development as well as reporting and
analysis tools. If these standard tools do not meet the needs of a project, then the
project team, with the participation of the functional area will need to find new tools as
part of the project plan.
Roles
Software Engineer – Produces Detailed Designs, Code and Unit Test Plans
Senior Software Engineer – Produces Detailed Designs, Code and Unit Test Plans
Principal Software Engineer – Produces Detailed Designs, Code and Unit Test Plans
Data Base Application Engineer – Produces SQL, scripts, triggers & procedures to
access the data base
Data Base Administrator – Builds and tunes the physical data base
4.5 Testing
Purpose
The Testing Departments’ primary function is to identify defects, isolate their cause, and
report them to developers.
The process of testing involves:
! Test planning & design
! Test execution & verification
! Automated test development
! Defect tracking
Testing types include: functional, software/hardware compatibility, setup, localization,
performance and scalability, error handling and recovery, reliability and robustness.
Testing produces Test Plans, Bug Reports.
While each project may require significantly different testing approaches and test cases,
the functional area, as possible, must be able to leverage a suite of test cases that can
be used as a starting point when each project seeks to implement a related system.
Roles
Software Test Engineer – Produces Test Plans and Bug Reports
Senior Software Test Engineer – Produces Test Plans and Bug Reports
Principal Software Test Engineer – Produces Test Plans and Bug Reports
Test Automation Engineers – Produces Test Automation and Training
Software Measurement Engineer – Produces Metrics and Meters
4.6 Documentation
Purpose
The Documentation Group’s primary purpose is to provide accurate, concise, complete,
user-friendly documentation that enables our customers to effectively use our products
to solve their business needs. In addition, the Documentation Group works closely with
the Product/System Design Group to develop easy-to-use user interfaces. The
Documentation Group also provides editorial/graphic/publication support for other areas
of the company. In some cases the documentation group may also be responsible for
the development of training materials.
Whether for a commercial product or for internal users, the Documentation area must be
able to develop consistent documentation so that users of a system developed by one
project will be comfortable with and feel familiar using the documentation resulting from
a different project.
Purpose
The Project Management Team’s purpose is to manage projects, releases and patches
through to completion. All roles in Project Management are involved in planning,
organizing, staffing, directing and controlling. Naturally, a consistent methodology must
be implemented across all projects. The team must have the ability to control the level
of detail used to manage small projects compared to large projects.
Roles
Project Planner - Reports to the project manager; responsible for maintaining project
plans and project documentation
Project Lead - Reports to the project manager; responsible for a team within a project
Project Manager – Responsible for the success of project. Has decision-making
authority for resources, budgets, issues, risks and scope of a project
Purpose
The Software Engineering Process Group is a central force for process improvement.
The group maintains the overall view of current efforts and facilitates these efforts on a
continuing basis. Its members foster collaboration between everyone in the organization
who is involved with software process improvement.
Roles
Software Process Engineer – Manages implementation and maintenance of SDLC and
PM processes
Tool Designer/Developer – Supports design, research and acquisition of tools to
support the SDLC and PM processes
Testing
SS - Shared Service
D - Dedicated Service
5. Conclusion
Many organizations will find that a strictly functional
organization can not properly take responsibility for the A significant reason
delivery of projects. All organizations should care deeply for business units
about the success of their projects. Often, the functional losing confidence in
approach can lead to a perceived misalignment in goals and
their IT organization
priorities.
is a perceived
In many cases, organizations will formally establish “project
teams” but will not formally incorporate them into the
misalignment in
organization structure or define roles and responsibilities. The goals and priorities.
shift to a matrix organization requires attention to specific
project and organization needs as well as to culture and existing skill sets.
When organizations formalize their need for and implementation of project teams, the
switch to a matrix organization can result in real benefit and collaboration, and most
importantly, project success.