<![CDATA[raphaelf]]> https://www.raphaelf.xyz/ https://www.raphaelf.xyz/favicon.png raphaelf https://www.raphaelf.xyz/ Ghost 5.81 Sun, 13 Apr 2025 21:48:18 GMT 60 <![CDATA[Your First Moves in Enterprise Architecture – A Strategic Guide to Getting Started]]> https://www.raphaelf.xyz/your-first-moves-in-enterprise-architecture/ 6792427a1f51ec22408d3f3f Fri, 11 Apr 2025 16:30:00 GMT

So you want to get started with Enterprise Architecture (EA)? This guide will help you take the first steps successfully. The beginning feels like hacking your way through a dense jungle of many applications, technologies, teams and processes. But with the right tools and a clear strategy, you can cut a path towards a future-proof business. So let's start this expedition!

🌀 Define Your Objectives: Find Your Why

First things first: Why are you diving into EA? Before moving on, take a step back and look at the big picture. What is the organization trying to achieve? Are you aiming to align your business and IT? Perhaps you're on a quest to make your organization more agile, or double-down on digital transformation? Or maybe you're striving to reduce costs – or the opposite: expand rapidly?

Whatever the reasons, make sure to clarify them with top management and articulate them clearly. These objectives are your North Star, guiding you through the fog of enterprise complexity. Write them down, share them widely, and refer to them often. Without understanding the business strategy, architecture efforts will lack direction.

Your success depends on your relationships with upper management. It's office politics, but in a positive way. Show them your superpowers. These are your capabilities to bring structure into chaos, to lead initiatives and to explain complex technical topics in simple words. Once they trust you, you'll have the backing you need to make real, impactful changes.

🦕 Assess Your Current State: Digital Archaeology

Time to play detective! Investigate your current application landscape, business processes, information systems, and infrastructure. It's like archaeology, but instead of dinosaur bones, you're discovering legacy systems and forgotten databases. Create a comprehensive map of all your existing applications, their functions, and how they interact.

Also document their "ingredients": the current technology stack. List out languages, frameworks, infrastructure providers, databases and standard software. You might find some ingredients that are well past their expiration date!

🔠 Categorize and Prioritize: What's Hot, What's Not?

Categorize your applications and tech stacks. Which ones are strategically important, and which ones are the Internet Explorer of your organization (in desperate need of change)? Focus on the important ones - you're an architect, not a magician. You cannot fix everything at once. To make prioritization easier, you might want to take a look at Gartner's TIME framework.

🔮 Develop a Vision for the Future

Based on your objectives and current state, now it's all about your vision for the future. Ensure this vision aligns with your organization's overall strategy.

Establish a set of architecture principles that will guide you through the transformation. These principles are not just goals, they're your architectural mantras. Cover aspects like technology standards, information management and security. Make them clear, memorable, and maybe even a little witty.

Next, paint a picture of your future architecture. This is where you get to channel your inner Da Vinci (but with more rectangles and arrows). Which applications and technologies do you want to improve, replace or sunset?

🗺️ How will you get there? Create a Roadmap

Now that you know where you are and where you want to go, it's time to figure out how to get there. Break down your journey into manageable phases and projects, with some milestones that you can use as checkpoints. One thing is clear: for this step you need your application experts on board, to get a realistic estimation of effort and lead time. Finally, you need management approval to get the necessary resources to make your ideas come true.

🤝 Collaboration, Support and Governance

It's time to establish processes for quality gates, architecture reviews and compliance checks. If needed, create a list of approved services and a process for exceptions. But remember, you're here to improve the organization, not to be the architecture police. Support projects, offer guidance and closely collaborate with architects, developers and product managers. Maybe you can even provide your teams with a convenient shared platform that they can build upon, to simplify and speed up their development.

📈 Try Out, Improve, Repeat.

Nothing is perfect from the beginning, but this should give you a good start into Enterprise Architecture. You can always iterate and continuously improve the status quo. Listen to what your colleagues say (and maybe what they think but don't say), monitor progress and read up about best practices and EA frameworks. Then you will definitely be successful! I wish you all the best!

]]>
<![CDATA[Why the Cloud has so much Momentum these days]]> https://www.raphaelf.xyz/why-the-cloud-has-so-much-momentum-these-days/ 66d77d8f520f2747bb2d54c4 Tue, 03 Sep 2024 17:00:00 GMT

In 2024, businesses of all sizes are adopting cloud computing and hyperscalers like AWS, Azure and GCP are growing at an insane pace. From an engineering perspective, the cloud is an amazing piece of technology. However, that's not the reason why so many companies are moving their applications into the cloud. The reason is that it helps businesses reach their goals. But how? This is what I'm trying to summarize in this article.

Here are my top 10 reasons why you should consider cloud-hosting your business application.

1. Managed Services relieve you of Maintenance Work 🥱

When you use managed services, you no longer need to worry about low-level infrastructure management. Deploy a container instead of a VM, then you don't need to update your operating system to ensure security. When you use a managed SQL database, you don't need to manage the host machine. You are tired of operating your own Kubernetes cluster? Then use a managed platform, it will save you a lot of exhausting brainwork.

2. Increadibly Easy Scalability 📈

Cloud infrastructure can scale seamlessly to meet your growing needs without requiring additional hardware or major changes. A few clicks or configurations allow you to scale up and down at any time. This ensures your applications are future-proof and can handle increasing loads effortlessly.

3. Empower Teams for End-to-End Ownership 💪

