Overview

The continual evolution of web technologies continues to shift the business landscape. Donald Norman posits that technologies have a life cycle. As a technology matures, products must change to offer the customer convenience, ease of use, and pleasure. At the tipping point, the technology being used should be invisible and hidden from sight. Hence, product managers need to start with an understanding of people: user needs first, technology last--the opposite of how things are done now. Consequently, companies must change the way they develop products. The diagram below depicts Norman's view of the change that occurs during a technology maturation process. Sadly, this industry has forgotten the lessons of the past and prefers to chase new shiny things instead.

Customer technology interest
Customer as Product Driver Invisible Computer (1999) by Donald A. Norman

Web development techniques have matured in the last decade. W3C has updated both HTML and CSS standards to accommodate the changing needs of the business of website / application building. These latest versions of the web standards have become powerful enough to reduce the reliance on Javascript to control the user experience.

CSS frameworks - love ‘em or hate ‘em. Developers were the creators and builders of these frameworks to suit their own needs. The work done over last decade (or more) to build these frameworks has pioneered a way of working to produce web pages quickly and efficiently. Interestingly, these original framework builders were slow to adopt the changes in CSS standards and these frameworks continue to rely on Javascript for the more complicated user interactions.

We are like dwarfs standing on the shoulders of giants; thanks to them, we see farther than they. Busying ourselves with the treatises written by the ancients, we take their choice thoughts, buried by age and human neglect, and we raise them, as it were from death to renewed life.

Pierre de Blois; c.1130 – c.1211, Theology of the Reformers

The maturation of web standards has delivered very comprehensive capabilities. Modern evergreen browsers have become very sophisticated and efficient in handling HTML5 for structure and CSS3 for presentation to the point that Javascript use can be minimized or, in some cases such as static web pages, can be eliminated. Javascript can return to its roots to provide a way for the web page to communicate with the server to fetch user data and to hydrate HTML scaffolding.

The widespread adoption and use of web technologies has increased the supply of companies capable of delivering websites to meet the needs of the buyers. This competition has also increased the competitive pressures on web page / application builders. The plethora of frameworks and languages available makes architectural choices critical and has a major impact on project costs and delivery times. Note that all frameworks / libraries work as advertised and do their job to help build web pages, but do so at varying costs points. These changes have shifted the focus from developer driven innovation to the product manager who has to live in a world of constraints of both time and money.

The product manager has a mandate for managing a project’s profit and loss. The loss part is easy: hire developers and just keep building stuff. The profit side is hard … really hard. In order to have profit, a project needs to have customers that spend money (ie generate revenue). This revenue is the money available to a project manager to build more stuff and, more importantly, debug and maintain stuff that has already been built. Limited revenue also limits the developer team size. All of these constraints force the product manager into trade-offs: user experience is important, only some features can be built, code must be debugged and maintained, customer support has to be paid for, etc.

Although every developer looks for unopinionated tools to use, the reality is that as soon as a product plan is struck, technology decisions are made that create a very opinionated tool kit that the team is required to use. There are many benefits to doing so for development. These benefits also flow directly to the business side as well. Unfortunately, technology stacks are often constructed from many libraries that can add a tremendous amount of complexity that then become difficult to manage. This then requires much more labour to make work properly and can delay the product's entry into the market.

Another Way Forward

Goldilocks-CSS is inspired from the work of people devoted to improving all aspects of web design and technology. One of more vocal proponents of clean and accessible web content is Jason Knight and more of his articles on Medium. Mr. Knight has deep experience in this area and a desire to improve the state of website construction ... once you get past his colourful language.

Goldilocks-CSS is a project designed to meet the needs of the business rather than the developer alone. Goldilocks-CSS is driven by the Goldilocks Principle and strives to find the sweet spot between a good user experience and efficient project execution. Goldilocks-CSS is more of a modular set of best practices rather than a just a framework. Goldilocks-CSS helps the product manager deliver products in a timely way by:

  • Being a single source of truth for consistent web page creation;
  • Using semantic HTML5 for content structure to meet accessibility requirements (and hence reduce litigation);
  • Adhering to HTML and CSS standards to future-proof your project;
  • Leveraging modern CSS3 to create a “no Javascript” presentation layer;
  • Reducing javascript code complexity;
  • Increasing HTML code readability for maintenance work by minimizing presentation layer cruft.

The objective is faster time to market at a much lower cost. See Key Business Drivers.