I can handle it myself

Don't give advice to software developers if they don't ask for help. You will get an answer like  “I can handle it myself."

The crux is often that they don't see the full picture and underestimate the complexity & effort to solve the problem.

If you are a seasoned enterprise architect or program manager, you seen it before.

I'm humble when it cames to solve complex problem. If I try to do it all by myself, I know that I will miss something.

I'm also lazy. If I can reuse something that is applicable in the same context, then I try to do it. Not inventing the wheel again, and again.

When doing enterprise architecture, I'm always starting with IAF, as it covers business, information, application and infrastructure, plus security and governance. You allways need some parts.

For information architecture, basic IAF as structure. Alternatively "Verksamhetsarkitektur på IRMs sätt". More or less the same.

“I can handle it myself." don't work when it comes to architecture frameworks.

Another timesaver is to use process and information frameworks for the industry you are in.

If you say that your information model will better and done faster, I would be very doubtful. I was part of a team that begun this work in 2001, before modern TMF frameworks where in place. It took a long time.

Then we have those who refuse to use AI. I still remember some colleagues that said computers with mice where toys when I bought an SE/30 to the marketing department.

Without a carrot or stick, you can just wait until they fail, and then try to help.

Next and beyond

The new thing is, with generative AI, you can develop code from from scratch. However, both software developers and AI need guidance to write maintainable code and avoid technical debt.

What I'm doing right now privately, not with our clients, is to use generative AI (Copilot) to develop a domain architecture in EA style, a solution architecture aligned with the domain and a software development playbook. All of this will be input to Claude and the development of iPhone front-end and Azure backend.

This is now for me and new for many of our clients. What about next and beyond?

In the old days, you wrote code from scratch to support your core business. Then COTS solutions for common things like finance, supply-chain etc. The trend continued with SaaS in the cloud.

What if development cost becomes low, not free, in the future. What are the implications?

Today, we have the 80/20 rule. 80% of the IT budget goes to maintenance of everything that is in production, e.g. legacy. So if you want to lower your TCO, you need to address the question how to use AI to manage your existing applications cheaper.

Eventually, the possibility to write and maintain your own code, will put a price pressure on large COTS and SaaS vendors. I'm looking at you SAP, Oracle, Microsoft, Salesforce and others.

The other prediction is that if your business heavily relies on IT, then it will be much cheaper for competitors to challenge our market dominance. Finance and insurance is a typical sector that may be impacted. Same goes for typical on-line business selling services and social media platforms. The brand, and trust in you, is fare more important than your IT in the future.

If your in physical world, less of a challenge, at least for next.

Beyond next? I would take inspiration from sience fiction and continue to polish the crystal ball.

For film production, focus should be on creativity and storytelling, and try to do lean productions to lower the costs

Now, new and next

Frank Wammes shared a self-assessment about thought leadership than made me think of what I write on my blog Disruptive Architecture.

The tagline for the blog is "When you need to make huge changes to your organization" which is about going from now to new. But what about next in the increasingly uncertain future?

I've been experimenting with generative AI since two years ago, and watching the progress of some of the tools since then. From something barely usable to an indispensable tool today.

As a consultant, I work with many different companies, and generative AI is more of new than now.

The question for me as an Enterprise Architect are the longer implications of this.

I'm trying to build a rather complex software platform for film productions, and with AI, I can build something much faster to try out ideas. This was not possible two years ago when I begun dabbling with the concept.

For many of my clients, this is not now, maybe new and more towards next. Very far far away from the daily work in the agile teams.

If I look at software development mostly done with AI, as new, what is then next?

In a follow up article, I will try to look into a crystal ball, and write about next using the film site project as an example.

Rather obvious

It's rather obvious when you know, but from my viewpoint, very few architects understand the need for information modeling. Even fewer know how to do it the whole way, from seed to loaf.

Your transformation program will surely fail if you forget to design a proper information architecture.

The starting point is a business glossary for the relevant part of the business. Then a canonical information model and a logical interpretation of this. Finally API's and schemas.

Business model -> Information model --> Data model.

If you don't know the craft, then you are in uncharted territory and will get lost.

Definition of done

"Musicians are lazy" is quote from Paul Guy. I believe the same is valid for software developers.

This is why the definition of done is extremly cruical for business critical systems. With optimistic estimates for development, the agile teams won't do more than necessary, i.e. according to the definition of done.

The problem lies in when the definition of done is shallow, and the missing parts affects data quality, security and build technical dept.

I asked Copilot for some input and it came up with twenty different point related to maintainability, team & delivery and governance. The first paragraph in the text was "This Definition of Done is mandatory. A change is not considered DONE and must not be released unless all criteria below are satisfied."

Back to reality.

I'm doing a PoC, lightweight MVP, for my film production related project. A this makes development take much more time if I have a proper DoD. This makes me skip a number of checkpoints for the initial version that will be used to verify the concept. However, with this list I know which debt I've got to resolve in upcoming sprints.

The Defintion of Done is only part of the story. To guide developers (me and some friends) and AI-tools, I'm compiling a playbook for software development & operations. It includes principles, guidelines and patterns, based on best practice, for the context of this application. Without context, you can't suggest a suitable best practice.

Both the structure of the playbook and the content is based on reasoning with Copilot, using references to a number of public sources relevant to this case as input. With a few hours of effort, I've have something usable and good enough to start with.

The more I tinker with AI, the more obvious is it that for rapid prototyping it's already very good. To build large, stable, maintainable systems, you still need to think in advance, before letting AI write your code. The upside is that AI can help you in your thought process.