"You build it, you run it" is the motto of platform engineering. Great (cloud) platforms empower their teams to own not only the application code, but also the infrastructure that lives around it. It can reduce friction to align your software with your organization structure, see Conway's Law. This brings you one step further towards a self-sufficient, cross-functional team, that isn't dependent on other business units.

4. Infrastructure Automation and Auto-Healing ❤️‍🩹

When the infrastructure layer can be controlled via APIs, you can do all sorts of magic with automations, such as auto-healing your deployment whenever the container is unresponsive. Many of these techniques are even built into the cloud offering, so you don't need to create the automation from scratch.

5. Elasticity and Pay-As-You-Go Model 💵

The resources your application demands probably varies from hour to hour, from day to day. Some applications are only used during business hours. Or sometimes a marketing campaign causes so much traffic that your server crashes (We've seen it all). With the elasticity that hyperscalers provide, you can overcome this issue by scaling automatically, depending on the current demand. What's more, you only need to pay for additional resources when you really needed them.

6. Serverless Computing for Infrequent, High-Power Tasks ⚙️

Related to the previous point, many businesses have the need to periodically run resource-intensive tasks. While banks operate massive mainframes to do that, you could also just run some serverless functions. You pay for it while it runs. While your code doesn't run, you scale to zero and spend no money at all. Running your function on insane 256 GB of RAM and 32 cores costs as little as 5€ per hour.

7. Governance of Large IT Landscapes 🔍

Cloud platforms support central oversight and governance of large IT landscapes. Through policies, your platform engineers can ensure that every application in your organization complies with security, privacy, data locality, backup and logging requirements.

8. Ready-to-Use Cloud Services 🌱

Instead of building everything from scratch, you can leverage existing cloud services for data analytics, Internet of Things (IoT) applications, and many more. Take a look at the components your cloud platform provides, to see if you can make use of them to save time and reduce development costs.

9. High Availability and Disaster Recovery 💥

Cloud providers offer multi-region deployments and allow you to seamlessly shift traffic between regions and data centers. It ensures your applications remain available even in the unlikely event that your data center burns down or a major regional outage.

10. Machine Learning and AI Tools Tailored to Your Data 🦾

Last but not least, who doesn't want an AI tools that is tailored to their very own data. Only when your personal and your company's context is incorporated into an LLM does it really show its strengths. Data analytics and machine learning can add valuable insights to the data you have already stored. Unless you have your own in-house data scientists and ML experts, all of this only makes sense in the cloud, as it provides you with the tools you'll need to create your own AI tools.

To sum it up, by leveraging cloud technologies, companies can innovate faster, operate more efficiently, and stay competitive in an increasingly digital world.

]]>
<![CDATA[Green Light, Red Light: What is a Watermelon Project?]]> https://www.raphaelf.xyz/what-is-a-watermelon-project/ 66847f40922b20eacf9fe332 Fri, 23 Aug 2024 17:00:00 GMT

Have you heard about the term Watermelon Project? It describes something that occurs in many organizations dealing with project-based work. So let's get into it.

Project status

In update meetings, weekly check-ins or steering committees, the current project status is often described by a traffic light indicator. A green status means everything is on track with the plan, while red means that there are major risks or roadblocks ahead.

Green Light, Red Light: What is a Watermelon Project?

So what about the watermelon?

A watermelon project is green on the outside but red on the inside. In terms of project status, that means on the first glance, it seems like everything is alright and the project manager tries to maintain that impression towards the stakeholders. But if you look beneath the surface you can observe huge problems. The project is actually red and eventually it will become obvious.

Green Light, Red Light: What is a Watermelon Project?

Tell me why [does it happen]?

It is clear that a watermelon project is not great, but why could it happen anyway? There are a variety of reasons:

  • Uncertainty and 90% syndrome:
    As time passes in a project, some issues might appear that haven't been clear from the beginning. For example, the project could be based on assumptions that turn out to be incorrect later on.

    An extreme case of this problem is called the 90% syndrome. It describes the issue that for the first 90% it looks like the project is making good progress, but when it comes to the last 10% there are horrendous delays. In software projects, this happens when the integration of components is done too late or when the chosen architecture is not suited for the project and has to be changed mid-project.

  • Lack of communication:
    When there is no regular communication of the project status, problems will be noticed too late. Common tools to prevent this are regular update meetings or project dashboards that make the current status apparent to everyone.

  • Fear of negative consequences:
    Maybe there is regular communication but the PM is reluctant to openly share the real project status anyway, because they want to maintain a good image or fear negative consequences. These could be coworkers or managers questioning their competency, not receiving a promotion or bonus - or even worse - the risk of losing the job. Psychological safety is needed to create a trusted environment where bad news are shared and not hidden.

  • Subjective assessment:
    The project manager could also be very excited about the project and a bit over-optimistic for the situation. For example, they expect open issues to be solved soon or simply underestimates risks.

What we can do to prevent it:

Now what can you do to avoid watermelon projects in your organization?

  • Communicate early and manage risks:
    Make your watermelon project a strawberry project instead - red on the inside and also on the outside. If there are major risks or the project is already unhealthy, communicate it early, explain the risks you identified and what can be done to mitigate them. And by taking appropriate measures early, it will hopefully become green again 🍏

  • Back the status by data and KPIs:
    To avoid subjective evaluations, back your project indicators by data and KPIs. Numbers and charts don't lie. When talking about budget status, ask for the numbers. How much money has already been spent, how much is the planned total budget? Compare these numbers with the completion status - are both KPIs aligned or are they drifting apart? For more advanced reporting, take a look at Earned Value Management, which provides ways to calculate the chances your project will be completed in time and in budget.

Good luck for your upcoming projects!

]]>