Optimize for outcomes that matter – not pointless, repetitive drudgery
For decades, progress in application design was driven by reducing surface area and shifting complexity to the application’s environment. This progress proved to be cyclical, ebbing and flowing with the pervasive trends of the day: like the shift from mainframes to client/server, which eventually created the server-based Unix era, which itself led to the public cloud, which ultimately gave rise to fully managed and “serverless” offerings.
Now, the next significant movement in application development has begun.
The best application developers are leading with judiciousness, maniacally focusing on solving the toughest problems in the leanest, most elegant way possible. As developers, we place a premium on the idea that less is more. We believe in DRYness – precision coding. And the code we write is entirely aimed at delivering unique value, leaving undifferentiated and previously-solved problems to the rich set of cloud services at our fingertips. In summary: We are building powerful, lean applications.
This blog series covers the lean app movement in four parts.
Part 1 – Lessons from the Past. This section takes a look at the trendlines that have made it possible to develop lean apps. I highlight the technology shifts that make it possible for us to apply an extreme focus on building software based on customer value, rather than technological ownership
Part 2 – The Elements of a Lean App. In Part 2 I define the ideal model of what a software application should look like. For an industry that has for so long defined “software” as “stuff that runs on a machine”, it can be hard to wrap your head around the idea of giving up on that paradigm. This post clearly outlines the elements of a lean app, including data model, integrity constraints, state transitions, and connectors.
Part 3 – Let Infrastructure do the Dirty Work A fundamental tenet of the Lean App Movement is to stop the undifferentiated heavy lifting and leave that to the cloud infrastructure providers. But for that to be possible, the infrastructure on which the application depends needs to start doing a whole lot more than it does today. This post covers what infrastructure needs to do automatically and without impacting developers or operators.
Part 4 – The Lean App Manifesto. What does a lean world look like? In some ways, it’s a continuation of everything that’s come before: open source software, the public cloud, Serverless. Each of these, in some way, helped to “lean out” some aspect of application development, without getting quite all the way there. The lean app movement is driven by a simple, overarching idea: Less over more. If a technology, process, approach, or vendor can do something effectively that’s not your core business, then let them. This post covers the six simple rules lean apps follow.
In this series I highlight how the concept of “leanness” has been around for ages – in a sense, it’s just DRY coding applied at a macroscopic level to every aspect of an application, from data handling to cross-cloud deployment. But as the next major iteration of software development, it will once again transform the industry, much as the cloud has, shifting ever more work from individual developers, their applications, and the companies that pay their wages, onto cloud and other providers who will create economies of scale through multi-tenanted solutions that handle the undifferentiated (if still exceeding complex) heavy lifting of data and compute management. Over time, companies will enjoy lower TCO, faster time to market, and better ROI as the process of developing, deploying, and maintaining software applications and associated IT infrastructure continues to drop. Lean coding is the ultimate expression of innovating for customers.
If you don’t want to flip through four separate posts, you can download the full white paper here.
It’s possible to create lean apps today with Vendia. With our platform, you can move directly to a lean app methodology for new application development or to layer a significant new feature or capability on top of an existing application. Get started for free and deploy a sample lean app in less than ten minutes here.
Where wholesale adoption of the idea isn’t (yet) possible, developers and companies still benefit from the concept through incremental steps in various areas of application development. Contact us and we’ll help you learn how to start applying a lean approach to your development today.