Transitioning a Large Rails Codebase into Packages: Seeking Tips and Advice from Experienced Developers

Message originally sent by slack user U7213XMGS3H

Trying to adhere to a boundary that may be wrong has a serious cost.

100%, that’s actually why we’re doing it this way. before defining all the public APIs, just getting the current entities categorized and understanding what we have and how it currently relates to other entities is the goal. While we’re in this “modularity: none” space (see table above) it’s trivial to move things around

Message originally sent by slack user U7213XMGS3H

we’re trying to gradually find the right module boundaries

Message originally sent by slack user U72DOM2VVHS

For context <@U7213XMGS3H> how big is the business unit working on the monolith? My guess is > 100 engineers?

Message originally sent by slack user U7213XMGS3H

correct, nearing 200

Message excluded from import.

Message originally sent by slack user U7213XMGS3H

~300k loc of app code, ~800 tables

Message originally sent by slack user U7213XMGS3H

started ~2008

Message originally sent by slack user U7213XMGS3H

which is also important

Message excluded from import.

Message originally sent by slack user U7213XMGS3H

yuuup

Message excluded from import.

Message originally sent by slack user U72DOM2VVHS

What’s your rough estimate on the number of packages you all are going to land on initially? I’m always curious to see how teams balance package sizes

Message originally sent by slack user U7213XMGS3H

i’m not totally sure… i’ve thought about Dunbar’s Number as a sort of tool. there’s an upper bound of packages a single engineer should know about

Message originally sent by slack user U7213XMGS3H

so maybe ~150?

Message originally sent by slack user U7213XMGS3H

that’s pulled out of thin air

Message originally sent by slack user U7213XMGS3H

also we probably are going to eventually nest packages

Message excluded from import.

Message originally sent by slack user U7213XMGS3H

it’s not saying that’s the number of packages… instead it’s saying “an engineering team should only have to know about 150”

Message originally sent by slack user U7213XMGS3H

so it might imply a larger segregation

Message originally sent by slack user U7213XMGS3H

and org structure