Wednesday, August 17, 2016

Operator overloading is an enemy of functional programming

Trying to use curry function against lodash´s groupBy, was getting TypeScript compilation errors at the build server. Figured out, that the reason is that curry will pick the incorrect overload of the function out of 6 available. Not the first time I am having problem with overloads... I think a good functional language should not have function overload as its feature.

Thursday, June 09, 2016

What people are really saying when they say "DevOps".

If you think that when people mean "continuous delivery" when they say "DevOps", you are probably wrong. In my conversation with other people I discovered that most of them think that DevOps are developers who have admin access to the production servers, can log in any time, check logs, update DLL or JAR files, change configuration etc. DevOps for them is a way to save money on hiring real sysadmins.

Needless to say, this is the very opposite of the Continuos Delivery promise with immutable infrastructure. With immutable infrastructure not even sysadmins can change code or configuration of the servers, but that is done through the delivery pipeline.

This terminology shift is similar to what happened to Agile, which understood by most of the people to mean "no design". When we hear or say "DevOps" we should be very careful to indicate that we don't mean hackers with admin access, but a disciplined process driven by the delivery pipeline.