Architecting for Innovation
Change. Change is the only constant in the software industry. There are countless reasons for this change. All too often, the needs for our software change faster than we can write and we cannot adapt fast enough.
This is our quest in this book and in our industry. We need to architect our software for change. We must innovate at the speed of business. We need to adapt and change our software in real time. We need to experiment to find the best solutions in a dynamic environment. And we need the confidence to move fast and innovate, without breaking what works.
To achieve this, we first need to know what holds us back. We need to understand our software development past so that we improve going forward. So, in this first chapter, we will start with an analogy of many software projects and then consider an analogy that we can aspire to. Then we will survey our software development practices and integration styles to see how they increase lead time and slow us down. Finally, we will take this knowledge and sketch out the serverless event-driven architecture that we will unfold throughout the book: an architecture that gives autonomous teams the confidence to continuously innovate and deliver business value.
In this chapter, we’re going to cover the following main topics:
- Continuously delivering business value
- Dissecting lead time
- Dissecting integration styles
- Enabling autonomous teams with autonomous services