Introduction to Software Engineering:
In order to organize and
manage a software development project successfully, one must combine specific
knowledge, skills, efforts, experience, capabilities, and even intuition. They
are all necessary in order to be able answer questions such as: What artifacts
to manage and control during software development? How to organize the
development team? What are the indicators and measures of the product's quality?
How to employ a certain set of development practices? How to transition a
software development organization to a new modeling and/or development
paradigm? How to create and maintain a good relationship with the customers and
end-users? What remedial actions to take when something goes wrong in the
course of the project? What are the heuristics that can help managers in
conducting the software development process
The manager of a software
development project should answer the above questions in the context of the
project itself. However, there is a vast amount of knowledge the manager should
possess that transcends the boundaries of any specific project.
The purpose of this chapter
is to provide an extended overview of many important issues around which such
knowledge should be structured. The introductory section merely introduces the
issues and the context within which the other sections discuss them. Each of
the remaining sections covers one of the issues in more detail. The idea has
been to provide a balanced coverage of the issues from both the manager's and
the developer's perspectives.
Software
development is a complex process involving such activities as domain analysis,
requirements specification, communication with the customers and end-users, designing
and producing different artifacts, adopting new paradigms and technologies,
evaluating and testing software products, installing and maintaining the
application at the end-user's site, providing customer support, organizing
end-user's training, envisioning potential upgrades and negotiating about them
with the customers, and many more.
In order to keep everything
under control, eliminate delays, always stay within the budget, and prevent
project runaways, i.e. situations in which cost and time exceed what was
planned, software project managers must exercise control and guidance over the
development team throughout the project's lifecycle. In doing so, they apply a
number of tools of both economic and managerial nature. The first category of
tools includes budgeting, periodic budget monitoring, user chargeback
mechanism, continuous cost/benefit analysis, and budget deviation analysis. The
managerial toolbox includes both long-range and short-term planning, schedule
monitoring, feasibility analysis, software quality assurance, organizing
project steering committees, and the like.
All of
these activities and tools help manage a number of important issues in the
process of software development. Figure 1 illustrates some of the issues, but
definitely not all of them. The issues shown in Figure 1 have been selected for
an extended overview in the remainder of this chapter based on the following
criteria:
their
priority in the concerns of most software project managers, according to the
managers themselves - this is evident from the case studies, interviews, and
reports of many software project managers and consultants in software industry
worldwide.
their importance as
identified by relevant committees, associations, and consortia of software
developers.
The
chapter does not address the economic aspects of software project management,
such as budgeting, negotiating, outsourcing, and contracts. The goal is to
consider some of the important managerial issues specific to software development, not those that
appear in other kinds of development projects as well.
Related Topics
Privacy Policy, Terms and Conditions, DMCA Policy and Compliant
Copyright © 2018-2024 BrainKart.com; All Rights Reserved. Developed by Therithal info, Chennai.