Tuesday, September 8, 2020

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 and are machine readable.

Comments empower users to store relevant unstructured information. Comments are only for human beings.

What are good approaches to provide searchable tags and labels and avoid wild growth of useless records?
Can you as a designer govern the ontology defined through labels?

Monday, August 24, 2020

Entities, Identifiers, External identifiers and Names

A software architect models customer domains and maps them to good software abstractions. Soon you correlate internal efficient identifiers, meaningful external identifiers and domain entities. 

How do you relate with external systems and communicate with other companies?  

How do you define internal identifiers which grow with the application success? 

How can you bridge the customer world with your software solution?

What are the good practices to create a maintainable, legible and efficient model of your domain model? 

Wednesday, July 15, 2020

A Journey Implementing Digital Invoices

Our company has the ambition to digitalize all our workflows. 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.

Switzerland finally introduce a digital payment slip. It is based on a QR code and still assume you need to print it. The European Union is more inovative and mandates that invoices to government parties must be digital.

Our company exchanges contracts and invoices with partners and customers using the standardized and well-known PDF format. It is time to explore extensions to support the new legal requirements in Switzerland and in Europe.

We show open source based solutions and the trade-offs we had to accept. Beware our solutions are based on the Java stack.

Monday, June 1, 2020

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 changes can radically improve the design.
Martin Fowler

Saturday, May 9, 2020

Gradle 6.4 Has Finally Java Module Support

Java 9 release introduced the concept of modules within the Java language. Java 9 was released in September 2017.

Until now creating Java modules was quite cumbersome and Gradle did only offer limited support through external plugins.

Finally with the release of Gradle 6.4 in May 2020 software developers can easily generate well-behaved Java modules. We had to wait almost three years for native support!

Support for modules is native in the Java plugin. You only need to add one configuration line. Start using Java modules and have language support to enforce modularity in your product.

Friday, May 1, 2020

Four Powerful Sentences

You are a line manager, a Scrum master, a senior developer. Investigate the use of four powerful sentences.
- Sorry (one word)
- Thank You (two words)
- I am Wrong (three words)
- Can I Help You? (four words)

Walk the talk. Be a leader. Prove you have honesty and empathy.
You shall use these four sentences below as a way to calibrate how you interact with your teams.

As a rule of thumb state honestly and genuinely these four sentences multiple times each week. Otherwise you are probably more a command and control boss and not truly a servant leader.