managing customizations in existing codebase?

B

bryanp10

I've got a situation that I've not encountered before, but that I'm
quite sure other folks have: How do you manage application
customizations for an existing application without unduly impacting
the main code?

We'd like to be able to do one-off customizations for customers, but
not include this potentially destabilizing code in our main branch.
However, branching off the entire source tree seems inefficient, as
well as creating a logistical problem if we have to go back and fix
bugs for this client.

I've got an application that we've recently moved to ASP.NET. SQL
Server backend. Previous work on this app had quite a bit of
customized spaghetti code in it... "if CustomVersion ==
"BLAHBLAH" { do this instead! }". Clearly this is undesirable on many
levels, not the least of which is an "Oh my god I can't believe we did
that" sort of feeling.

What I think is my best option right now is to create a
"customizations" branch in source control, and store just those files
that will change for a particular customer. The downside of this is
that the build process will have to be updated to accomodate it, it
makes development/test more difficult, and still has the problem of
these files getting out of synch with main branch fixes.

However... I haven't been able to come up with a really clean solution
to what must be a common problem. How have other folks handle it?
 
S

sloan

Rule #1
Code to an interface, not an implementation (concrete class).


"if CustomVersion ==
"BLAHBLAH" { do this instead! }".

That is...what you end up with when you don't follow Rule#1.

....

Buy a good OO book.
I'll recommend "Head First Design Patterns" for someone new to this inquiry.

...

Here is a start OO blog
http://sholliday.spaces.live.com/Blog/cns!A68482B9628A842A!126.entry

But that's a drop in the bucket.

...
I used to work for a company that did "If companyName=="ABC" then".....so I
feel your struggle.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,995
Messages
2,570,230
Members
46,817
Latest member
DicWeils

Latest Threads

Top