Software Project Management Brochure Template Page 24

ADVERTISEMENT

24
Handbook on Software Engineering & Knowledge Engineering
user education, and logistics planning (smooth rollout and migration). Each role
may be played by a number of different people. The process model describes the
project in terms of phases, milestones, activities, and deliverables. It also shows
how they are related to the team model, and what practices and principles drive
the product development (versioned releases, scheduling for an uncertain future,
managing trade-offs, managing risk, maintaining a fixed ship-date mindset,
breaking large projects into manageable parts, performing daily builds, and
using bottom-up estimating). The process model also defines what documents
each role is expected to deliver at precise points in the iterative process. MSF
provides detailed document templates.
Best Practices
Not every practice of software development can be standardized, yet many of
them have proved to be useful in a number of projects and organizations. Most
of such practices come from experience, and it is extremely beneficial for every
project that the project manager and the members of the development team are
knowledgeable of as many such practices as possible. The following examples
illustrate the idea of using such practices in software project management:
Communication problems arising when a distributed team is developing
software must be handled with special care. A kick-off meeting must be
held face-to-face, and all the developers, partners, and contractors must
attend. All product deliverables must be clearly defined in the very
beginning. After this the communication between team members is
mostly electronic. Time zones differences are not necessarily a problem –
on the contrary, they may turn out to be an advantage, since by the time
one group of developers comes to work in the morning, the testers may
have already sent them the test results from the other side of the Globe!
Some overlap in working hours is, however, desirable. Establishing
availability standards (when and how the team members will be available
for communication, how quickly they respond to emails, and so on)
facilitates electronic communication in software development done by
distributed teams [22].
Top-down approach to software analysis and design should be enforced in
software development projects when the application domain is
numerically intensive, such as signal processing, pattern recognition, and
real-time control. The reason is that in such applications the data are not
predictable enough, and developers are usually not familiar enough with
the data. For example, if object-oriented design is used in developing such
an application, then more general classes (located close to the top of the
inheritance tree) should be designed first, and design of their children
classes should come next. Contrary to that practice, developing a
business-oriented application (an information system) suggests bottom-up

ADVERTISEMENT

00 votes

Related Articles

Related forms

Related Categories

Parent category: Business