DevPinoy.org
A Filipino Developers Community
   

How do you work on a maintenance project?

rated by 0 users
This post has 10 Replies | 2 Followers

Top 10 Contributor
Posts 838
Points 13,840
lamia Posted: 06-08-2007 3:54 AM

 I'm currently assigned to a maintenance project for almost a month now(or more than a month). I know this is the thing that most developers get bored with. The system is badly designed, tightly coupled and what else would I want to say? There are few things to give praise to but almost everything is a hell. As for my understanding, working in a maintenance project requires:

 - A deep understanding of the system
 - Extensive experience in the field
 - Patience

 But I'm really, really, really bored. And the thing that really annoys me is when I get calculations I need to fix and I don't know how those calculations should actually be computed in the first place. I'd like to hear from our very reliable experts. Big Smile

 
P.S. The advice doesn't have to be technical
 

  • | Post Points: 35
Top 10 Contributor
Posts 1,009
Points 23,550
advice ni master jop dito, read up on michael feathers' working effectively with legacy code. soon you'll turn that legacy code into sparkling crystal clear code! Yes
http://devpinoy.org/blogs/cruizer
Naglalayong buksan at palayain ang kamalayan ng Pinoy .NET developer
  • | Post Points: 5
Top 10 Contributor
Posts 1,999
Points 41,320

I've been assigned to maintenance projects before and this is what i usually do.

  1. Try to learn as much as you could about the project. It doesnt matter if its a big task or not. Whats important to me is the idea that I might learn something new about project even if its the most boring project in the world. As I always say "You never know when you will find the next gem between the rocks."
  2. See maintenance projects as a way for me to imporve the code. Whenever I'm assigned to maintenance project I see to it that I leave that project in a better shape than when I first got it. I usually pad my timeline with extra hours so that I could refactor the code. I always say to myself that any code that I touch is my property even if i didn't started it. You don't want to hear somebody saying something awful about your work(even if the code is not 99% yours) and perople usually blame the first developer or the last developer who touched a project. Always leave a mark of excellence on every work you do.
  3. Take it as a challenge even if you hate the project. Don't dread the project because you wont be able to make good results. One of the things I learned in my career is that managers can easily spot if you don't like what you are doing and this can sometimes lead to bad impressions about your personality. What i usually do it code my heart out until my frustration(and burdens) are gone.
  4. I'm paid to code and I should do it. Let's face it, even if you don't like a task but i's your job you need to do. It's the people who clean the drainage system.. they may not like cleaning, scrubbing and removing thrash in sewer but they need to do it because it's their job. We are not paid to like our job. We are paid to do the job and do a great job. Managers expect that from us thats why they assigned us to that task because the believe that we can accomplish it and think that we have the right skills to turn bad code into magic.
  5. ...and finally. Smile. No matter how hard the task, No matter how boring, No matter how repetitive. Always smile. I remember someone told me before that when you smile and feel good about yourself you always end up doing great things and you make people around you feel good. Stressing yourself about a small problem takes alot of brainpower and I would rather focus my energy on building solutions than drowning myself in the sea of problem.

HTH Wink This has been my mantra eversince and has helped me smile and fly in every project that has been assigned to me in my short career.

devpinoy sig

  • | Post Points: 35
Top 50 Contributor
Posts 27
Points 310

keithrull:

See maintenance projects as a way for me to imporve the code. Whenever I'm assigned to maintenance project I see to it that I leave that project in a better shape than when I first got it. I usually pad my timeline with extra hours so that I could refactor the code. I always say to myself that any code that I touch is my property even if i didn't started it. You don't want to hear somebody saying something awful about your work(even if the code is not 99% yours) and perople usually blame the first developer or the last developer who touched a project. Always leave a mark of excellence on every work you do.

Hehehe, 'same predicament with one of our clients that we're maintaining right now. It's a huge website where we regularly need to update the content. A single page contains several include files and most of these include files contain other include files. Now, since we are just after the contents, improving the code is a big issue! We are not allowed to change any code! Ugh!

 

  • | Post Points: 20
Top 10 Contributor
Posts 838
Points 13,840

 Thanks everyone!

 

I currently have Keith's guidelines posted on my desk. I have read cruizer's/jop's recommended reading.

I will try to instill your words in my mind. I know I will benefit from them. I'm really really really trying to fight this boredom! 

 

  • | Post Points: 5
Top 100 Contributor
Posts 12
Points 255

keithrull:

Take it as a challenge even if you hate the project. Don't dread the project because you wont be able to make good results. One of the things I learned in my career is that managers can easily spot if you don't like what you are doing and this can sometimes lead to bad impressions about your personality. What i usually do it code my heart out until my frustration(and burdens) are gone.

Yes Every task is a challenge.

  • | Post Points: 20
Top 25 Contributor
Posts 193
Points 3,315
leonidas:

keithrull:

Take it as a challenge even if you hate the project. Don't dread the project because you wont be able to make good results. One of the things I learned in my career is that managers can easily spot if you don't like what you are doing and this can sometimes lead to bad impressions about your personality. What i usually do it code my heart out until my frustration(and burdens) are gone.

Yes Every task is a challenge.

Hehe, every task IS a challenge. But what does it challenge? In general, tasks in maintenance projects challenges one's patience ;-). The trick is finding a way to make those challenges test your technical skills instead - thus making the task more enjoyable (for me, at least)

For example, in the project that I am currently involved with (porting a legacy (*) VB6 application into a legacy (**) C# application), the entire business logic is coded in the database as stored procedures. In this application the data layer is basically a collection of classes that unwraps the properties of the DTO and passes it as parameters to stored procedures. This is a very tedious task as this is being handcoded (***). So, to avoid all of that work, I'm now trying to bend CodeSmith to my will - programming the tool so that it generates the DTO class and the data layer methods using the metadata from the database.

By doing that, I've replaced the boring task (handcoding repetitive code) with a more gratifying task (programming codesmith).


(*) Legacy, both based on the dictionary definition and also according to Micheal Feathers' definition. (**)
(**)Micheal Feathers' definition of legacy - code without tests.
(***) Ibatis is a very nice fit for this task. But, for non-technical reasons, we are not allowed to use any 3rd party libraries for doing that.

[jop]

  • | Post Points: 20
Top 10 Contributor
Posts 838
Points 13,840

It certainly is testing my patience Jop.  Just minutes ago, like a badly designed code... I find myself tightly coupled with this project. My boss is a big fan of Microsoft(thus the problem).

 Everyday(and it has been how many months now?) I find myself looking for a motivation. I hope I could find one that would really make my nerves perform at their best.

  • | Post Points: 20
Top 10 Contributor
Posts 461
Points 6,950

@Keith - I like that motivation Yes

I am on it for a almost a year... What motivates me... it's the pay. Big Smile. The drawback... it loosens the knot on your brain, after the term... you will be surprised that there is a .NET framework 3.0. haha.

...Think 64 Bit
  • | Post Points: 20
Top 10 Contributor
Posts 1,999
Points 41,320

Hahaha, yeah!

There's already .NET 3.5 beta 2 :P

devpinoy sig

  • | Post Points: 5
Top 10 Contributor
Posts 461
Points 6,950

keithrull:

There's already .NET 3.5 beta 2 :P

Told ya'

...Think 64 Bit
  • | Post Points: 0
Page 1 of 1 (11 items) | RSS

Copyright DevPinoy 2005-2008