On debugging and maintenance
IMO- One of the most challenging skill needed in software engineering is debugging.
Debugging is an art.
And its possible to learn this art and get better at it.
And if done with a right state of mind can be as rewarding as other glamorous roles in software engineering.
What you learn from this indispensable stage of software development pays you back by making you a better better designer or a better coder.
One way of debugging is to fix a bug and move on to another
Another is to fix it and learn from it.Understand Why did this bug happen in the first place.Was it a case of a typical programming mistake ?Was it a bad design ? A problem with the functional design ? A miss by QA ?
Learn for the mistakes done by others (or maybe you) so that you can skip those and do some new mistakes rather than repeat them.
Many programmers - I come across - try to shy away from debugging and would rather write a new applications.
In fact I have also seen some programmers switch jobs because they didn't want to maintain software.
I do understand their emotion and probably find this as a lack-lustre task and perhaps not as mentally rewarding as wring new application.
Having spent last few years maintaining Production code for a mission critical application- I can vouch this to be as challenging task as writing new application and personally I found it very rewarding.
While debugging you are more than often reading and changing code written by others.
More than often its poorly documented or even worse- the documentation has not been kept up to date- making it more confusing
Circumstances are different.
Requirements have also changed possibly
And often you have a have an impatient client breathing down your neck.
and then you could have a complete shut down of the system held ransom to the successful fix of the problem you are working
Debugging is an art.
And its possible to learn this art and get better at it.
And if done with a right state of mind can be as rewarding as other glamorous roles in software engineering.
What you learn from this indispensable stage of software development pays you back by making you a better better designer or a better coder.
One way of debugging is to fix a bug and move on to another
Another is to fix it and learn from it.Understand Why did this bug happen in the first place.Was it a case of a typical programming mistake ?Was it a bad design ? A problem with the functional design ? A miss by QA ?
Learn for the mistakes done by others (or maybe you) so that you can skip those and do some new mistakes rather than repeat them.
Many programmers - I come across - try to shy away from debugging and would rather write a new applications.
In fact I have also seen some programmers switch jobs because they didn't want to maintain software.
I do understand their emotion and probably find this as a lack-lustre task and perhaps not as mentally rewarding as wring new application.
Having spent last few years maintaining Production code for a mission critical application- I can vouch this to be as challenging task as writing new application and personally I found it very rewarding.
While debugging you are more than often reading and changing code written by others.
More than often its poorly documented or even worse- the documentation has not been kept up to date- making it more confusing
Circumstances are different.
Requirements have also changed possibly
And often you have a have an impatient client breathing down your neck.
and then you could have a complete shut down of the system held ransom to the successful fix of the problem you are working