Robust. Lean. Flexible. Accessible.
Most developers are familiar with these words. They represent what we strive to create day to day: robust products that are easily read, flexible to new requirements, and globally accessible. Developing the perfect component in a project can take a lot of time. Some developers try to account for everything, like potential interactions and browsers, to create the best user experience — this creates a challenge.
A simple component can easily become hundreds of lines of code when you prepare for every potential scenario. The goal is to build a component that is flexible and lean — features can come later. Focusing too soon on unnecessary specifications will quickly tank your time and budget.
There is no singular solution to this dilemma, but there are some key areas of focus to keep yourself, and your product, on track.
Level-Set Your Mind and Expectations
Developing flexible, lean components begins with setting realistic expectations. It’s not about “doing X to solve Y”, it’s about focusing on tasks and fostering creativity. This approach allows you to deliver on time and provides inventive space to improve mechanics and enhancements.
Balance Minimum Viable Product (MVP) and Future Functionality
Development is about balance and building a solid foundation. Understanding the key requirements for building components, while keeping future expansions in mind, is important. This requires some level of assumption, and it’s easy to get lost in the details. The trick is to develop to spec at the start and expand as data or requirements change. This will help you avoid fixing, adjusting, and rewriting for problems that don’t, and may never, exist. Remember, maintaining lean flexibility tackles issues as they arrive, not all at once.
Constrain Creativity (for now)
Being told to focus on the requirements can be boring, but don’t think of this as a suggestion to avoid creativity. Spend the early stages of development getting the product built to spec, then focus on the fun stuff! Pivot your mindset to create a flexible core system that fulfills the requirements first — in theory, this gives you more time to be innovative.
Don’t skimp on the basics
Finally, there’s accessibility. Some developers view this as an afterthought, but it’s better to build your core components with great HTML and CSS semantics from the beginning. Your system will be more robust and usable at the start. Adding “accessibility hacks” later is time better dedicated to making improvements instead.
There’s no steadfast checklist to make sure that flexible, lean development happens. Building robust systems that meet all requirements, while leaving room for future expansion, feels impossible. Everything in your project needs to happen in the right order if you aim for efficiency. Create milestones, separate tasks from enhancements to meet expectations quickly — suggest improvements later.