After just a few months on my second job as a programmer (about 1 1/2 years after starting programming as a profession), I was hired on a new project, where they wanted to speed up the velocity.
I did not fully understand what my project lead meant before, but as soon as I arrived I learned, that there was a BIG VS Solution with more than 200 projects containing all the „C-Languages“: C, C++, C++/CLI and C#.
It took about one hour to build and in case it couldn’t, it was called a build break and everything had to stop until it was fixed.
There were about 25 programmers working on the solution and you might guess, that build breaks weren’t uncommon.
So my job was to split this huge solution, which I called lovingly „The felt“, into several smaller solutions, so that if one breaks, the others could go on.
Easier said than done: I needed an overview. So I used the class graph from VS and could not see anything, because there was one big blob of lines and text. There were 6500 classes in there. More abstraction was needed, so I decided Project Layer would be great.
Unfortunately there was no tooling that could show it to me, so I wrote a small tool myself, including a graph visualization for the result.
Now I saw the interdependencies and was able to talk to the programmers, what was going on the projects.
We split it into 8 separate solutions and after some preparations, we had one week to put it forward during the sprint break. Tuesday to Sunday... and on Sunday at 4pm we had three consecutive successful tests on three different machines starting from green field.
I wrote some tooling around it to let the programmers manipulate their solution and project files, in order to update the dependencies.
Worked like a charm and I am still proud of it.
Sounds crazy! 200 projects is quite a lot! I think the most I've had is about 25 projects but most are fairly thin (eg. one project for models, one project for integration with X product etc).
Awesome work though, solving business problems and making a big mess into something manageable!
It was a lot of work, but I loved it!
And those were a lot of really small projects and even more unit tests for them.
So - yes, it was a big mess. They even managed to build circular references. But it was also a lot of fun... the team was great and even though I was the inexperienced person, I was kind of the team leader, since the project lead just let me do, what I thought was right. And he was very experienced, so whenever I had a question, I could go to him.
We're a place where coders share, stay up-to-date and grow their careers.
We strive for transparency and don't collect excess data.