Component lifecycle

Introduction

The lifecycle of a component within a Design System comprises several stages, spanning from its creation to eventual retirement. Starting with the design and development phases, components are conceptualized, designed and implemented. Once in use, they undergo real-world testing and user feedback to identify usability issues and potential improvements. As the system progresses, components may be upgraded or even withdrawn to meet ever-evolving standards and user requirements.

Each of the states can be understood as milestones that summarize the maturity lifecycle of the components in Halstack and have their implications or requirements which need to be fulfilled to move from one to another. This process is non-linear, which means that a component can go backwards if the situation requires so.

Adhering to this lifecycle ensures that our designers and developers uphold a well-organized Design System, facilitating a smooth and intuitive user experience.

Experimental

The component is ready for preliminary usage. It meets most maturity criteria, and use is encouraged for most scenarios. It may undergo last minute changes from its first uses, unexpected scenarios and actual user experience, which can sometimes be hard to estimate.

Implications

  • Partial documentation. The documentation of the component may be incomplete, with missing parts, examples or even entire pages.
  • Partial implementation. The component may lack some features or new ones may be incoming. Regardless of this, all the released functionality is fully tested, including visual regression testing, snapshot testing, unit test, etc.
  • Already released and available in the next version of the Halstack npm library.
  • Already released and available in our design tools.
  • The component API may be subject to change.

New

The component has reached a level of maturity and completeness that the Halstack team is happy and confident with.

Implications

  • Fully available. The component is already available in our design tools and has also been released in a minor version of the Halstack npm library.
  • Fully documented. Usage guidelines, API configuration, examples and design specifications cover all the features and use cases of the component.
  • Fully implemented. All the planned features of the component are available.
  • Fully tested. All the functionality offered by the component has been tested by our common tools (storybook, jest, chromatic, etc).

Stable

The component is significantly mature and usage is strongly encouraged, with long-term support expected.

Implications

  • The API remains stable, with no breaking changes for at least one month.
  • The component implementation remains fairly stable, with no breaking changes for at least one month.

Legacy

The component is stable but there are plans to replace its functionality with a new component or a combination of new components. The use of legacy components is not discouraged, with the caveat that they will be deprecated and replaced in the next major release.

Implications

  • Documentation exists for the legacy component and includes any alternative components.
  • Manual or automated migration paths have been documented and will be code-available as soon as possible.
  • The component will be considered as legacy for one release, so users can prepare to its eventual removal.

Deprecated

The component will be removed in the near future. Users should start avoiding it for new application and existing ones should start considering other approaches.

Implications

  • The component will be removed in the next major release.