DevOps: I will never ever set up and maintain my environment by hand again!

Repeat after me:

I will never ever set up and maintain my environment by hand again!

I will never ever set up and maintain my environment by hand again!

I will never ever set up and maintain my environment by hand again!

If you ignore this advice, you might be ending like a lot of projects I’ve seen in the last years: Unmanageable, unstable, unpredictable and basically unreliable.

Use a tool

Ansible_logo.svgIf you ever happen to set up a something in your environment, learn about tools like Ansible and perhaps Terraform first. Provision your machines and VMs with these tools, roll out your environment using these tools and version the scripts in a repository.

Do not, ever, later on, do changes or install updates on your environment by hand! Again, use Ansible or a similar tool, to roll out and install updates and components.

Version things

220px-Git-logo.svgThe key to automatization is using tools like GIT extensively. Every single configuration file, every single automatization script needs to be put under version control. Every iteration, every change, needs to be versioned as well. Get rid of your local script repositories, keep things in a central, safe place. Share the scripts and configurations, and don’t only document them in your ticketing tool!

Do not use SSH

Of course, SSH is used when working with Ansible or other automatization tools. But you, or any of your team members, should not use it. Using SSH to do tasks on a machine is by definition a manual process, something which has to be avoided! So, forget about SSH as a tool for manually managing infrastructures, configurations, and machines. Script your changes, test your changes, roll out your changes or roll them back – all using Ansible (or other similar tools) and version those scripts as well.

Automatization is key, the tool is not

Don’t feel comfortable with Ansible? Not an issue, use Chef or Puppet or any other automatization framework instead! Don’t want to learn about Terraform? Then go the native route using AWS-CLI or Azure-CLI instead. GIT sucks? Use SVN or CVS or Mercurial!

Regardless of the tool: You need to get the right mindset, and you need to get it, before starting any work! It never worked (and never will work) bringing in automatization and tools later on. You simply won’t be able to consolidate all different configurations without any bigger effort. It’s not gonna work!

Be a developer

Yeah, I know. You are not a developer. You are an administrator. You don’t program things. You don’t write nasty code. You are the specialist, the surgeon.

Well, no. You are a fool if you happen to think so.

You need to think like a developer thinks: Laziness over repetition, scripts over manual approaches, versioning over file-share-based storage. A developer – and believe me, I am one these guys – has a very simple approach: Every repetition of any kind of functionality to be implemented, is basically a wast of time.

A developer tries to write specific code only once, he organizes code in libraries for reusability. He refuses to do things a second time if he could reuse existing code or a library.

Adopt this kind of thinking! Express everything in scripts. Version these scripts. Create your own library of scripts and share it with your fellow colleagues!

Stay in control

I get often asked: What and when do I need to automatize? The answer is simple: Everything, anytime. The moment you SSH into a machine and do any kind of change there, you have lost control. Even if you are unsure about a configurational change being the proper solution to an issue, use a script.

Did I say „Even“? Especially then!

Using an automatization framework, you can roll back the change or set up an environment into a well-known state, allowing you to safely perform changes, test the outcomes and understand the consequences. Since you have versioned everything, you can always revert back to the last known version. Since you have everything in a shared, safe place, you can even lose your computer and your notes – and still remain operational.

And, in case it was not clear enough: This holds true for any kind of environment – Bare-Metal, virtualized, cloud, everything in between.

To stay in control, automatize and version. Everything!

And now repeat the headline. Until you live it.

Life at Cloudibility (VII): Can’t we negotiate a special price?

I do often get this question when providing our specialist’s profiles to possible customers.

Well. No. We can’t. And we won’t.

Let me explain that bold statement a little bit. There are plenty of reasons for saying so. The most important one: We have some of the best specialists here at Cloudibility.

We love our experts.

We provide our bright minds with an environment which allows them to shine – a good work-life-balance, paid educational hours, etc. We do this, since we would have liked such an environment ourselves when being employed. But it was not possible due to calculation issues. Which forced us to quit our jobs.

Therefore, we want to pay our experts reasonable salaries and want them to gain even more knowledge. We want them to stay motivated and hunt for solutions instead of billed hours. We are investing a lot into our experts, and we are very happy and proud to do so. We know, that you deserve the best expert and the best approach for your project.

But it’s still expensive, though.

Do you know how much it costs, to do without good experts? Or to simply opt for the cheaper alternative since it is … cheaper? Can you really afford the second best or a somehow okayish solution? Just for the sake of saving some bucks forehand?

