[Boards: 3 / a / aco / adv / an / asp / b / bant / biz / c / can / cgl / ck / cm / co / cock / d / diy / e / fa / fap / fit / fitlit / g / gd / gif / h / hc / his / hm / hr / i / ic / int / jp / k / lgbt / lit / m / mlp / mlpol / mo / mtv / mu / n / news / o / out / outsoc / p / po / pol / qa / qst / r / r9k / s / s4s / sci / soc / sp / spa / t / tg / toy / trash / trv / tv / u / v / vg / vint / vip / vp / vr / w / wg / wsg / wsr / x / y ] [Search | Free Show | Home]

What is the fastest way to understand an entire project?

This is a blue board which means that it's for everybody (Safe For Work content only). If you see any adult content, please report it.

Thread replies: 14
Thread images: 1

File: leaf.jpg (10KB, 234x250px) Image search: [Google]
leaf.jpg
10KB, 234x250px
Let's say you just got hired as a software engineer on an existing project that is say, 50,000 lines of code. What is the fastest way to get a good grip on how the project works as a whole?

Are there any good programs that can visualize, say, a UML diagram by running them over the source code, or something like that?

>get hired as a contractor
>enterprise project
>no documentation
>mfw
>>
>>59660132
>>enterprise project
>>no documentation
Sounds about right. Run while you still can.
>>
Debug it.
>>
>>59660132
Hope your ide is a powerful one.
>>
>>59660252
Why would you say that?

>>59660169
>implying i have a year to burn

Is there a fundamentally accepted way of understanding a huge software project?
>>
Pick a bug, fix it, repeat. Eventually you'll have a good understanding of how the app works. Without a standardized framework or documentation, this is your only way.
>>
>>59660132
Try to understand the dependencies graph.
>>
>>59660132
What enterprise project has documentation?

Better start reading all of the fucking code
>>
>>59660132
What platform? For example, Visual Studio has some great project visualization tools that will show class dependencies and stuff.

Though be warned, if the project is big enough you will never understand it fully. Either you get too stuck in the details and miss the overall flow, or you get the big picture but miss the particularities of each part. Don't worry, chances are nobody knows it completely either.

Your best bet is to read whatever documentation is there, and get your hands on it, do >>59660476
>>
>>59660132
Do this >>59660476 and write down your findings as you go. Also keep in mind that the existing documentation and comments in the code don't compile. Assume that they're outdated at best and outright lies at worst.
>>
>>59660132
>enterprise project
>no documentation

Is there at least some decent commenting in the code?
>>
>>59660132
Are you the only engineer working on this project? If not, the best way to learn is to have someone more familiar mentor you, and for you to write documentation as you learn so that the mentorship actually provides a major benefit to the project in the long term, for all future engineers, not just you. I suggest doc comments of some sort, documentation being tied to code encourages engineers to keep everything up to date, and makes it easy to notice failures to do so in code review.

Otherwise, go from high level to low level. Start with the overall function of the project, then any frameworks / paradigms you're unfamiliar with, then the API surface of all the major components, then the architecture of each component, etc.

This way, you can use your experience to make guesses about the next level down (if I had to do X, I'd write the API this way; if I had to implement this API, I'd structure the implementation this way, etc). Then you only need to learn how and why they did things differently from what you would have expected.

Only go as deep as needed, if possible. If the project can be divided into pieces that aren't absurdly tightly coupled, you should be ready to write useful code far before you understand every line of any part of the project, and even before you understand the architecture of each major component.

If the project is a clusterfuck of spaghetti code, then you're basically screwed and you'll have to do what you can.
>>
>>59660132
leaving 4chan and working on the said project
>>
>>59660966
>>enterprise project
>>no documentation
It's like that everywhere.
Thread posts: 14
Thread images: 1


[Boards: 3 / a / aco / adv / an / asp / b / bant / biz / c / can / cgl / ck / cm / co / cock / d / diy / e / fa / fap / fit / fitlit / g / gd / gif / h / hc / his / hm / hr / i / ic / int / jp / k / lgbt / lit / m / mlp / mlpol / mo / mtv / mu / n / news / o / out / outsoc / p / po / pol / qa / qst / r / r9k / s / s4s / sci / soc / sp / spa / t / tg / toy / trash / trv / tv / u / v / vg / vint / vip / vp / vr / w / wg / wsg / wsr / x / y] [Search | Top | Home]

I'm aware that Imgur.com will stop allowing adult images since 15th of May. I'm taking actions to backup as much data as possible.
Read more on this topic here - https://archived.moe/talk/thread/1694/


If you need a post removed click on it's [Report] button and follow the instruction.
DMCA Content Takedown via dmca.com
All images are hosted on imgur.com.
If you like this website please support us by donating with Bitcoins at 16mKtbZiwW52BLkibtCr8jUg2KVUMTxVQ5
All trademarks and copyrights on this page are owned by their respective parties.
Images uploaded are the responsibility of the Poster. Comments are owned by the Poster.
This is a 4chan archive - all of the content originated from that site.
This means that RandomArchive shows their content, archived.
If you need information for a Poster - contact them.