Necessary basic knowledge is missing in many cloud projects
25 Oct 2018 • 3 min readEarly in my career as a software engineer I got a very good advice from a hand full of well-known veterans in the software industry.
I asked them the following question: “How can I become a software engineer / architect as you are?”
How can I become a good software engineer / architect?
And I got back the following answer:
“You have two options
- Be over 25 years in the industry and be a firefighter and builder all the time
- Research & read a lot, participate in the community, thus learn from all failures from the past”
I had accepted this answer, implemented it and now enjoy my professional career for more than 11 years.
Take a small look into my personal bookshelf:
Current situation within many cloud projects
I also got this question multiple times in my last roles and companies.
In the course of time, and especially since I’m a Cloud Solution Architect, I’m not getting these questions anymore.
They are typically asking
- “Which Azure service should I use?”
- “Why is the Azure service x throttling my requests?”
- “Why is our Azure architecture so unreliable?”
- “Why can I not see my issue X and Y at Azure Monitor?”
- “Why is Azure service Z so expensive?”
- “Why is my Azure application not scalable?”
- “Why are you not suggesting the use of Kubernetes/Service Fabric in Azure?”
- “Why should not we also rely on microservices / the actor model?”
Usually my colleagues and me can help with all of them.
But if we look under the hood, too often we are seeing, that software development fundamentals are not known / applied - in each of the most important areas (in my point of view):
- Practical Software Engineering
- Software Craftsmanship
- DevOps
- Software Architecture
The reality is:
- developing cloud applications
- distributed systems
- highly scalable and reliable systems
- disaster recovery strategies and automation
- no down-time deployment strategies
and so on, are really hard!
All of them are nothing for beginners, junior developers without any mentor - all of them require the basics of good software development.
Call to action to all product teams and their managers
Please ensure that your team has already a solid maturity level in software development,
before you are developing the next highly sophisticated software systems in the cloud.
We all know that the advanced and experts in our industry are too few and it is hard to get them. But then please ensure, that your team has
- the time
- the resources
- and your commitment
to build a strong foundation to build something big on it!
My recommendations for Software Development Fundamentals
I have created a whole page which contains all my recommendations for Software Development Fundamentals:
This page will be updated each time I found anything valuable to share with the community.
I wish you all happy learning from the failures from the past!