Com Patterns
Com Patterns
DEVELOPMENT NETWORKS
Maria Paasivaara, Casper Lassenius and Jarkko Pyysiinen
Helsinki University of Technology
P.O.B 9600
FIN-02015 HUT
Finland
E-mail: [email protected], [email protected],
[email protected]
ABSTRACT
We present communication needs, patterns and practices found in networked
software development projects. Based on 34 interviews in eight distributed interorganizational projects carried out by large, experienced organizations, we found
no systematic approaches to communication. Instead, practices were invented on a
need basis at the project level. We identified four communication needs, as well as
nine communication practices that addressed those needs. Five of the practices
were found in three or more projects, and therefore classified as patterns. We
propose that systematic collection and dissemination of working communication
patterns for networked product development projects could help managers better
plan and execute such efforts.
INTRODUCTION
Effective and efficient communication is central to systematic success in new
product development (NPD) [1]. Product development projects are increasingly
being distributed across companies and countries, complicating communication in
several ways. Although there is a fairly large literature base on communication in
local NPD, the literature on how to plan and organize for communication in
globally and organizationally distributed NPD is scarce. In this paper we try to
add to existing knowledge by providing a tentative list of communication needs,
successful communication practices and communication patterns found by
studying one specific type of distributed NPD networked software development.
Software development projects are on the one hand easy to distribute since the
product, i.e., source code and documentation, is easy to send electronically
between the sites, and good tools for distributed software configuration
management exist. On the other hand, software is an intangible, invisible product,
making it difficult to understand even locally. Indeed, this invisibility has been
argued to be one of the inherent properties of software development that makes it
so challenging [2]. The addition of geographical and corporate borders certainly
adds to the challenge. We think that these aspects make software projects an
interesting class of NPD projects to study.
As with NPD projects in general, distributed inter-organizational software
development projects, including outsourcing, subcontracting or partnership
relations, are becoming increasingly common [3][4]. Advice for outsourcing and
acquiring large projects or modules with well-defined requirements can be found
in literature [5]. However, many NPD software projects are faced with a lot of
uncertainty, and subcontractors or partners are needed long before these
Collocated Domestic
network
network
project
project
Traditional
1 company project
Same
location
Distributed
project
Same
country
Global
network
project
Globally
distributed
project
Different
countries
= Focus of
the study
Geographical
distance
Case
Projects
Alpha 1
Alpha 2
Alpha 3
Beta
Gamma
Delta
Epsilon
Zeta
Interviews
Partnership
Manager
1
2
1
1
Process
Developer
1
1
1
1
Team
Member
1
1
1
Subcontractor
1
2
1
-
All
1
1
Project
Manager
2
1
3
1
2
1
5
4
2
7
3
4
3
Industry
Distribution
Telecom
Europe & NA
Europe
Finland
Europe
Europe
Europe & NA
Europe & Asia
Bespoke SW
Security
Telecom
SW products
to several
industries
Telecom
Forces
Solution
Resulting
context
Design
rationale
many questions. Finally, most of his time was spend on answering questions. The
media used was most often either email or chat.
Forces
Solution
Resulting
context
Design
rationale
Communicating Developers
Should we allow developers to communicate directly?
Especially in smaller projects, developers from the supplier and the customer,
working on related tasks (e.g., working with the same interface between
modules, or the other testing the module that the other one has developed) need
to communicate with each other.
Developers need to communicate between companies, but on the other hand
too much direct, uncontrolled communication between all developers may lead
to a situation that is very difficult to manage. The project manager may not
know what is going on, and developers may have agreed directly on matters
that affect costs, schedule or other parts of the system. Directing all intercompany communication through project managers may burden project
managers too much and they may restrict the information flow.
Specific developers from the customer and the supplier, working on common
interfaces or problems could be introduced and encouraged to communicate
directly. Internet chat was observed to be an efficient media for this purpose.
Projects managers can concentrate on other things than mediating information,
when part of the information flow takes place directly between developers.
Direct communication is not encouraged with anyone, but between specific
developers from both companies, and regarding specific matters. Decisions
about important matters are still brought to the project managers.
In two case projects (Epsilon, Zeta) developers, working in different companies
and countries, communicated frequently using chat. The chat client made it
easy to see who was present in another company. Several good properties of
chat was mentioned; it is cheap to use compared to the phone, it is possible to
have chat discussions open all the time, several developers can participate in
the conversations, counter questions can be asked right away, foreign language
speakers are easier to understand when the discussion is written, and from a
written conversation it is also easy to copy important paragraphs and, e.g., send
them by email to others.
Pattern name
Problem
Context
Forces
Solution
Resulting
context
Design
rationale
Discussion Lists
How to find an expert of some specific technology from a large project to
answer a question?
Very large projects with expertise widely distributed.
Experts knowing the answers need to be encouraged to follow the discussion.
Project wide discussion lists (news groups) around certain technological topics.
Expertise can be found inside the own project.
Discussion lists were used successfully in two larger projects (Alpha1 and
Epsilon). In a smaller project (Gamma), project wide mailing lists were used for
the same purpose. In an email or discussion list questions asked need to be
explained very carefully, otherwise readers do not understand the questions and
they have to send several mails asking clarifying questions before the question is
understood correctly and can be answered.
Solution
Resulting
context
Design
rationale
Weekly Meetings
How to monitor the project, inform and give feedback?
Weekly meetings, using face-to-face, and/or video- or teleconferencing, are
suitable for all distributed projects.
Physical meetings are difficult to arrange in distributed projects. Also time
differences cause problems. In large projects there are so many participants that
it is difficult for them all to be at work at the same time and on the other hand
they can not all be interested on every detail that happens in the project. On the
other hand all team members, both from customer and supplier, need information
about project progress, next tasks and changes. They need also feedback on their
work.
Short weekly meetings, where the progress of the project, current problems,
changes, and future tasks are discussed. Depending on the number of persons
involved and inter-site distances the arrangements differ.
In a small project all distributed sites can have one common teleconference
meeting. In a larger project smaller meetings can take place in every site or team
and team leaders or project managers can have a common video-/teleconference
afterwards. In a larger project also smaller meetings between collaborative sites
is a possibility.
In three of the case projects (Alpha1, Beta, Epsilon) different kinds of weekly
meetings were used. For example Alpha1 used the practice described above
having first site-specific meetings and then teleconference between team leaders
/ project managers. All projects saw weekly meetings as a useful practice. They
all preferred teleconferences over videoconference as a media used, since they
saw that the picture in videoconference was of low quality and/or equipment
incompatible and therefore did not bring added value.
Practice
name
Problem
Context
Forces
Solution
Monitoring Reports
How to monitor the subcontractor?
Monitoring reports are used between customer and subcontractor to convey
information about the project progress mainly from subcontractor to customer.
The customer wants to monitor the progress made in the subcontractors teams, but
doing this is often very difficult since, e.g., the number of code lines, or hours used in
coding do not give very accurate information. Not following the progress at all can
cause negative surprises.
The subcontractor writes weekly or monthly progress reports which include
information, e.g., about tasks accomplished, open questions, problems, and future
estimations about task / problem solving schedules. The customer gives feedback on
every issue in the report.
Resulting
context
Design
rationale
estimations about task / problem solving schedules. The customer gives feedback on
every issue in the report.
The customer knows the situation in the subcontractors teams, can react fast when
the project is not going in the right direction and can also help in resolving
problematic situations. Feedback received from the customer gives the subcontractor
information that it is doing correct things. Getting feedback also motivates team
members.
Two case projects (Alpha1, Zeta) used monitoring reports. In one project they were
delivered every week and in another every month, since in this project weekly
meetings partly compensated reports.
Pattern
name
Problem
Context
Forces
Solution
Resulting
context
Design
rationale
Frequent Deliveries
How to monitor the progress in the project and ensure that modules are compatible?
You are designing the process for an inter-organizational distributed project.
Monitoring progress is important, but difficult. Concrete results clearly show how the
project progresses. These concrete results also add trust among developers.
Both customer and supplier use iterative process with frequent deliveries.
Subcontractor delivers functioning code during the development phase regularly, e.g.,
monthly or even weekly. The delivery is integrated into the system and tested.
Frequent deliveries, and integration and testing ensure that subcontractor is doing work
that is compatible and requirements are understood correctly. Also monitoring the real
progress is easier. Integration and testing gives developers instant feedback on their
work, which is very motivating. Moreover, when customer sees that subcontractor is
doing good work, customers personnel starts to trust and respect the subcontractor and
its developers know-how, which makes further collaboration easier.
Half of the projects (Alpha1&2, Beta, Epsilon) used frequent deliveries. An iterative
process model, with frequent deliveries seems to be very suitable for network use. The
iteration cycles varied between projects and also between project phases. In project
Alpha 2 two subcontractors used different iteration cycles, which caused problems. We
also noticed that the customer and supplier must do not need to have a common
process. Instead, both can use their own processes, as long as iteration cycles and
major milestones are synchronized.
between parties based on their know-how. Here describe two patterns that were
noticed to be especially good for relationship building, but that also satisfy other
communication needs: Give Faces and Organization Chart.
Pattern
name
Problem
Context
Forces
Solution
Resulting
context
Design
rationale
Give Faces
How to avoid negative attitudes and disregard towards distant sites and partners?
Starting a distributed project with several partners and sites that do not know each
other beforehand.
Meeting everybody face-to-face would be an optimal solution, however that is often
not cost efficient. It is a known fact that it is much easier to disregard questions or
deliveries coming from unknown persons.
Arrange that in a networked project with new partners everybody meets at least
somebody from all other sites they will be collaborating with. This gives the sites
faces, they are no longer unknown and easily disregarded partners. These meetings
can take different forms, e.g., kick-off meeting, collocated working period, training
session or project steering group meeting.
A project with every site having a face.
Project Alpha1 Travelling Steering Group was used as a practice to give faces to
every site. In project Epsilon, testers were very reluctant to test the code delivered by
a subcontractor from a distant country. They preferred to test their mates work first.
The situation improved significantly after mutual visits. In project Beta a common
cruising trip was organized in the middle of the project when project was facing
difficulties. Before this trip many of the workers from different sites had never met
each other. After the trip communication and collaboration improved according to the
interviewees.
Pattern
name
Problem
Context
Forces
Solution
Resulting
context
Design
rationale
Organization Chart
It is difficult to know whom to contact in a networked organization, when you do not
know anyone.
A large or medium size networked project with partners and/or persons that do not
know each other beforehand.
Same as in the Give Faces practice.
Make an organization chart of all persons contributing to a networked project, put it,
e.g., on the project extranet, where everybody in the project can easily find it. This
chart should include names, roles, contact information and preferably also photos and
some personal information, e.g., about hobbies. Update as necessary.
It is easier to find specialists to contact, e.g., when having problems.
This was regarded important in all larger projects. In project Alpha1 the customer did
not want to give the subcontractor customers organization chart, which caused
difficulties to the subcontractor. The subcontractors project manager tried to solve
the problem by creating an own organization chart of the customer by adding new
persons and their contact information, when he met them. In project Gamma a
website with photos and personal information was regarded as very useful.
Weekly Meetings, described earlier. All these should take part of the
responsibility. Define what kind of decisions each of them can make and how the
whole project is informed about those decisions. Having a Travelling Steering
Group was an interesting and successful practice we encountered, the description
of which is in Table 10 below.
Practice
name
Problem
Context
Forces
Solution
Resulting
context
Design
rationale
the limited number of case projects. We believe that even more important than
these patterns described, is the idea of identifying and documenting them. The
idea of collecting and recording experiences from real NPD projects as
communication patterns could bring useful information to managers in a form that
is easy to read and apply in projects. We believe that these kinds of
communication patterns are needed in networked NPD project management.
There are several reasons for this: 1) communication is seen as the main problem
in most of the projects, 2) the current state of the practice is very low, even basic
things are problematic, 3) current practices are project specific and created by trial
and error, 4) good patterns and practices are, so far, not much documented in the
literature.
Besides communication pattern
s and practices, this paper also presented
communication needs found in our case projects. Especially the need for problem
solving communication was recognized to be huge in the case projects, but
agreeing on how to arrange for it was often neglected. Other important, but
neglected, needs were relationship building and project monitoring
communication between distributed team members. These are needs that
managers should pay more attention to when planning networked NPD projects.
Future research
In the future we plan to extend this study on communication patterns and
practices. Our intention is to study more projects and collect successful
communication patterns and practices used in them. We would like to encourage
also other researchers to collect relevant patterns and managers to bring up their
experiences.
REFERENCES
[1] Moenaert, R. K., Caeldries, F., Lievens, A. & Wauters, E. (2000)
Communication Flows in International Product Innovation Teams. Journal of
Product Innovation Management, 17: 360-377.
[2] Brooks, F. P. (1987) No Silver Bullet - Essence and Accidents of Software
Engineering (Reprinted from Information-Processing 86, 1986. Computer 20(4):
10-19.
[3] Heeks, R., Krisna, S., Nicholsen, B., and Sahay, S. (2001) Synching or
sinking: global software outsourcing relationships. IEEE Software, March/April,
pp. 54-60.
[4] Herbsleb, J., Mockus, A., Finholt, T., and Grinter R. (2001) An Empirical
Study of Global Software Development: Distance and Speed. Proceedings of the
23rd International Conference on Software Engineering, ICSE. Pages, 81-90.
[5] IEEE (1994) IEEE Recommended practice for software acquisition, Institute
of Electrical and Electronics Engineers, Inc.
[6] Battin, R.D., Crocker, R., Kreidler, J., and Subramanian, K. (2001)
Leveraging resources in global software development. IEEE Software,
March/April, pp. 70-77.
[7] Mockus, A. and Herbsleb, J. (2001) Challenges of Global Software
Development. Proceedings of the Seventh International Software Metrics
Symposium, METRICS 2001. IEEE. Pages, 182-184.
[8] Carmel, E. and Agarwal, R. (2001) Tactical approaches for alleviating
distance in global software development. IEEE Software, March/April, pp. 22-29.