OT: PSP, XP, TDD and other methodologies for solitary programmers
peter at engcorp.com
Thu Jan 2 17:25:18 CET 2003
Brad Clements wrote:
> I'm looking for war stories, comments and insight regarding suitable
> development methodologies for "lone wolf" programmers.
> That is, developers who work alone. I'm also interested in how these
> methods work in the context of Python development.
> For example, I'm considering PSP and would like to hear from others who are
> using it, or have tried it. "Real life" stories are useful. I'm somewhat
> annoyed by the SEI (sm) aspect of PSP, so if you haven't been tutored by an
> SEI instructor, phrase your statements as "PSP-like".
I tried during my seven years as a consultant to implement things like
PSP for myself. In all cases, the results were not useful, other than for
one very important thing: they made me sensitive to the issues and laid the
foundation for my adoption of XP when I discovered it.
> Regarding XP.. I'm a lone developer, so pair programming doesn't work, and I
> can't see how the Code review step would be any different than what I do
There is no "code review" step in XP. Code is reviewed second-by-second
by your partner during development, and any time someone refactors it after
it is working.
> I've also looked into "Software Inspection" methods, but .. again I'm
> looking at my own stuff.
> I'm intrigued by TDD and have started "test first, code second" on an
> in-progress project (a large Zope/Python monster that is a wart-on-a-wart, a
> bag-on-a-bag). Fortunately conversion to SAPDB is giving me an opportunity
> to clean house.
I have been using all aspects of XP which are not obviously useless with
solitary programmers (pair programming being the obvious one, and stand-up
daily scrums being another :-) with great success. By far the most useful
on has been to adopt TDD. Another very useful one has been to start using
an "issue tracker" to track all issues with the project, and to prioritize
them aggressively, in order to limit scope creep. I'm constantly amazed
that I ever got anywhere with previous projects (and by comparison I did
not) when I had no focus on the concept of *business value* and let myself
"play" in unproductive but very fun directions during the work.
I strongly recommend you spend even more time looking into XP and learn
enough of it to have a good feel for the philosophy behind it, and
a good feel for the individual practices, before you abandon it. I think
you'll find, as I did, that an XP "attitude" will help you whether alone,
with a partner, or as a member of a larger team.
But if you do nothing else, TDD alone will probably help you far more,
and with far less cost, than any heavy process such as the SEI/PSP stuff.
More information about the Python-list