Photo Friday – March 30th 2018

Bild

IMG_0958

You don’t need the fancy camera to take pictures that mean something to you. This is taken in our house. I love it when the evening sun shines through the window and draws the shadow of a plant that stands right in front of the window. It’s a quiet photo, but it means home and that means a lot to me.

Iphone 6s, F/2.2, 1/127sec, ISO 25, 4mm

 

The Problem With Quick and Dirty

The last couple of weeks have been pretty busy. Privately our little daughter is rightfully consuming a lot of time and also we have been in the final phase of planning our big garden project which now will commence in May. For work, I’ve been traveling a fair bit being in the US now the second time in a month and on top of that was in Prague last week. Besides that, we are entering a time of change, which is good, but also intense.

I want to keep my schedule with posting something every Monday 6pm and really today I only will manage it with a cheat. I definitely missed German time 6pm, but I can still make Seattle time 6pm!

Recently on Twitter, I found this quote:

“The problem with quick and dirty is that the dirty remains long after the quick has been forgotten” – Steve C. McConnell

Steve McConnell is the author of Code Complete which you can order on Amazon (affiliate link)

It is a book full of wisdom for programmers and one of those books that I like to have a hard copy of. Its content remains true for a very long time.

Back to the quote: „Quick and Dirty“ is so appealing when you are acting under constant time pressure. Everybody seems to be happy at first. The developer can move on to the next task and the product owner gets the feature, extension, bug fix or what-so-ever quickly.

The problem is that just after delivering the item the next urgent thing is lurking around the corner and the quick win is soon to be forgotten. What remains, however, is the hack. Worst case it will cause a bug in future because of unconsidered use-cases or untested side-effects. Best case it will make your system less maintainable, less performant, less readable, less extensible, … the list could go on.

The collection of hacks that your system is built on over time when you have delivered too often „quick and dirty“ is going to make it harder and harder to maintain and extend the application. It will become more error-prone and you will deliver slower and slower until you eventually will have to go into a painful and resource consuming rewrite of large parts of your application.

Don’t be tempted by quick and dirty. Try to do things right and you will be faster in the long run. Constant investment into the architectural health of your system will pay off.

Photo Friday – March 23rd 2018

Bild

I decided to post one of my photos every Friday 6pm GMT+1. I hope you like what I’m sharing!

IMG_8128

The picture was taken not too far away from my house. I saw a nice group of trees during a short hike through the local forest. I pointed the camera straight up and then merely converted to black/white in Lightroom.

Canon 5D Mark III – Canon 16-35mm F/4 L

F/11 – 1/250sec – ISO 100

Einfach mal ausprobieren: Das Canon 16-35mm F/4 L via Zoomyrentals

Für unseren Urlaub auf Borkum habe ich mir das Canon 16-35mm F/4 IS USM bei Zoomyrentals ausgeliehen.

Reserviert habe ich das Objektiv ca. 4 Wochen vor unserem Urlaub.  Geliefert wurde pünktlich zu Mietbeginn per DHL Express. Das Paket wird auch wieder vom selben Dienst abgeholt. Eingepackt war alles in einem schaumstoffbestückten Karton.

Im Lieferumgfang enthalten ist das Objektiv an sich,  ein Walimex UV-Filter, die passende Gegenlichtblende und der orignal Canon Packbeutel. Der UV-Filter war leider nicht nutzbar, da total zerkratzt. Betätigt man den Zoom-Ring hört man reibende Geräusche aus dem Inneren des Objektivs bei dem es einem eiskalt den Rücken runterläuft. Die Funktion des Objektivs wurde dadruch glücklicherweise nicht eingeschränkt wie sich später gezeigt hat.

Foto 16.03.18, 15 59 18

Insgesamt stimmen Preis / Leistung bei Zoomyrentals. Das Objektiv kostet für 10 Tage lediglich gut 100€. Das ist günstiger als bei vielen anderen Anbietern und lässt mich über einen zerkratzten Filter und das reibende Geräusch bei Betätigung des Zoom-Rings hinwegsehen. Wenn ich mit Fotografie mein Geld verdienen würde, wüsste ich allerdings nicht, ob ich nochmal bei Zoomyrentals leihen würde. Für den Privat-Gebrauch ist der Service vollkommen ausreichend.

Das Objektiv an sich ist der Knaller. Knackig Scharf, schönes Boket, gewohnt gute Canon L-Qualität. Wens interessiert kann sich die ausführliche Review von Traumflieger durchlesen. Von Canon gibt es noch ein zweites 16-35mm L-Objektiv mit F/2.8er Blende. Ich habe mich für das F/4er entschieden, weil es den gleichen Filterdurchmesser (77mm) wie mein Standardzoom hat (Canon 24-105mm F/4 L) und weil ich nicht vor hatte den Sternenhimmel oder Indoor zu fotografieren. In beiden Fällen wäre die offenere Blende hilfreich gewesen, aber für ganz normale Landschaften ist das F/4er die bessere Wahl. Es ist zudem auch leichter und kleiner und somit einfacher zu transportieren.

