I will be taking on a project to build an internal UI component library at a company with around 100 developers. This is by no means the first time that the company has attempted to move teams to a common library. All previous attempts have failed and to me it looks mostly like challenges with communication, processes, priorities, etc.
I'm interested in hearing about experiences (good and bad) with all the above. How do you roll out a component library successfully? How do you get teams to use it? How do you get people excited instead of being a forced rewrite for them? When do you start getting teams on board? How do you set up processes for feedback?
- Treat it as a product. Build something that would be appealing to real world customers. Spent time on writing great documentation, making a website that demos the components and advertise them internally. Even if other teams will be forced to use what you build by company mandate, getting buy-in will make your life much easier.
- Write great documentation. Incorporate usage by other teams as code samples.
- Avoid becoming the bottleneck at all costs. If you ship components to other teams, these components won't do all the things the other teams need. This will create friction for the other team and make you a bottleneck in their development workflow. They won't put up with this for long and quickly start working around your library or ditch it alltogether. To avoid this, make sure you continuously allocate some parts of your team to make fast changes and remain responsive.
- Allow for others to contribute back. Teams won't just use your things - they'll extend it. Make sure you have a clear and structured way to incorporate their changes.
- Stay responsive. Embed your developers and designers within the teams using your library. Don't become "the UI team" that bestows the unworthy with an update at their leisure - get close to your "customers", share their wants and pains.