Our experts are worth their money.

They are experts and bright minds, they are able to solve problems, they are able to think outside the box. They save you time and money and nerves, they bring knowledge and experience into your projects.

So, no. We won’t do special prices.

We already have the best prices in the market since we have the best experts and the brightest minds here at Cloudibility.

Period.

Five minutes late…

I am delivering a Xamarin workshop this week. Unfortunately for my sleeping habits, the location is Munich, appr. 550km away from home.

The best way to get there is by train, at least if you don’t like flying. So, my train was to depart at 4.30am. Which implied I would have to leave home at latest at 3.50am.

Well. So much for the theory.

In practice, I left home at 3.55am. Which caused me to directly head on the Autobahn towards Munich. Instead of having a somewhat relaxed trip to the Bavarian capital, I had an unrelaxing one in my car. And instead of elegantly driving with an ICE-train from Munich to Frankfurt and then back home on Friday, I’ll drive back home on Thursday and try to catch the morning train from Berlin to Frankfurt on Friday, since I don’t want do sit in my car for 10+ hours.

This makes five minutes quite important.

And that’s why I try to keep an eye on the details, though I’m the high-level guy at Cloudibility.

I have an open slot at 6.30am…

This has been said just seconds ago in a meeting I am currently attending. We’re not talking about freelancers here, but a pseudo-agile project with an enterprise customer.

See the problem?

Agility is not about having meetings cluttered all over the day, but efficiency. If your calendar is blocked so extensively by meetings, then perhaps, perhaps something is wrong.

Pro-Tipp: Change it. Cancel the unnecessary or unproductive meetings. Only attend meetings making any sense. Do not attend meetings for the sake of attending them.

Pro-Tipp 2: Participating in Scrum? Only do the scrum-stuff: Daily, Retrospective, Review, Plannings and perhaps Estimation meetings. All the other meetings should be obsolete if you communicate transparently. They should be attended by some POs or Architects, but not by every other person participating in the team.

Pro-Tipp 3: Participating in Kanban? Only do the minimally required stuff: Daily, Jour-Fixes or Reviews, Plannings. Work with your kanban board. All the other meetings should be obsolete if you communicate transparently. They should be attended by some POs or Architects, but not by every other person participating in the team.

(Hmmm, that’s pretty much the same content in Tipps 2 and 3. Coincidence? I don’t think so…)

Pro-Tipp 4: Get your stuff done!

Pro-Tipp 5: Get. Your. Stuff. Done!

Agility to death

Agility is gorgeous. Unless you’re in a project, where agility is mistaken by spontaneity or talkativeness. Or worst case: All together.

Just today, I was sitting for three hours in several daily calls for different aspects of a project. So much redundancy there, and Scrum Masters which try to insist on rules instead of pragmatic approaches.

Agility to death. Without any sense. And without any productivity.

Thank god, I’m paid by hours.

Life at Cloudibility (II): We need an organizational diagram

Cloudibility-Logo-SquareCloudibility is not even a year of age, but we already need an organizational diagram, since we are already close to 20 persons (17 beginning of September) working with and for us – and this is only the number of employees which have already signed their contracts, not to be spoken of the ones we are currently having conversations with!

We take this very seriously since Michael and I have experiences in enterprise environments as well as a startup history. For us, one very deciding aspect for the success of a company is the organizational structure – if you don’t have it, you are very likely to fail. And having a structure and an internal organization frees the „creatives“ from having to care about everything, ultimately allowing them to focus on their work and the excellence in their doing.

One final note: The importance of a working organization and a working back-office cannot be overemphasized. That’s why I am so happy with our COO Claudia, Linda, the whole team and their invaluable work.

Thank you, team!

Why I usually leave group conversations in messengers

messengersUsing WhatsApp, Telegram or Facebook Messenger? Thinking of including me in your group conversation?

Well, don’t.

I am a very busy person, and as such, I need to be able to focus on my work or on my recreation (no joking, I need to focus on recreation). Including me – without having asked for my explicit permission to do so – in your group conversation would distract me from that, I would receive a lot of conversational spam, which I’m not interested in.

That’s why I usually leave all group conversations.

