Back to the Lobby



OOPprojman

A Concepts in Project Management

The impact of object-oriented programming is by no means limited specifically to software coding. The recent popularity of OOP has increasingly lead to the adoption of OOP approach to complex problem solving for a large variety of applications. One such application, where the object-oriented view has had a noticeable socio-economic impact, is project management.

Because OOP was developed as a model for the way objects interact in the real world, it is also a good model for the work of a team of software engineers, programmers, testers, quality assurance specialists, and management on a complicated problem such as a software development project. Many of the issues of OOP that we discussed previously, such as inheritance, polymorphism, the message-method response, etc. [see What is OOP?] are applicable to project management.

A team can be viewed as an object-oriented program, where the team members belong to a set of classes(Goldberg and Rubin, p. 225). Many of those classes form complex chains of superclasses and subclasses organized similarly to the OOP concept of inheritance. Thus, there can be several different classes of administrators: office managers, resource managers, project managers, IS executives, and so on, with several representatives (instances) of each class present in the team. The team members interact by describing their needs to each other (messages), and respond with the behavior appropriate to the particular interaction in question (methods). In a large project, establishing the correct team structure with the proper division of messages and responsibilities between the clie nts, the managers, the analysts, the implementers, and the testers may be crucial to the success of the enterprise.

Another possible use of the OOP approach to project management occurs during the successful creation of a process model for the project(Goldberg and Rubin, p. 316). According to Goldberg and Rubin, a process model is a collection of strategies, methods, and tasks that is organized to achieve to project objectives. When creating a process model, several OOP elements come into play. First of all, most real-world projects are not expected to create elements from scratch. In fact, the great majority of the problems are variations on an older theme, legacy rewrites, or system enhancement and maintenance. In order to complete such projects effectively, reusing artifacts and assets is a necessity. Such reuse should proceed similarly to the reuse of code libraries in object-oriented programming: the existing prototypes should be kept with only minor modifications made to satisfy the goals specific to the new project. Finally, the concept of modularizing the task to allow for parallel code creation and subsequent integration has found its way from OOP to modern project management, where it maximizes the output of the development team that is functioning with a set of limited resources.

Reference:

Adele Goldberg and Kenneth Rubin, Succeeding with Objects: Decision Frameworks for Project Management, Addison-Wesley, 1995