1,114 karma · joined March 12, 2013
www.cenizal.com
Code smells themselves aren’t problems, they’re just useful track marks that might indicate a problem is lurking nearby. Worth looking into and making the decision yourself.
I live in the area affected by the Eaton Fire. I’ve been here for 10 years. We experienced severe droughts and wildfires in the first 8, and though they were bad fires and made the air feel like we were living in Bladerunner’s LA, it established a norm. In the winter we got used to seeing rains. 2 years ago at this time of year we had snowfall (!). Last year at this time we had hard rain. This year, same time, we have catastrophic wildfires that wipe out neighborhoods. I’ve never seen winds like the ones we saw. They were terrifying. Like being in a hurricane.
Anyway, that’s how I know it’s unusual…
The region experienced back to back years of high rainfall, spurring brush growth.
This year the region experienced severe drought, converting all of that growth into fuel.
Last week the region experienced 100 mph winds, which converted spot fires into fast-spreading conflagrations that could not be fought.
This pattern of instability is an outcome of climate change.
So yeah, it was caused by climate change.
[0] https://blog.pragmaticengineer.com/the-product-minded-engine...
At the very least it's a fun read!
[0] https://www.amazon.com/Phoenix-Project-DevOps-Helping-Busine...
Regarding tools, I recall a bunch of stuff. YMMV:
* A presentation to the wider team on the goals of the library.
* GitHub issues outlining technical design of the library -- this was useful for getting buy-in from tech leads.
* One of the consuming developers gave a presentation on how she had implemented a UI using EUI.
I think it just comes down to repetition and, as snide alluded, positioning yourself as a servant instead of an authority. Keep beating the drum, share success stories, and demonstrate that you're responsive to the feedback you're heading from the folks downstream. Good luck!
1. Publish components, not styles. This has been rehashed in other HN threads, but the idea is to provide Lego blocks to help engineers build UIs more quickly. This might be out of fashion with Tailwind adherents but we found success by treating the framework's primary interface as React/Vue/JS, not CSS.
2. Be transparent and receptive. Share your goals with consuming teams and ask how you can help them. They might ask for specific components or might ask you to help them convert a UI to use the library. By demonstrating that you and the library are there to serve (as opposed to dictate) you'll earn goodwill and your work will have more impact.
3. Have high-quality components. This applies to the UI design (both how the components look and how they behave) and software design. Are the props intuitive? Do the components compose well? We were fortunate enough to have a strong design and engineering team that did well on this points.
4. Seed the consuming codebase. Patterns in codebases propagate because engineers like to copy/paste. For example, start by migrating all buttons in the consuming codebase over. Then migrate over all forms, modals, and so on. It also helps to take a vertical approach, by migrating a single view entirely over to the library, or building one from scratch. This can get people excited about the library because they can see and experience the end result.
5. Ensure compatibility with the existing codebase. Make sure styles don't collide, make sure the underlying JS libraries are compatible. I chose React for EUI, but the consuming codebase (Kibana) was Angular. We made the decision to convert Kibana to React too, but there was a temporary period where we mounted React components inside of Angular. We needed simple guidelines to support the engineers who were doing that.
1. You'll iterate towards the most useful version of your design system in the least amount of time if maintainers spend time consuming it, and vice versa.
2. Code is the source of truth, in the form of the component library. It's an unhelpful fiction to treat the non-code design system (whether that's in Figma, Sketch, or wherever) as the source of truth. This is because people build out new parts of the UI by copying, pasting, and modifying the code of the existing UI. If you want to make a change to the design system, it has to go into the code to make a difference.
For contemporary examples, just look at North Korea or Russia. Life is undeniably harder for citizens living in these countries, but where is the expected "strength" and "good times" that should result?
[0] https://acoup.blog/2019/08/16/collections-this-isnt-sparta-p...