Level Extreme platform
Subscription
Corporate profile
Products & Services
Support
Legal
Français
New stuff gets included
Message
From
17/11/2004 07:22:01
 
 
To
17/11/2004 03:00:46
General information
Forum:
Visual FoxPro
Category:
Project manager
Miscellaneous
Thread ID:
00960731
Message ID:
00962115
Views:
9
>Peter,
>>Well, I also bear responsibility for a legacy application. It is completely impossible to restructure that stuff. Both your and my solution are impossible to implement in that legacy app. Here's an anecdote: Just this morning betatesters were testing the new version of that application. Guess what, an error occurred exactly because a prg had sneakilly got included in an app where it should not have got included. The routine also resides in the exe and uses an included table. That table is not known to the sub-app, so it could not be found. Bang..
>
>not a completly foreign scenario you describe <g>. Don't give up on restructuring too early, and get to know the app [if it is a brand new child for you]. Sometimes even "whacky" seeming concepts have their own rythm and at least some good points. Most of the time the real problem is that later maintainance was done by people without realizing the intentions of the "framework" or ideas put into the app at first.

Very well said! Often 'we' verbally and non-verbally condemn those who's work we have to continue. Most times the critic holds grounds, but sometimes we only later discover that there appeared to have been a deeper thought after all. It sometimes even was documented, but 'we' were simply too lazy or arrogant to read the relevant technical documentation beforehand.

In time I (hope I) have developed an attitude of being more careful. I still regularly overtly condemn so-called colleagues, but not before doublechecking my analysis.

A recent anecdote: In a certain form a filelock was performed on the 'employee' table. That did not succeed (a Retry screen popped up), because some other form had done a record lock with regard to one of the employees. However, that second screen would not gonna modify any of the fields in the employee table. The first thought was "why on earth do they lock that record" and it was not really a question, but rather a condemnation of the former programmers. However, it appeared that locking the employee's record in the employee table was the central method of preventing that two users could simultaneously work on the same employee. (The employee table isn't the only place where employee data is stored.) We almost made a decision that would have broken this fundamental, and sensible, idea.


>First order of business: clean out maintainance errors as seen from point of view of the original framework concepts, remove redundancy, build smaller components and enhance encapsulation if possible: basic textbook stuff. But don't follow "your" style, do it in the style of the original developer, if he wasn't a total idiot. If that is done, you will have a much easier part of reachitecting according to your "best usage patterns". At least it works for me<g>.
>Main points of contention: Make everybody realize it is a long term plan running alongside usual maintainance / upgrade. Results for money spent are very dificult to "see" as lowered cost for new development building on the upgraded foundation is hard to sell.

This is what 'we' have done and that's probably the main reason why this legacy application is still in use. :)


>Biggest risk: diferent levels of competence if more than one developer is working on the project: "dumb" mistakes stemming from missing understanding can be bad for *your* image, even if the mistake was clearly done somebody by else - or to put the burden more on your shoulders: downgrade your concept[s] to the lowest level of competence found in your team. Scary, but the only way not to run into many errors.

I have seen concepts that were terribly complicated. Even after many days they were still essentially a mystery to me. Made me say: "that guy must be super intelligent", and it was not really a compliment. On the other hand, the guy with the lowest level of competence should not always be the reference point. We might also come to the conclusion that this guy needs some additional learning time, or even deserves to be fired.


>my 0.02 EUR

Wonder whether the Americans understand why it's 2 cents, instead of 1. :)
Groet,
Peter de Valença

Constructive frustration is the breeding ground of genius.
If there’s no willingness to moderate for the sake of good debate, then I have no willingness to debate at all.
Let's develop superb standards that will end the holy wars.
"There are three types of people: Alphas and Betas", said the beta decisively.
If you find this message rude or offensive or stupid, please take a step away from the keyboard and try to think calmly about an eventual a possible alternative explanation of my message.
Previous
Next
Reply
Map
View

Click here to load this message in the networking platform