Hello AgileCoding.io

Hello AgileCoding.io

Let's start the year with another tech blog

A couple of days ago, a new year started. Every year somehow starts with new intentions, mostly about health - this year (besides more sports as well) I thought "why not create a private tech blog", so here we go.

My name is Klaus, married and father of 3 wonderful kids, working as CTO at Cloudflight, and of course, we do have our company blog there as well where I'm writing articles from time to time and will continue to do so, like many others of my awesome colleagues.

This one is my own private one, a bit more tech-related, with the following background:

  • I've signed up with Hashnode a couple of months ago already and really like the platform. After reading a lot, I thought it's time to write and give something back.
  • I'm following a lot of tech experts on Twitter already, really enjoy the great community, and also want to be challenged a bit here outside my comfort zone.
  • I wanna learn how to write and publish on the web and try out stuff.
  • And if I can help some people and build some kind of community, then I'd be more than glad.
  • If not - it should be at least fun :-)

So, let's give it a try:

Why AgileCoding.io?

You might be curious about the domain name, well it combines two words that really meant a lot in my career so far: Agile & Coding.

I'm a professional software engineer / architect for almost 20 years now. In the early 2000s, agile software development was that "new thing", meanwhile it's more or less common sense. Still, I notice that there exist multiple different interpretations for both "agile" and "coding" out there.

Examples?

I've done hundreds of job interviews and quite often I heard things like:

I've coded for 2 years now, I'd like to be an architect now.

or even I was quite often being asked:

But Klaus, in your role, you don't code anymore right, ehm?

Well in fact I don't have that amount of time for coding any more than 10 years ago, but still, I'm taking time, almost daily, to keep in touch with my IDE.

I've been working with customers together where software developers were really been treated like coding monkeys that should not make any own decisions and instead just translate PowerPoint architecture to code. I strongly believe that this is the wrong way, we need to empower each individual in a team to make his/her own thoughts about the big picture.

And when it comes to agile, for sure you've heard things like:

We're agile because we're doing Scrum and running in sprints.

Don't get me wrong, there's nothing bad with Scrum itself, but it's just a framework like many others, and it doesn't mean you're agile by just applying techniques like a daily standup or a grooming. It may help you though. In any way, one should be pragmatic here, and that's what I'm trying to do on a daily basis. Neither a perfectly applied scrum sprint nor TDD with 100% coverage is a guarantee to make your customers happy, and that's what it's all about in the end.

We're always trying to find simple answers for complex questions, so to keep it simple right now: my short definitions of Agile & Coding would be:

  • Agile - the ability to react quickly to change
  • Coding - obviously actually writing code including all architecture and design work as well as long-term maintenance

That combined, designing (architecting) and writing code in an agile way, i.e. be able to react quickly to change (wherever this change comes from), is what I wanna write about. And probably my blog entry about the Log4Shell vulnerability, which also forced us to react very quickly to a change (in that case an exposed bug of a Java logging framework) also motivated me to blog a bit more about things like that.

I'm trying to bring in my experience of over 100 custom software projects over the last 15 years, some stories from the past, but also tech stuff from the present and/or future.

My tech-stack is mainly the JVM universe (Java, Kotlin, Groovy) with all kinds of frameworks (Spring, Micronaut, Hibernate), but also cloud architectures with Kubernetes, AWS, Azure, or GCP. Architecture-wise I'm a big fan of Simon Brown and his C4-Model, and I've been influenced a lot by people like Erich Gamma ("build software to last"), Kent Beck (XP), and Uncle Bob (Clean Agile), so there will be the one or other article about Design Patterns, TDD and agile project management as well.

So, if you're interested, just press the Follow-Button, and stay tuned.

Cheers, Klaus