Which tier do you start developing first? Part 2

November 30th, 2006

Part 2, in this mini-series, focuses on which tier to start developing first with a legacy application.

In Part 1, I discussed which tier to start developing first when developing an application from scratch. I'm continuing that post with the next question, which tier do you start developing first when you have a legacy application?

Every application written in this world is comprised of one of the following sets of defined tiers:

Most legacy applications use either a 1- or 2-tier architecture. If you are working with a 3-tier legacy application, consider yourself blessed. If you have a 1-tier application on your hands, you may be cursed. The 1-tier applications contain just about everything but the kitchen sink (think of MS Word). It's hard to separate the business layer from the presentation.

Now, with that out of the way, on to the question at hand: Which tier do you start developing first when you have a legacy application?

The answer? It depends.

Legacy developers and teams develop applications to solve specific tasks through software and they have their own style for creating said applications. These programming "styles" sometimes complicate matters and muddy the tier (or is that tear) waters.

My suggestion: 

  1. Analyze the legacy app in question and determine which tier requires the most work and match your strongest developer to that tier.
  2. Whiteboard the primary areas of the legacy application and determine where each function will reside in the chain of responsibility.
  3. Determine if legacy code can be re-used and transformed into object-oriented code.
  4. Assign one or two developers to each tier and confirm with each which tier they are focusing on.

If you do have a legacy 3-tier application, here are some guidelines when evaluating each tier:

Presentation layer

Business layer

Database layer

I'm sure there are plenty of other guidelines to keep in mind when dissecting a legacy application. If you have anything else to add, please do.

Bottom line: An application can be broken into many different "pieces parts", but the as the old saying goes "The chain is only as strong as its links." If one tier breaks, the entire application breaks.