A Project Context is an innovative object oriented
and pattern driven approach to examining methodology
and methodology selection. Below we will focus our energy
on applying the Project Context concept to software
development, but the concept can be applied to any number
of areas. Because I have a passion for software development
and am entering my 20th year in the software development
industry, this article will focus on the Project Context
for Software Development, but the concept is equally
applicable to hardware development, homebuilding, project
management, service delivery, support services, fundraising,
introducing a new product ( technical or consumer ),
...
The Project Context discussion concludes by defining
and introducing a re-usable pattern mining framework
to help you apply the Project Context concept to areas
other than Software Development, even areas in business
such as leadership and marketing. Software developers,
architects, and project managers will benefit from the
concepts introduced within this article and corresponding
Whitepaper.
Software Development is a tricky business. The standard
approach is to treat software development like other engineering
projects – with the expectation that engineering
level predictive standards are applicable. However, software
is different – much different. The differences are
driven by:
The environment of the software development project
is ambiguous
Project requirements typically change sixty (60)
percent once the project vision has been created
Technical complexity leads to greater variance
– projects often have to be pioneers by implementing
a technical solution for the first time
Software development is a people intensive process
– governed by random and unpredictable events
and human behavior
Ambiguity of requirements translates to increased
project risk. To operate effectively within the environment
of “squishy” requirements, iterations
are often performed in an attempt to mitigate risk,
do what can be done, and get early feedback from the
customer. Requirements generate requirements
– thus early iterations will likely generate
additional project requirements as the customer continues
to finalize the definition of what they want.
This white paper describes a system and method for selecting
a compatible methodology for your project. This document
is a white paper version of a patent
titled “System and Method for Software Methodology
Evaluation and Selection”. The article
will state seven critical elements of the patent. For
further information on these elements, please download
the soon to be available whitepaper on
the subject.
The seven critical elements are:
The definition and description of the term Project
Context. Taking a Copernican view, the Project
Context is placed in the center of the universe for
all relevant software project discussions. By taking
an OO approach to describing a project, we discuss
multiple components of a Project Context including
People, Process, and Technology. Each component has
multiple attributes whose values have predictive insight
on the successful outcome of a software development
project.
Creating and defining a methodology model. A methodology
model not only has a data element for each attribute
of a project context, but also defines shadow minimum
and maximum compatibility range data elements for
each project context attribute
Using simulation along with the techniques of mathematical
statistics, regression analysis, and statistical forecasting
on the Project Context
The proposition that a scoring interface exists
for each methodology model
The concept and creation of a methodology compatibility
matrix
Defining the existence of a methodology pattern
framework for a software development project context
Specification and definition of a re-usable rule
and pattern-mining framework (useful for any subject
matter)
Other interesting items are the creation and definition
of an Agility Index (officially the "Hecksel
Agility Index"), and the composite attribute items,
like Communication Index.