Wir sind die Herren unserer eigenen Zukunft

Ende Februar habe ich den folgenden Artikel auf Spiegel.de gelesen: Firma bietet Flüge an, ohne Abzuheben

firstairlines-spiegel

Zusammenfassend geht es darum, dass eine Japanische Firma Personen mit wenig Zeit und / oder wenig Geld einen Städtetrip innerhalb von zwei Stunden für 50$ anbietet. D.h. es wird ein Hin- und Rückflug simuliert und dazwischen eine virtuelle 360°-Stadtführung angeboten.

Nichts daran ist irgendwie schlimm. Das Angebot erscheint lediglich etwas skuriel und ist ansonsten wohl vollkommen harmlos. Ich konnte mich allerdings nicht dagegen wehren an Filme wie Bladerunner und Total Recall zu denken in denen durch den Einsatz von Gentechnolgie, Gedankenmanipulation, Virtuelle Realität, Identitätsfälschung, Bionik, etc.  eher düstere Zukunftsvisionen gezeichnet werden.

blade-runner

Während in den 80er Jahren viele dieser Technologien und Denkansätze sehr futuristisch wirkten, hat sich das meiner Meinung nach mittlerweile sehr geändert. Vieles ist ansatzweise machbar. Noch mehr ist denkbar.

Der Fortschritt der Technik wird sich nicht verhindern lassen. Vielleicht wird er durch Krisen verlangsamt, kaum aber wird er aufgehalten. Krisen könnten so machen Fortschritt gar beschleunigen.

Wenn sich der Fortschritt also nicht aufhalten lässt, was trennt uns von einer düsteren, post-apokalyptischen Zukunft? Wir. Der Mensch. Unser Umgang mit Technologien jeglicher Art wird unsere Zukunft bestimmen. Werden wir es lernen verantwortungsvoll mit der Macht umgehen die wir besitzen oder werden wir weiter versuchen Gott zu spielen und zwangsläufig damit scheitern?

 

The MVP approach sucks – sometimes.

Defining an MVP is a great approach to deliver value quickly to your customers and also to get good feedback on functionality very early in the development process so that you can base future decisions on that feedback.

Let’s start with a definition. What is an MVP? Here is the definition from Wikipedia:

A minimum viable product (MVP) is a product with just enough features to satisfy early customers, and to provide feedback for future product development.

And another definition from the book The Lean Startup:

Version of a new product which allows a team to collect the maximum amount of validated learning about customers with the least effort.

To me the two key goals of a Minimum Viable Product are

  • be quick to market
  • get early feedback for future iterations

So why does the title of this blog say that MVPs suck sometimes? It’s when we deploy an MVP into production and then never listen to the feedback and never invest in future iterations.

In that case, the only value we will get out of an MVP is being quick to market. And of course that in itself is a value but you are risking to get unhappy customers because sure enough by delivering an MVP you are setting the expectation that feedback will be evaluated and eventually the piece of functionality will evolve into something fully featured.

Many of you probably know this picture comparing an MVP to a classic iterative approach.

mvp

I fully agree with the second row of the picture, but the important piece here is that the product evolves over time from a skateboard (something minimal to get from A to B) to a car (something pretty efficient and comfortable to get from A to B)! If you keep the skateboard for years without improving it you will end up with unhappy and frustrated customers.

Also, …. the agile teams who worked on the MVP will be disappointed that they cannot iterate on the product. It feels like an unfinished job. You might think that this is unimportant detail, but the contrary is true. It directly impacts the motivation and the engagement of the team. More about that topic in my post about what employees really motivates.

Of course, sometimes it is just fine to stop after the MVP is delivered.

  • You might decide that the skateboard is just fine and customers are actually happy with the MVP for long-term… in that case: awesome; job done!
  • You might learn that no customer actually wanted the skateboard and you retire it. Stop selling it. That is also a perfectly legit approach.

Getting feedback from the market and not iterating on it because you are already asking teams to work on the next top priority is what will hunt you down at some point future and has a negative impact on team morale.

So what’s the alternative? I think there are two, but really there is only one. And also…  maybe there are some that did not come to my mind …

  1. Stop defining MVPs, deliver a fully featured product (how again do I know  what fully featured means??!)
  2. Start focusing and embrace the MVP approach.

In my opinion, only #2 is the only long-term sustainable way to go. Everybody involved in the process of delivering software to customers should push for this. It is not easy because there are always so many important things that one could work on, but it will pay off over time because it allows for focus and the customer feels heard.

I’d love to hear your opinion on the topic!