Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How do you handle large projects? [closed]

I've just inherited a large project previously coded by about 4-5 people. The documentation consists of comments, and is not very well written. I have to get up to date on this project. How do I start? It consists of many different source files. Do you just dig in? Are there tools that can help visualize the structure/flow?

like image 648
cam Avatar asked Apr 07 '10 13:04

cam


3 Answers

If you have a chance, I'd try and talk to the original designers and developers. Ask them about any major design issues or shortcomings of the project. Is the project in good shape and only needs maintenance or are there major components that need to be added or reworked? What are going to be the biggest roadblocks to maintaining the project? Take one or two of them to lunch (separately) if you have a budget for it as they might be more free to talk about problems outside of the office.

Talking to the users is also important for getting a feel for the current status of the project. Quite often they have a different opinion of how things stand then the developers do. Make sure, however, that they don't start giving you a list of all the things they want added or changed - you should take a few weeks to understand the project before you can start making major changes to it.

As for visualization tools, I'd start with the database design if there is a database involved. Tools like Microsoft Visio can create a diagram from an existing database. I find knowing the design of the database helps me wrap my head around what the programmers were trying to accomplish. Visio is also good for documenting program flow with some basic flowcharts though you'll have to create them yourself - it doesn't generate them automatically as far as I know.

Good luck.

like image 178
TLiebe Avatar answered Nov 07 '22 19:11

TLiebe


I would encourage you to buy and read this book thoroughly. It provides you a LOT of information in this regard, much more than you will find here.

like image 4
Jaxidian Avatar answered Nov 07 '22 19:11

Jaxidian


Brainstorming a little for you:

Step around in the application with a debugger, use a Static Code Analysis tool for which ever language you are working with...

Talk with people - both developers AND USERS to get a feel of the application.

Review the issue tracking system to see if you can see any recurring types of problem...

like image 3
Martin Milan Avatar answered Nov 07 '22 19:11

Martin Milan