Guidelines for Excellence in a Software Development Team
by Lee Hudspeth
(This article appears in The Naked PC #5.22, October 31, 2002)
** 03. Guidelines for Excellence in a Software Development Team
(by Lee Hudspeth)
For two decades I've been involved in the field of information
technology, both as a member of corporate IT teams and as co-
founder/principal of two consulting companies. Someone recently
asked me what I think the defining principles are for a
superlative software development shop. The guidelines I offer
here will enrich your team and enhance the quality of their work
product and workplace.
1. Cherish Your Development Methodology
Whether you roll your own, buy one off the shelf, or find
yourself somewhere in between, having a methodology (framework)
for how you think about and document projects is absolutely
essential. Create a set of document templates--in Word, Excel, or
whatever application suits you--and use these documents as the
foundation for every project you develop. Create a seamless
integration between your methodology documents and your
estimating process.
Take it one step further by using your methodology to document
the thinking that went into the creation and refinement of your
methodology (a powerful exercise in meta-cognition, i.e.,
"thinking about thinking"). This keeps your team well-grounded in
the history and rationale of the methodology, and provides a
record of ongoing improvements. Understanding your methodology
and how you came up with it promotes a deep-thought approach to
software development that will bring your team to a new level of
excellence. Two other recommendations: integrate your methodology
into your sales pitch to clients and remember that documentation
should precede any coding (entire books have been written on the
latter topic).
2. Promote Programming Conventions
Keep your development shop's programming conventions in a public,
well-circulated document. These conventions and related protocols
provide the benefits of efficiency, consistency, standardization,
and readability. These benefits in turn produce code projects
that are easy to understand and maintain. When anyone--from a
newly-hired programmer to a veteran--has a convention question,
they can turn to this document and quickly get an answer, saving
time by not having to constantly reinvent the wheel. The overall
benefits are improved productivity and profitability. There are
plenty of good resources out there to help you get started. For
example, if you're a Visual Basic developer, see Microsoft's
article "INFO: Microsoft Consulting Services Naming Conventions
for Visual Basic."
http://www.TheNakedPC.com/t/522/tr.cgi?lee1
3. Use a Reusable Code Library
Offering your developers a source code repository provides the
obvious benefit of a single place for code to safely reside. By
using the right source-control tools you get check-in/check-out
capability (partly an auditing and partly a QC benefit), plus all
the other productivity bells and whistles. This infrastructure
engenders code reuse, reducing redundant coding work. Make sure
code complies with your programming conventions before it is
allowed into the library.
4. Brainstorm Regularly
Keep your team engaged in the process of evaluating its
performance and goals. Brainstorming--when done systematically
and without allowing judgment to invade the sanctity of the
"brainstorm space"--yields new ideas and fresh insights, and
promotes creative thinking by team members. Brainstorming
techniques are discussed in the book "T.E.T.: Teacher
Effectiveness Training," click here to read my review:
http://www.TheNakedPC.com/t/522/tr.cgi?lee2
5. Track Your Time and Tweak Your Estimates
Maintain detailed records of work performed. Then review actual
work effort for each project, by development phase, compare to
budgeted resources, understand the variances, and use this
information to improve subsequent forecasts.
6. Control Quality Control
As your QC checklists and procedures grow and mature, compile
them into a public document so that everyone can readily study
and comment on them.
7. Embrace Bug Reports
Too often, we developers tend to view a bug report as an attack
on our work. But I say welcome them, embrace them. A bug report
is a learning opportunity; it's a chance to see your code/project
and its behavior from a completely different perspective (which
is, essentially, what quality control is all about). Make sure
staff who directly interact with customers, managers, beta
testers, or other developers have strong "active listening"
skills and are not prone to defensiveness.
8. Practice Safe Coding: Digitally Sign Your Code
The two main reasons developers should use a digital certificate
are to: (1) protect your software from tampering after you've
published it, and (2) guarantee to your customer that your
software did in fact come from your company, not a firm
masquerading as you. For more information about this process,
click here to read my article "Developer's Corner: Digitally
Signing Office VBA Projects":
http://www.TheNakedPC.com/t/522/tr.cgi?lee3
9. Wrap It Up with an Installer
An intelligent and polite installer "wrapper" executable makes a
program so much easier for customers, clients, testers, and
others to use. Paying attention to ease-of-use issues (like
deliverability, robust uninstalls, multiple install options with
verbose descriptions, etc.) sets you head and shoulders above the
competition.
10. Continuing Education: Always Be Learning
Keeping up with current events, new tools, and new ideas in your
area of expertise keeps you focused, stimulates creativity, and
improves your competitive edge.
I intend to explore these guidelines individually in subsequent
issues. If you have comments or ideas to share with me in this
area, or if you need a consultant, drop me a note. To read a case
study of a software development project I managed, go here:
http://www.TheNakedPC.com/t/522/tr.cgi?lee4
(c) 2002, Lee Hudspeth
You can reach Lee Hudspeth at:
mailto:LeeHudspeth@TheNakedPC.com
You can reach Lee Hudspeth at:
leehudspeth@TheNakedPC.com
To go to Lee's main page and see a list of links to his other articles and supplemental pages, click here.
To go to The Naked PC's articles index page, click here.
To go to The Naked PC's home page, click here.
Return to Top
|