It is simply not of interest to me, reading the same complaints, jokes, hoorays or stories which I try to avoid in real-life in my messenger, where it is more personal to me. Sometimes, this even feels offensive to me. Additionally, it is usually the very same group of people leading the conversation there – and while I am very strong in communications, I don’t want to be forced to read the same – sorry – trash and the same mimimimi-stuff all over again, especially, since I don’t have the time to answer, because I tend to think and formulate my answers carefully. Plus it often shows me, how limited these persons are and how egocentric their view of the world actually is. Finally: Answering that crap usually means wasting my personal time and distracting me from the important things in my life – my family, my friends, and my work.

So, kindly do me a favor: Unless I explicitly expressed my permission and wish to be included in your group conversation, don’t include me. Let’s stay friends without that conversational noise.

Thank you.

My. Content. Again.

I had a blog for several years, but for some reason I actually don’t remember anymore, I dumped it at the end of 2015 – I guess, because it was way more convenient to simply spit out something on the social network of your choice. And because it was way cheaper.

But, it turned out: This was not a good idea.

Why? Because you get literally lost in the curated news feeds. You only get fast reactions instead of conversations. There is no sustainability in publishing everything at Facebook, Twitter, LinkedIn or Instagram. You won’t be found, you won’t be recognized. It simply is not worth it, at least not when you are not publishing the content on your own platform and only use these networks as multiplier.

So, I restarted my blog last year (at least sort of) and hosted it over at SquareSpace.com – which again turned out to be one of my lesser favorable ideas, since that service is reliable, but basically offers no integration and no real comfort to the average blogger. Therefore I did not really blog, I built blog pages – it took hours to finish something.

So, back to basics.

I’m back with a WordPress blog, actually hosted at WordPress.com. They charge me 300,– bucks a year, so I better try something to make use of this amount of money I just spent.

Therefore, I decided to take back my data and my content into my own hands. I will (again) post everything here first, and then (perhaps) in some social network. This applies to everything, including texts, as well as links, images and opinions.

Why? Because now it is my content again. Not the content of some network which uses it to make some money. Not the content of some aggregators and some marketing agencies. I can start conversations, share it to my liking and do not need to care about their rules and regulations.

My. Content. Again. 

Finally.

And it feels good!

Liebe #Spaßbieter bei #eBay (und auch anderswo)…

…Ihr kotzt mich an.

Sorry für die rüde Ausdrucksweise, aber mir fällt nichts anderes mehr dazu ein.

Ich habe in dieser Woche ein paar Telefone bei eBay verkaufen wollen – so, wie ich es regelmäßig mache. Effektiv sind von fünf Auktionen drei gescheitert, weil die Käufer

  • Von Ihrem Sohn überraschend genau das gleiche Telefon geschenkt bekommen haben
  • Vom Finanzamt ganz überraschend im Laufe des Folgetages eine völlig unvorhergesehene hohe Geldforderung erhalten haben
  • Das Gerät eigentlich nur persönlich abholen wollten und dann festgestellt haben, dass Altlandsberg etwa 600km weg liegt – sie hätten das mit einem Ort in der Nähe verwechselt

Ich habe jeder einzelnen Bitte um Kaufabbruch zugestimmt. Nicht etwa, weil mich die Geschichten auch nur ansatzweise überzeugt hätten, sondern weil man mit solchen Kandidaten letztlich nur Ärger hat.

Dennoch bin ich abgrundtief frustriert. Mir fehlt wirklich das Verständnis dafür, dass man Dinge bei eBay (und auch anderswo) kauft und dann dafür nicht einsteht. Wenn ich es mir nicht leisten kann, dann biete ich nicht!

Wahrscheinlich ist das aber eher ein Ausdruck dessen, wie Leute sich im Internet bewegen – auch die gewerblichen Versandhändler haben ja teilweise Rückgabequoten von 80%, weil die Leute alles mögliche bestellen und es dann letztlich doch nicht wollen (oder es nur mal „testen“ wollen).

Mich kotzt das aber an. Ich handle so nicht. Ich bin auch „Spaßbieter“ bei eBay, ich stehe aber für meine Späße auch ein. Ich habe noch nie einen Kauf abgebrochen, ich habe noch nie etwas „getestet“ und es dann zurückgehen lassen (idealerweise noch mit Beschädigungen und Gebrauchsspuren) und ich möchte mir diese Denkweise auch nicht zu Eigen machen.

Deshalb: Ihr Spaßbieter und Freizeittester, ihr kotzt mich an! Ganz deutlich, ganz ehrlich und ganz vorbehaltlos. Pack.