Doug Perkes wrote:

> parameters, etc. In short, the code is a mess.

I'm going to recommend a strategy that leads to you
splitting into ~6 Dougs. If your species lacks this
capacity, you are going to have to chose your battles
_very_ carefully here.

> Also, I am new to extreme programming and agile
> methods in general. I
> have read a couple of books (an extreme programming
> book a couple of
> years ago and am about 2/3 of the way through with
> _Agile Software
> Development_ by Robert Martin).

Read /Working Effectively with Legacy Code/ by Mike
Feathers, and also read a TDD book, such as Jim
Newkirk's.

> I am having some difficulty approaching the project
> for several reasons:
> * Currently I am the only developer working on the
> conversion project,
> but have been working on management to get someone
> for me to pair
> with.

The question "can I waste someone's time all day" has
never worked for me. If you could pair briefly with
either this code's author or someone who gives a darn
about it, that would be better than full-time pairing.

Generally, either get a team and a coach and go
full-bore XP, or stick with what you know and migrate
opportunistically. _Don't_ check off practices one by
one, or do the ones that are easy or the ones you get
permission to do. Pairing without a greenfield project
can be damaging.

Software development has two nested cycles. Writing
code is the inner cycle, and releasing features is the
outer cycle. You will stabilize your process very
early if you introduce some of the aspects of TDD to
your inner cycle, and if you release a new version,
with fanfare, every Friday.

> * The code will need to be almost entirely
> re-written.

The code shows a great investment in debugging, so
don't throw that investment away.

> * I am not comfortable with the data model (there
> isn't an existing
> object model). If I change the data model, I will
> have to be able to
> convert the existing data.

If it ain't broke don't fix it.

If you must fix it, consider _duplicating_ features.
Run with two data models at the same time, and lots of
Debug.Assert statements that ensure they always agree.
This is a kind of test too.

> * Management has never done an XP project before

Unless they are enthusiastic, shut up about XP. Talk
about "iterative development", "robustness", and
"testing".

> * I am new to the company and don't have all the
> domain knowledge to
> completely understand the system

Making a pest of yourself might not be wise. However,
here is your leverage to get a pair: Schedule time
with the resource who knows a little about what you
need.

> * Whenever I try to get management in a room to
> discuss the
> functionality of the system, they always seem to
> want to focus on
> making sure the user interface is pretty instead of
> creating testable
> software.

That's because they can see its pretty interface with
all those flashing lights and twinkling things.

If you had a greenfield XP project, it would produce a
literate acceptance test output as a secondary user
interface. Your mission is to simulate one. If you can
comprehend FIT get it, otherwise just write a dumb
program that reads your data and outputs HTML to a Web
page.

Make your managers respond to _this_ interface. Point
to the bugs. Point to the low metrics. Ask which to
improve.

> * Management has put a lot of trust in me and I
> really don't want to
> screw this up.

Have they given you both authority AND responsibility?

> If you were in my shoes, how would you approach this
> project? What
> should my first steps be? How can I rein in
> management to understand
> the importance of helping me to create user stories
> that are small,
> testable, and estimable?

I would start a brand new project from scratch, and
write tests that force me to copy tiny snips of code
from the old to the new.

And I would ensure that I can still frequently
release, such that each week the % of old code in each
release goes down.

Good luck!

=====
Phlip
  http://industrialxp.org/community/bin/view/Main/TestFirstUserInterfaces


                
__________________________________
Do you Yahoo!?
Yahoo! Mail Address AutoComplete - You start. We finish.
http://promotions.yahoo.com/new_mail 


To Post a message, send it to:   [EMAIL PROTECTED]

To Unsubscribe, send a blank message to: [EMAIL PROTECTED]

ad-free courtesy of objectmentor.com 
Yahoo! Groups Links

<*> To visit your group on the web, go to:
    http://groups.yahoo.com/group/extremeprogramming/

<*> To unsubscribe from this group, send an email to:
    [EMAIL PROTECTED]

<*> Your use of Yahoo! Groups is subject to:
    http://docs.yahoo.com/info/terms/
 



Reply via email to