Hello Jamietre,
For individual and small team projects there are a few alternatives
that can be applied to software development and quality control.
Personal Software Process
Described by Watts Humphrey in "A Discipline for Software
Engineering". This is generally used as a book to support a semester
long class where the students develop ten sample programs, measuring
their effort in detail for each one and developing design and code
review checklists based on their own defects. When they complete the
assignments, they also can see their improvement in both product
quality and productivity.
Team Software Process
"Introduction to the Team Software Process", also by Watts Humphrey
describes an approach to take PSP trained developers and form small
teams to develop larger products. Team members have assigned roles and
develop their own schedule, manage their own work and so on.
More information on these two methods can be found by searching using
terms such as
"Personal Software Process"
"Team Software Process"
TSP PSP
The Software Engineering Institute has a few techical reports and
articles, try the following link for a pointer to several of these.
http://www.sei.cmu.edu/tsp/introducing.html
Please note that these are pretty comprehensive methods and may not be
suitable for all developers. As a result, I will describe a few other
methods.
Agile Software Development
Described in pretty good detail in sources such as:
The Agile Manifesto
http://agilemanifesto.org/
The Agile Alliance
http://www.agilealliance.com
"Agile Software Development" by Robert Martin
http://www.objectmentor.com/resources/bookstore/books/AgileSoftwareDevelopmentPPP
The idea here is to have light methods and processes and better
people. For more information, try search terms such as
Agile Software Development
A summary of different approaches and the need for balance between
process and people is at the end of the following report (look for
"People First"):
http://www.martinig.ch/mt/facts/may02.html
Nothing specific here, something good to think about when trying to
define the processes for your staff.
The Surgical Team
Described in "Mythical Man Month" by Fredrick Brooks, he suggested
having a team composed of a lead technical expert, a prime back up,
and a supporting cast that complemented the team leader. His
background was a portion of a large project (IBM OS 360), but this
kind of team could be reduced in size for smaller projects.
http://www.aw.com/catalog/academic/product/1,4096,0201835959,00.html
A Case Study in Small Company Software Reuse
http://students.cs.byu.edu/~pbiggs/smallcomp.html
This is an examination of a few small companies and their attempts to
establish some incentives and methods for software reuse. It includes
a good suggestion to use a pilot project to work out the methods and
make adjustments before broad deployment.
There is a pretty broad spectrum of methods from Agile to the Personal
Software Process. Each one has a variety of costs and benefits.
Choosing a method that will be readily accepted by your staff is also
important. I have tried to cover a broad spectrum with this answer -
if you want more detail on one method in particular, don't hesitate to
use a clarification request.
--Maniac |