Re: XP development approach


Subject: Re: XP development approach
jeff@abisource.com
Date: Wed Apr 19 2000 - 10:37:14 CDT


On Sun, Apr 16, 2000 at 05:22:10PM +0700, Perry Ismangil wrote:
>
> What is the best way for building a cross-platform application using the Abi
> framework?
>
> I seem to notice from the earlier posting in the list that the AbiSource guys
> do 'Linux in the morning, Windows in the afternoon'.
>
> If we only have separate Linux and Windows programmers, can they work together?
> Does it have to be one guy for Linux & Windows?
>
> Or if we're short of programmers, can he/she do Linux first for a couple of
> months then switch to Windows?
>
> In essence I'm asking what is the best way to organize a team for
> multi-application cross-platform development utilizing Abi framework.

uh, good question. as the guy who was doing linux in the morning,
and windows in the afternoon [and occasionally beos during lunch]
i can that it's a very "challenging" way to work... :-)

probably, the correct answer depends upon what you're going
to be developing. we put a lot of work into sharing as much
code as possible [yes, we could do more], so that you could have
(for example) 1 X11/GTK gui person, 1 Win32 gui person, and N cross
platform feature people [in theory].

in reality, it's more typical that one person adds a new
feature (say a dialog) and simultaneously does the XP
design & interfaces and the gui for ONE platform and gets
it working -- and then that person stubbs in the class files
for the other platforms and checks it in (and probably breaks the
build on those other platforms). that person then helps someone
fluent in the other GUIs (a) to fix the build and then (b) to get
the new feature working up-to the level on the first platform. this
is typically an iterative process as platform-specific subtleties
invariably get put in XP code. having the original developer
work with the other GUIs or with those versed in the other GUIs
is a good learning opportunity -- especially for junior engineers
-- both in terms of coding practice (coding style, compiler
problems/extensions, gui event model, build process, etc) to
fluency with development tools (editors, debuggers, etc) on the
other platforms.

it also is a great way to emphasize the "eye candy in gui code;
business logic in xp code" concepts. and a great way to ensure
that you get feature consistency (especially subtle things like
tab order in dialogs) between the platforms while the original
version of the feature is fresh in the mind of the first engineer.

also, by doing this regularly (as each dialog is done, for example)
rather than after 3 months (or after 10 dialogs), you'll find that
the team learns the xp concepts as it goes along rather than during
a porting marathon at the end....

you'll also have happier engineers -- because the product will
always work and be live on each platform -- each platform can be
someone's primary development/work platform -- no one's favorite
platform is forced to be a second class citizen or derrivative
work.

i know i'm soapboxing here, but i really think that you want to
expend the effort to keep the platforms in sync and building at
all times. it can be frustrating (to the individual engineers
when builds on their primary platforms fail), but all-in-all i
think you get a better result.

this doesn't mean that you need a team of people who can "do GTK
in the morning and Win32 in the afternoon". although it'll help
if you have one to help "translate gui speak" -- that is, help
explain the differences in the various event models & etc... as
issues/questions arise.

would anyone else care to comment ??

jeff



This archive was generated by hypermail 2b25 : Wed Apr 19 2000 - 10:37:15 CDT