Delivering Working Software is not Enough
originally published June 11th, 2024- Businesses Evolve
- Successful Software Empowers Business Evolution
- Business-driven Shifts
- What Properties Must Successful Business Software Have?
“What properties must software have in order to empower a business?"
We must accept that we CAN build working software. However this is not the complete extent of our responsibility.
Businesses Evolve
Businesses do not have complete and perfect understanding of their environment and their environments change. They will continually seek to evolve as their conceptual models change in order to exploit opportunities.
Businesses change in order to react to their environment.
Successful Software Empowers Business Evolution
When businesses can’t evolve in a timely manner because their automated behavior can’t be changed quickly enough, they lose opportunities and many businesses fail for this reason.
The measure of successful business software is its ability to empower business strategy. This is measured in its ability to make consistent and timely shifts in automated behavior.
Business-driven Shifts
- The initial delivery of software.
- Changing behavior in existing software.
- Killing off software or replacing it.
These are all examples of business-driven shifts of automated behavior.
What Properties Must Successful Business Software Have?
The purpose of business software is to support business strategy. We must use our knowledge of the business and its goals in order to determine how to support its strategy.
Only once we realize that delivering functioning software is not enough, can we begin to assess the trade-offs necessary to deliver successful business software.
Articles
- Delivering Working Software is not Enough
- Do Androids Dream of Microsoft Excel?
- Practical Techniques to Reduce the Harm of Active Record
- Aggregates for Those Familiar with ActiveRecord
- Simplifying Test Development
- Active Record: How We Got Persistence Perfectly Wrong
- Testing is Part of the Production System
- Card-based Simulation Engine
- Test Code is Application Code
- Testing at Boundaries with Test Doubles and Fixtures
- Adding Real Capabilities to Systems Through Naming
- Some Game Projects
- Avoiding Unified Data Models Talk
- More Relaxed Typing with Dvorak
- Event Sourcery
- What is Active Record
- What is Domain Modeling
- Designing A Model Architecture Talk
- A Talk About Naming Things Talk
- Dev Discussions Podcast
- What is a Repository
- Command Bus