Friends of OpenJDK Today

“The More You Say, the Less People Remember…

January 25, 2023

Author(s)

  • Peter Lawrey

    Peter Lawrey is a Java Champion and Oracle Code One alumnus. Peter likes to inspire developers to improve the craftsmanship of their solutions and his popular blog “Vanilla Java” has ... Learn more

…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

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.

In Agile terminology, this is partially replaced by Domain-Driven Design and Behaviour Driven Development.

Domain Driven Development

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

Behaviour Driven Development

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.

Service Oriented Architecture

To divide 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.

Event Driven Architecture

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.

Keeping It Simple

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 of whether it is an Open Source project or Enterprise projects.

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”.

Topics:

Related Articles

View All

Author(s)

  • Peter Lawrey

    Peter Lawrey is a Java Champion and Oracle Code One alumnus. Peter likes to inspire developers to improve the craftsmanship of their solutions and his popular blog “Vanilla Java” has ... Learn more

Comments (0)

Your email address will not be published. Required fields are marked *

Highlight your code snippets using [code lang="language name"] shortcode. Just insert your code between opening and closing tag: [code lang="java"] code [/code]. Or specify another language.

Save my name, email, and website in this browser for the next time I comment.

Subscribe to foojay updates:

https://foojay.io/feed/
Copied to the clipboard