selective focus photo of brown and blue hourglass on stones

Competency in software development, the hidden cost

There’s a hidden cost in the software development industry that often gets left behind by any kind of productivity metric that processes like Agile try to quantify. In fact, unless you do rigorous Agile in the sense of proper planning poker between the senior and junior developers and striving hard to have a facilitator on-board to ground the discussions and communication towards finding the balance of complexity a feature or user-story has, it will be probably impossible to pinpoint this hidden cost.

Now we all know that nobody does Agile rigorously. In fact many have “adopted” Agile to their business which basically means there’s a faux-Agile in the interest of business only hidden as a form of corrupt and evil project management. In such an environment, this hidden cost that grows can only thrive and flourish.

Continue reading →
round green clock at 2:20

Writing software is a creative endeavor

A few books I’ve read and in fact the majority if not all of them (from decades old Mythical Man Month to Agile Estimation and Planning or more recent) all repeat the idea that the act of creation of software is a creative endeavor in the artistic sense of the word. My years in this domain for sure confirm it and furthermore, as with any “art” if it’s not done with pleasure, it’s not worth doing.

I wanted to write this post based on a discussion with former colleagues from a previous common employer which I shall not name who had the nerves of calling to the office a big batch of employees in full pandemic rise of COVID-19 only for the reason of a top-management visit, though the same employer had 2 recent infections in the ranks of other fellow colleagues. Of course, my friends were angry for being imposed to take a risk they do not want to take and because of the “slave” mentality of the employer.

Continue reading →
closeup photography of brown analog scale

Scaleway Kapsule and Rancher-managed Hetzner Kubernetes clusters

I honestly think this is the 3rd time I’m moving things around. First I was on Proxmox managing myself a cluster of bare-metal Hetzner (from the server auction page). Then I was torn between a home server and one on Hetzner. I was using many images from the TurnKey Linux project. Nice, interesting but required immense investments of time.

Then I decided I wanted managed Kubernetes services. Not long ago (half-a-month) did I went over to Digital Ocean’s managed Kubernetes service. For not a small price, got a 3 node cluster with 24GB of RAM and 12 cores. Started installing my stuff and quickly ran out of resources only to be forced to pay more.

Continue reading →
close-up photo of gray stone pile

The dynamic equilibrium of code, flexibility in software development

It must be considered that there is nothing more difficult to carry out nor more doubtful of success nor more dangerous to handle than to initiate a new order of things; for the reformer has enemies in all those who profit by the old order, and only lukewarm defenders in all those who would profit by the new order; this lukewarmness arising partly from the incredulity of mankind who does not truly believe in anything new until they actually have experience of it.

Niccolò Machiavelli (1469 – 1572)

The above words are as true for software development as they are true for politics and human nature. Though unlike politics which requires a shift of mentality of the majority of the population and unlike the human nature which usually takes years to change or a very aggressive and disturbing moment of life (death, pain, illness) … we are “blessed” let’s say, in software development to have a choice.

Continue reading →
white ceramic mug near tea pot on table

It’s not just about learning a programming language

It’s actually teaching yourself a way to think … I found myself today in a situation at work that’s outlined perfectly in this article on strategic domain driven design. In fact, the original idea I remembered it from Eric Evan’s great DDD book, but I couldn’t quickly find the page and paragraphs that contained the idea of contexts and upstream/downstream systems so I relied on Google to find me a relevant authority to invoke. Luckily, the above article came about and it captured the idea I wanted to express to my co-workers perfectly.

The situation was that an upstream data producer made a deployment, to which we scaled effectively and nicely all in an automated fashion but then a day later, they rolled-back the change as it produced 50% extra data. Then at the roll-back, 50% of the data was gone.

Continue reading →

Ivideon on Kubernetes, the simplest form of HA video surveillance

The decision to go to Kubernetes (managed deployment on Digital Ocean) was so that I could also free my home-server and eventually shut it down. There I hosted the Windows-based Ivideon server, on a Windows VM running on Proxmox. The internet in Romania being broadband helped a lot. I’m actively using Ivideon to record activity around the properties we hold.

Though in need of one for a quick deployment, I couldn’t find a HELM chart or something already done. On the other hand, the server itself is pretty stateless and just needs a configuration file and a PV to hold the archive, so not too big of a challenge to write a deployment file for it.

Continue reading →

Swithing oceans, from Heztner to Digital Ocean

I think I’ve ignored the Kubernetes movement for many years now. I used to maintain Docker-based infrastructures a couple of years ago, over bare-metal, mostly for work purposes. It was an interesting learning experience back then in the details of the containers foundation.

Still, I am still prudent about infrastructure in general and for a long time have favored pure and simple bare-metal or bare-metal + VM solutions in favor of containers for most of the critical data workloads (a.k.a. Big Data). Even in work deployments, we bypassed the usual performance penalties of containers by bind mounting the disk or using IPVLAN for networking when pure performance was needed. My favoritism for bare-metal is based on the fact that you can’t just ignore +50 years of evolution and documentation (if we intent on saying that we consider the “birth” of 1st operating system (UNIX) in 1969). I don’t want to go earlier than that …

Continue reading →

On “Fundamentals of Software Architecture”

In all honesty, I am somewhere near my 30s now and besides knowing to program in pretty much any language (or to that end, able to learn one in a few hours) I have to admit I have lost the passion towards high-frequency coding, in the sense of LOCs (lines of code) per hour, but I’m more and more attracted to the art of building software and systems architectures, with the least amount of glue code possible.

I believe that for the past years I’ve used and abused former Safari Books Online (now O’Reilly learning) plowing through every imaginable book on architecture, starting with the great reference book “Software Architecture In Practice, 3rd edition” by Len Bass, Paul Clements and Rick Kazman. Most of these authors and the authors that have dedicated a part of their time to book-writing have been members of the SEI (Software Engineering Institute).

Continue reading →

DIY surveillance with Ivideon and PNI

I seem to have a crush on Ivideon in combination with ONVIF-compatible devices (most under the PNI brand which has proved reliable in the past years for my offline DVR that I keep at our work-in-progress home at the country-side, on my father’s land, donated a few years ago to me).

These days I went off on a small house project to mount a few speed dome cameras at my in-laws house, at the country side also. The reasons I wanted to do the project was because my in-laws recently contracted a FTTH service (Fiber To The Home) from one well known provider in Romania (Digi/RCS&RDS).

Continue reading →

Two years of Manjaro Linux and counting

I grew up fond of the Linux operating system for a long time. I’ve been in my 20’s a die-hard fan of Debian and I’m still a die-hard fan for it whenever I’m put in the situation of installing a production-grade environment, tending to trust the community process that goes on there to validate the packages before they arrive to the “stable” repositories.

Long time ago, I was also a Gentoo fan, because being the owner of an dual-core Intel back in the time, I needed to effectively squeeze every CPU cycle out of the machine. I couldn’t afford switching PCs on an yearly basis. So I spend days if not weeks compiling and recompiling KDE until it fit my purpose.

Continue reading →