Meaningful Identifiers Identifiers are a key concept to successfully model complex business domains. They permeate how our modern civilisation functions. Could you imagine a country without car registration number, internet addresses, postal addresses or social security numbers? Identifiers are identifiers. Identifiers …

Read More

Value Objects as Embedded Entities This post discusses the value object pattern, and the factory pattern which are tactical patterns in the domain driven design DDD approach. Value objects represent typed values, that have no conceptual identity in your domain. They can hel you write better code that is less …

Read More

Support Comments for Static Hugo Website There are times in software when you are facing a problem, you find an off-the-shelf solution, and a few lines of code later it just works. Today I lived one of those moments. The whole configuration of comments and modification of the Docsy theme took around one hour. …

Read More

Reference Codes Reference codes are an old concept. They are often used in relational database schema definition as enumeration values. The database specialists often call them lookup tables. Reference codes are dynamic enumeration values. By dynamic, we mean you can add values without recompiling the source code. In …

Read More

Creating a technical Website with Hugo and Asciidoc I hosted my technical blogs on blogger for years. If I correctly remember I started to use blogger ten years ago. It is a great tool with some drawbacks. Over the years the drawbacks sting more and more: Their editor is brittle, with limited functionality and …

Read More

The power of Tags and Comments A software architect models customer domains and maps them to excellent software constructs. The solution shall support future customer groups and expand to store additional information. Tags, also called labels provide an informal ontology to classify customer data. Tags are extensible …

Read More

Entities, Identifiers, External identifiers and Names A software architect models customer domains and maps them to powerful software abstractions. Soon you correlate internal efficient identifiers, meaningful external identifiers and domain entities. You enjoy our long conversations with the enterprise data architect …

Read More

A Journey Implementing Digital Invoices Our company has the ambition to digitalize all our workflows since our inception. We proudly state we never bought a printer or a fax machine. Analog machines should become obsolete in the digital age. Companies should be more environment aware and save some trees. See our blog A …

Read More

Legacy Systems Refactoring With refactoring you can take a bad design, even chaos software, and rework it into well-designed code. Most often it is cheaper refactoring a legacy application instead of rewriting it from scratch. Each refactoring step is simple, even simplistic. Yet the cumulative effect of these small …

Read More

Agile Component Design You are responsible to create or modify a component in your current application. This is a design activity. How can you create a good, legible, maintainable component architecture? How can you validate your functional and non-functional requirements? Yes you are right. You are responsible for …

Read More

Agile Architecture Principles You are applying the agile, lean approach to your software product development. Your teams use Scrum or Kanban to deliver running software every two weeks. The product market introduction is a success and you will successfully sell the solution for the next ten years. How shall you define …

Read More

Code Scene as Crime Scene You have a successful product and happy users. Slowly the cost adding new features is creeping up and product margins are shrinking. Which crimes did put us in this dreaded situation? How can you analyze the history of your product’s source code? How can you explore the social dimension of …

Read More

You Need an Engineering Culture Agile approaches are not enough, You need a strong engineering culture to achieve quality and lasting success. Often coaches and Scrum masters tinker with the processes and invest effort and blood to improve the ceremonies and the company structure. But at the end of the day the success …

Read More

Architectural Decision Records ADR Architecture Decision Record ADR is a compact and traceable documentation of all important decisions taken during the realization of a product. Use asciidoc or Markdown and Git to have an agile and lean documentation of your major decisions. The huge advantage of Architecture Design …

Read More

How to reach the Software Quality Graal? Lately I was asked how many bugs and smells detected through SonarQube were acceptable for a software product. And a Scrum master inquired which organizational changes are necessary to empower software developers to write good code. Speechless and dumbfounded I was unable to …

Read More

Sonar Lint for the Impatient Remove issues before they reach customer sites. No quality problems shall reach your Git master branch. What is Sonar?SonarQube is a central server that processes full analyses (triggered by the various SonarQube Scanners). Its purpose is to give a 360° vision of the quality of your code …

Read More

Pragmatic Craftsmanship - Professional Software Developer The last months I was often confronted with software products having insufficient quality. Insufficient means late delivery, and few new features. The effort to correct errors in the field eats 30% to 50% away from the whole development budget. How can such a …

Read More

Why Use Current Software Components? Often teams discuss if their product should upgrade to the current version of used components, development tools and programming languages. I have a strong opinion about upgrades. You should always use the current version of all components included in your product. The only …

Read More