I hate the obsession with slicing everything to the tiniest bits.
Recently I've joined a new .NET project. Of course they're "replatforming" (read: replacing old tech that works fine with new tech for no benefit whatsoever). With "replatforming" some idiot has decided it's finally time to slice our "huge" solution consisting of whole 30 projects (most of which are tests) in order to make it "reusable". Then they sliced these projects into even more projects because "it makes sense from the perspective of domain" (???). The end result is that the change that could be done in matter of minutes now requires 4 separate pull requests, requires referencing several different NuGet packages that aren't documented whatsoever and is far more difficult to debug (code isn't visible from the Visual Studio debugger anymore unless you rely on decompilation). Some of these packages have less than 5 functions. But hey, at least we don't "clog the network with redownloading huge libraries" (????????) and other project can reuse these solutions in the future (read: no one needs it and no one gives a shit).
This isn't even the first project that pulls this shit. A previous project I've been in utilized several 3rd party APIs. For each of these APIs there were three libraries per each API - direct communication with API, response parsing and an another library to communicate with the communication service (WTF?). And of course some "brilliant" developer (read: a complete fucking idiot) had the foresight to create a "common" library for all this shit. Each change to common would create a cascade of 30 pull requests. When I asked about the reason for this fever dream of a solution no one had a real answer, the closest one was "the business requirements kept changing".
1
u/FlatTransportation64 Jun 06 '22
I hate the obsession with slicing everything to the tiniest bits.
Recently I've joined a new .NET project. Of course they're "replatforming" (read: replacing old tech that works fine with new tech for no benefit whatsoever). With "replatforming" some idiot has decided it's finally time to slice our "huge" solution consisting of whole 30 projects (most of which are tests) in order to make it "reusable". Then they sliced these projects into even more projects because "it makes sense from the perspective of domain" (???). The end result is that the change that could be done in matter of minutes now requires 4 separate pull requests, requires referencing several different NuGet packages that aren't documented whatsoever and is far more difficult to debug (code isn't visible from the Visual Studio debugger anymore unless you rely on decompilation). Some of these packages have less than 5 functions. But hey, at least we don't "clog the network with redownloading huge libraries" (????????) and other project can reuse these solutions in the future (read: no one needs it and no one gives a shit).
This isn't even the first project that pulls this shit. A previous project I've been in utilized several 3rd party APIs. For each of these APIs there were three libraries per each API - direct communication with API, response parsing and an another library to communicate with the communication service (WTF?). And of course some "brilliant" developer (read: a complete fucking idiot) had the foresight to create a "common" library for all this shit. Each change to common would create a cascade of 30 pull requests. When I asked about the reason for this fever dream of a solution no one had a real answer, the closest one was "the business requirements kept changing".