The Engineering Mindset: Constraints as Catalysts
Ines Akrap argues that the web industry often confuses 'requirements' with 'negotiables.' Drawing a parallel to the Fehmarnbelt Tunnel project—a massive infrastructure undertaking connecting Germany and Denmark—she highlights how physical constraints (geography, wind, soil, and CO2 regulations) forced engineers to innovate, such as inventing new concrete-pouring methods. In web development, however, we often treat critical constraints like hardware limitations, energy consumption, and user connectivity as optional.
Reframing Web Constraints
Akrap suggests that we must shift our perspective on what constitutes a 'constraint' in software. While we readily accept browser support or accessibility as requirements, we frequently ignore the physical reality of the web:
- Hardware & Battery: We rarely define CPU or battery usage budgets, despite the fact that our code directly impacts the user's device longevity.
- Connectivity: Developers often impose arbitrary timeouts that break experiences for users on slow connections (e.g., the South Pole case study), rather than designing for resilience.
- Lifespan: Unlike a tunnel designed for a 120-year lifespan, web projects rarely have a defined end-of-life or maintenance strategy, leading to bloated, unmaintainable codebases.
The Intersection of Performance and Sustainability
Sustainability is not a separate 'feature' to be added; it is the natural byproduct of good engineering. When we optimize for performance—reducing payload sizes, minimizing third-party scripts, and choosing the right tool for the job—we inherently reduce the energy consumption and carbon footprint of our digital services. Akrap emphasizes that 'sustainable' and 'performant' are often the same thing: both require asking, "Does this actually need to exist?"
Beyond the User: Social and Environmental Impact
True sustainable engineering requires looking beyond the immediate user to the broader ecosystem. This includes considering the impact of data collection practices, the energy source of hosting providers, and the ripple effects of our digital services on the communities surrounding the infrastructure. We must move from a mindset of 'maximum data collection' to 'intentional data usage.'
Key Takeaways
- Treat constraints as non-negotiable: If you don't define hardware and energy budgets, you are neglecting the physical reality of your product.
- Design for resilience: Avoid arbitrary timeouts and heavy dependencies that punish users on low-end devices or poor connections.
- Question the necessity: Before adding a feature or a third-party script, ask if it is essential. If it doesn't serve the core purpose, it is likely technical debt.
- Plan for the lifecycle: Define the expected lifespan of your project and how it will be maintained or decommissioned.
- Performance is sustainability: Optimizing for speed and efficiency is the most effective way to reduce the carbon footprint of your web application.
Notable Quotes
- "For so long I really, really believe that constraints are what power our creativity and not only that, constraints are the one that bring a lot of innovation."
- "A lot of times in web development, we don't really use constraints. We use requirements and we treat them as negotiables."
- "Sustainable web engineering isn't something new to learn. It's what good engineering has always looked like. We just didn't have the word for it."