Help wanted: Writing a PMI Project Management system


J

john.r.moser

I'm looking for anyone who has an interest in project management; workable Python design and programming skills; and wants to code for an open source Project Management system.

Having used Redmine, Launchpad, Trak, OpenProj, and so on, I've found there's no good PM tools. Microsoft Project and Oracle PM are even kind of crap..

The issue I have is that none of these are really in line with modern PM. The PMBOK and various practice standards outline something very different from what's available. For example: Redmine has the concept of Projects and Subprojects; but it doesn't have the concept of a Program, and instead follows the common open source model by which a "Project" is all on-going effort of a deliverable.

Calling "Mozilla Firefox" a project is technically incorrect. "Mozilla Firefox" is the deliverable of a Program (called Mozilla Firefox), an ongoing effort to meet a business need (in this case, the "business need" is the collective desire to produce a Web browser). Mozilla Firefox 18 is a Project; Mozilla Firefox 19 is a Project; and so on. More Projects will be added to the Program; long-standing bugs in Mozilla Firefox are Program Issues, and a particular Project (i.e. Mozilla Firefox 21) may include as a requirement "Correct and close bug #55995" or such.


I've been trying to write a technically correct Project Management softwaresystem that adheres to the PMBOK 5e (released January 2013), but I am a crappy software designer. I can code, some, but I don't know Python well enough; I don't know how to accomplish some design aspects (like modularity--the ability to extend via drop-in plug-ins instead of by tightly integrated code) and I don't know much about software design at all anyway. I know how to translate procedural concepts into code in any language I can code in to the best of my understanding of the language--some people think this makes them good programmers; they create absolute garbage, and I have no intent of being that guy. I'll code, but I'll code based on the design of somebody actually competent, thanks.



So I guess what I want is to find people who are:

* Interested in Project Management as a concept
* Skilled in application design and Python
* Interested in putting these two things together and contributing to a program to develop a technically correct Project Management software suite

In open source software development, the primary compensation is self-enrichment: Developers are attracted by the chance to learn something new, to enhance their skills, to contribute to something they feel is worthwhile, orto work on something they simply enjoy working on. Thus I need to find people who go, "That looks interesting."

Where do I find?





From a planning perspective, the initial goal is to create the four main modules:

* Project Management
* Program Management
* Portfolio Management
* Work Breakdown Structure

Projects are a temporary effort to produce a deliverable.

Programs are an ongoing effort to address a business or organizational need, and may include other programs and projects.

Portfolios are collections of Projects, Programs, and Portfolios under the control of an organization. A business may have its Portfolio, containing its Marketing and MIS Portfolios, which each contain Programs (for Marketing or MIS) that contain Projects and other Programs. A department may even have sub-portfolios: the MIS Portfolio may contain Networking Portfolio, Programming Portfolio, and Systems Portfolio for the three departments underMIS.

Each Project has a Work Breakdown Structure. Every element is a deliverable, so something that must actually exist. The Project is itself the sole top-level element, for example:

1. Work Breakdown Structure Module

The process of Decomposition is used to break down the project into manageable work. Work is "Manageable" when it can be understood; breaking it downfurther gives no gain and causes increased management overhead, so is wasteful. There are many decomposition strategies such as top-down, bottom-up,brainstorm, and fishbone; they are usually combined (I favor top-down, then bottom-up).

The first level of decomposition can go in any direction. It is often recommended as decomposition by phase (Design, Implementation, Testing...) or by major deliverables (Drive System, Engine, Wheels, Suspension...), or combination means.

1. Work Breakdown Structure Module
1.1 Project Management
1.2 Design
1.3 Implementation
1.4 Testing
1.5 Release

These are further broken down.

1. Work Breakdown Structure Module
1.1 Project Management
1.1.1 Work Breakdown Structure
1.1.2 Meetings
1.2 Design
1.2.1 Document Schema
1.2.2 UI
1.2.2.1 Outline View
1.2.2.2 Table View
1.2.2.3 Graphical View
1.3 Implementation
1.3.1 Back-End
1.3.1.1 Storage Class
1.3.1.2 Data Rendering
1.3.2 Front-End
1.3.2.1 Views
1.3.2.1.1 Outline View
1.3.2.1.2 Table View
1.3.2.1.3 Graphical View
1.4 Testing
1.5 Release
1.5.1 Git Branch Merge
1.5.2 Git Tag

etc.


The reason I want these features as the earliest target is because then it becomes a useful planning tool. A Portfolio can be created with a Program to track each Project--the implementation of each module, further integration, code clean-up efforts, etc.--and the work can be broken down in the WBSmodule. That means the WBS module can be used to plan the Issue module; then the Issue module can be used to track any Project Issues in further modules.

Eventually I want extension beyond a blunt PMI-focused PM tool into something that's targeted at development. Interesting features would be the separate tracking of Git repositories, repository management, and the association of Git branches with Projects and WBS Work Packages.

Anyone interested?
 
Ad

Advertisements


Top