I've had several software developer jobs working on business applications with Microsoft tech stack, although I guess this is a fairly generic question about working as a programmer doing bug fixes, maintenance and enhancement (as opposed to greenfield development on a totally new application).
Up until recently, I've managed to gain enough understanding of a legacy app to be able to work on it by reading through the relevant area of code in the IDE and playing around with the front-end app in a dev/test environment.
However, I started a new job recently (still as a software developer) working on maintenance and enhancement of an existing application which is quite large and complex with many separate components. In this job I've found that I've struggled when trying to apply my usual method of understanding an application that is new to me.
I thought it might help if I modelled some areas of functionality by drawing some UML diagrams (class diagrams, sequence diagrams, etc) so I began doing this. I found it quite time consuming and had difficulty in knowing how much detail to add (e.g. some classes had a lot of properties & methods). I tried to leave out all except those that were most relevant to what I was working on. I'm not sure how much this really helped me. Then again, I've not done much with diagramming notation, whether UML or other type. I wonder if I should practice drawing UML diagrams more in order to gain greater understanding of the concepts and notation, and that maybe doing that might help me model existing code better and gain understanding of it quicker.
Has anyone had much experience of diagramming/modelling like this, or are there other ways of gaining understanding of legacy code that might help me?
Thanks.
Up until recently, I've managed to gain enough understanding of a legacy app to be able to work on it by reading through the relevant area of code in the IDE and playing around with the front-end app in a dev/test environment.
However, I started a new job recently (still as a software developer) working on maintenance and enhancement of an existing application which is quite large and complex with many separate components. In this job I've found that I've struggled when trying to apply my usual method of understanding an application that is new to me.
I thought it might help if I modelled some areas of functionality by drawing some UML diagrams (class diagrams, sequence diagrams, etc) so I began doing this. I found it quite time consuming and had difficulty in knowing how much detail to add (e.g. some classes had a lot of properties & methods). I tried to leave out all except those that were most relevant to what I was working on. I'm not sure how much this really helped me. Then again, I've not done much with diagramming notation, whether UML or other type. I wonder if I should practice drawing UML diagrams more in order to gain greater understanding of the concepts and notation, and that maybe doing that might help me model existing code better and gain understanding of it quicker.
Has anyone had much experience of diagramming/modelling like this, or are there other ways of gaining understanding of legacy code that might help me?
Thanks.
Comment