Project Management

A project is a temporary effort or endeavor, having a defined beginning and end.  The project end may be constrained or determined by date or resources or funding or deliverables.  A project is undertaken to meet particular objectives, usually to bring about desired result or beneficial change. The temporary nature of projects should be contrasted with on-going businesses processes which are repetitive, permanent or semi-permanent work to produce results.  

Project management is the discipline of planning, organizing, and managing resources to successfully complete specific project objectives.  The primary challenge of project management is to achieve all of the project objectives while honoring the project constraints of scope, time, quality and budget.  The secondary—and often more difficult—challenge is to optimize the allocation and integration of inputs necessary to meet predefined objectives.

Typical models, formalism and tools for project management deal with project tasks and their ordering, work break-down structures, Gantt charts (a type of bar chart that illustrates a project schedule), etc.

Software project management is a specialized kind of project management discipline and set of practices.  Although there are some techniques of general project management that are applicable to software project management, there are also significant differences and unique aspects of managing software projects which calls for a specialized discipline [Hughes 2009].

  • Flexibility and malleability:  Software is very flexible and malleable.  While these are the strengths of software, they also create almost infinite degrees of freedom and change giving rise to unique and difficult challenges for software project managers.
  • Invisibility:  While a building a dam or a bridge in a construction project can be seen throughout the project, many software project artifacts are not immediately visible.  A challenge for software project management is to create and follow a process to make evolving software and associated artifacts visible.
  • Complexity: Software projects usually contain far more complexity than other engineered artifacts per unit of funding.
  • Conformity: Projects dealing with physical or engineered artifacts (rivers, jungles, mountains, bricks, cement, steel) have to comply with physical laws that are consistent and well known.  Software projects have to deal with human and organizational idiosyncrasies and “soft behavior” laws that are hard to formulate, understand, teach and expect to be consistent.  Because of lapses in collective memory, in effective communication and in effective decision making, organizations exhibit remarkable complexity, ambiguity and lack of consistency, which a software project manager has to deal with.
Following [Wysocki 2006], we offer these definitions:

A software development project is a complex effort undertaken by two or more persons within the constraints of time, budget, staff and other resources, and technology infrastructure that produces new or enhanced software that creates significant business value.

Software development project management is the discipline of assessing the characteristics and needs of the software development project, choosing the most appropriate software development life cycle, and then choosing the appropriate project management approach to ensure meeting the customer needs for delivering business value as effectively and efficiently as possible.  It requires an integration of a software development life cycle and a project management life cycle into a customer-centric approach that will produce the maximum business value.
 


Services: Training | Workshops | Consulting | Management | IP Development

Home | New | Resources | About Us | Testimonials | Partners | Contact Us