How do you organize big projects?

Hello everyone!

(sorry for messy formatting, on my phone)

So we are working as a small team (5 people (1 designer, 3-4 developers)) on a big product for a national company that targets consumers via this SaaS service.

I am leading the product design and have organized everything in big atomic design projects. Do we have 1 file for all atoms, 1 for all molecules etc. We then publish all those components in libraries, that the bigger files use. It’s quite convenient but are lacking a few things I’d like to work around better:

Upsides:

  1. Structure is easy to maintain, as each file has pages with each part for the system. Pages are named as context requires, so for example a search and filter bar might have that exact name in organisms, and possibly in molecules too. When you go to the main component, you almost always travel down to the next file.

I set it up like this to make it more readable with less noise, while reducing the amount of files in the project (total 5 files: atoms, molecules, organisms, templates, pages/flows

  1. Scaling up changes across many different templates is easy as the team library contain all components that are used.

Downsides:

  1. Search isn’t optimal when finding components (as in frontend specific components) as they are buried in the files and can appear in separate places depending on how frontend want to implement them.

  2. The file size in the small parts is quite big and performance is degrading the more work we do.

  3. It’s not very efficient when updating a template, as you potentially have to start I atoms, and work your way up so matter what you want to change or update.

——

So my question is, how would you organize it? I’m thinking more files is a better way to go, but there are also many different components nested in multiple places (like buttons, specific components used for this particular project etc)

I want the system to be more approachable by the team, easier to navigate and understand, and lend itself to cocreation better. While we only have 1 designer on the team, the rest of the team won’t have hours of time where they find the opportunity to dice into everything, but I still want the whole idea of visiting and contributing the system easier and friendlier.

Thanks :slight_smile:

4 Likes

First, a few questions regarding the downsides:

  1. (Downside #1) Are they spread out across a lot of pages?

  2. (Downsides #2) Are the components across multiple library files? I don’t quite understand “File size in the small parts”.

  3. (Downside #3) Are you using auto layout as you build up the components? This helps immensely when updating complex components so the maintenance from any changes is minimal.

I’ve found it easiest to have a single file with all my components. You can have a single page with a parent frame holding components and it helps organize the components. From there I reference that single library for all components.

I would ask myself where i want my team to be more consistent and ask my team which resources they need most from a central library. This might clear up if the structure is actually useful for you and your team. I do like to organize my files in the atomic design principle but it is not always the best solution for library segmentation.

Maybe the answer is only the atoms (Font sizes, colors, icons) need to be in a library, maybe the team only uses finalized organisms and overwrites (which i doubt).

A design system is always a balance between order and overengineering : between giving structure and creative freedom

2 Likes

#1. Yes for clarity, they are most often separated on a per page basis, with only tops a couple of smaller frames per page, separated in the same way across all pages

#2. Yes amotically, they are in atoms → published → into molecules → published → into organisms → published → into templates → published → into Flows/Populated Views/Mockups

#3. Yes, almost always. It’s really maintenance that is the biggest problem, it’s more so the fact that its too difficult to easily consume the system.

But has @Tim_Hacker mentioned, collaborating with the team is the way to go.

Thanks!

1 Like