The More You Say, the Less People Remember The Fewer the Words, the Greater the Profit

These wise words were written by François Fénelon, a writer and theologian living during the 17th century. This is an article summarising different approaches to the development of IT solutions. Learn why the above quote is very relevant for developers in the 21st century.

 

Business-driven development is a meta-methodology for developing IT solutions that directly satisfy business requirements. This leads to increased flexibility and shorter turnaround times when changing the business and adapting the IT systems. 

 

This is achieved by adopting a model-driven approach that starts with the business strategy, requirements and goals and then refines and transforms them into an IT solution. Due to the alignment of the business and IT layers, it is possible to propagate changes in the business automatically to the IT systems. 

 

This is partially replaced by Domain-Driven Design and Behaviour Driven Development in Agile terminology. 

 

Domain-Driven Design is a means of capturing requirements from domain experts to automate a business process using a common language.

 

Behaviour Driven Development is a means of automating the testing of an application as a high-level description of what the application must do. This is a form of Test-Driven Development that uses inputs, and expected results are modelled as data, e.g. events, data structures, or tables in a Domain Specific Language, rather than in code, allowing these descriptions of functional requirements to be written before coding starts, and automatically checked when code changes.

 

To divide the functionality into easily maintainable, deployable, and replaced parts, a Service Orientated Architecture models the applications as a collection of microservices. SOA is often implemented with request/response APIs to support user interfaces. However, backend automated services where servers communicate with other services are more efficient when an Event-Driven Architecture is used, allowing a higher volume of concurrent events to be in flight at once.

 

While all these things are important during the development of a project, a solution can easily cost many times its initial development over its lifetime. It is worth spending time on Keeping it Simple to reduce the cost of maintaining it. This is something I am always trying to fulfil in the Chronicle libraries, regardless if it is an Open Source project or Enterprise project. Let’s finish with my favourite quote about engineering from the French writer Antoine de Saint Exupéry: “It seems that perfection is reached not when there is nothing left to add, but when there is nothing left to take away”

 

Comments

Popular posts from this blog

Low Latency Microservices, A Retrospective

Unusual Java: StackTrace Extends Throwable

System wide unique nanosecond timestamps