Quit "playing with". It's the goals, that drive us.

Quit "playing with". It's the goals, that drive us.

August 2015 Me: Hey dude, how's it going? Whatcha doin'? Dude: Playing with Docker, cool stuff. Sniffing around, trying to figure out things. December 2015 Me: Hey dude, how are things? Doin' anything interesting lately? Dude: Playing with Docker, neat thing. Hard to grasp, but very promising. April 2016 Me: Hey dude, what's up? Cooking something up? Dude: Playing with Docker, truly impressive plaything. Amazing potential & seems getting mature. August 2016 Me: Hey dude, long time no see. What are you up to these days? Dude: Playing with Docker, amazing tech with steep learning curve. Evolves so swiftly, I…

Read More

Productive conflict: why some degree of discord is essential

Productive conflict: why some degree of discord is essential

I've recently read Lencioni's Five Dysfunctions of a Team - widely recognized classic on leadership & executive management. I'm not going for a full review here (you can easily find my review on Goodreads), but I want to refer to one of book's key output thoughts (paraphrased for the sake of brevity): Conflict in a team (or any other kind of collaborating group) is not something to be afraid of. Quite the opposite - productive conflict is an essential element of creative processes within each team, required for its real, healthy growth. Yupp, software delivery journey shouldn't be like Ponyville…

Read More

Body-leasing: self-imposed trend to make team shaping even harder

Body-leasing: self-imposed trend to make team shaping even harder

This blog post is some sort of a supplement to my previous post on building teams organically - you can find it here. As we all know, software developer job market is terribly twisted by huge disproportion between demand (crazy) & supply (barely dripping). Huge gap between these two has resulted in uncontrolled boom of a particular trend I find strongly harmful: developer "body-leasing" (or "talent outsourcing" - as some prefer to call it). It's basically about hiring developers in companies that work pretty much as intermediaries / work agencies who offer their employees for Time & Material contracts in Enterprises…

Read More

White-box monitoring setup as a 1st class citizen in your code

White-box monitoring setup as a 1st class citizen in your code

There's an interesting trend of expanding the range of work products developers produce as the outcomes of their work. In software development prehistory it was just functional code (one that's supposed to provide business value directly). After some time automated tests have joined it - as a parallel code construct, meant to be submitted within the same commit. That was just a beginning, as the same has happened to (among others): data schema modifications (DDLs & equivalents) deployment routines (automated provisioning, configuration mgmt, etc.) infrastructure setup (infrastructure-as-code) All of these are now key code constructs (as important as functional code…

Read More

Wiping the tech debt out with immutable code

Wiping the tech debt out with immutable code

Disclaimer: the idea of immutable code ain't mine - I've read/heard about it somewhere (can't recall precisely ;/) some time ago & it sticked with me. Code maintenance is already a huge problem & it won't get any better by itself. Software is everywhere - even mundane, basic everyday tools get "digital" & ... flawed. Two, three years ago I was encountering bugs (in software I use) occasionally (well, except of Windows itself ;>), now it's a daily bread'n'butter - I don't even have patience to report them. Bad news is that not only many new ones appear, but in many cases…

Read More

Grit. Because talent is overrated.

Grit. Because talent is overrated.

One of the things I'm truly & fully proud'n'happy is the way I'm managing my own self-development. I never had problems with: declining motivation making decisions on what to do next lack of focus burning out losing ability to reach the state of "flow" dispiritedness or anything like that Invariably, I'm having fun learning new stuff, getting experiences, breaking next barriers - it makes me feel more capable, more skillful, more prepared to make a difference once next need materialises. My kung-fu But I know that keeping myself at the raising curve ain't trivial. I've met plenty of people who're…

Read More

What's backpressure & what you're missing by not knowing

What's backpressure & what you're missing by not knowing

In 2016 pretty much every commercial software system built with modern tech is a distributed system. Yes, we all build distributed systems these days. Obviously, the term "distributed" is very spacious - I'm not saying we're all creating stuff like eventually consisted, sharded data stores (should be left to specialists who excel in these), but having 2+ layers of independently scaled, communicating processes in production is today's bread'n'butter. I'll save you all the standard talk about usual implications like: increased complexity, need for being asynchronous & message-driven, etc. - if you follow my blog posts at least once in a…

Read More

The most overlooked fact about motivation in work?

The most overlooked fact about motivation in work?

It's a real grind, what we do here In real life, software delivery rarely is a piece of cake - writing actual, production code doesn't resemble "happy path" tutorials, industrial domain models are much more complex than "Animal -> Dog" hierarchy, effective automated testing gets twice as hard with every new dependency discovered, etc. It's not a "simply follow the instructions" type of work. In fact, to do their daily work, software delivery teams have to constantly deal with numerous (& various) issues & problems, fight impediments, tame unruly technology that sometimes seems indistinguishable from magic ;) And to do it…

Read More

Running in circles - when the progress is literally zero

Running in circles - when the progress is literally zero

Some time ago I had an interesting discussion with one of my colleagues regarding what is the typical thing that goes wrong when software delivery project turns out to be unsuccessful. Many of the reasons we've identified were not really revealing: new, unknown, bleeding edge, unproven technology - comments are unnecessary, but let's assume we play safe (just for sole purpose of this article) wrong product built - something that is not really needed, doesn't fulfill true needs, etc. - it's a very important point, but let's agree that we focus here just on the technical delivery process, not actual…

Read More

Trapped in a groupthink

Trapped in a groupthink

Have you heard about groupthink before? If you didn't, this blog post is for you - better to know such vicious enemy before you actually encounter him ... The most clear (& still concise) definition I've found goes like that: "Groupthink occurs when a group values harmony and coherence over accurate analysis and critical evaluation. It causes individual members of the group to unquestioningly follow the word of the leader and it strongly discourages any disagreement with the consensus." src: https://www.psychologytoday.com It's a psychological phenomenon that turns smart people into flock of apathetic, mindless drones - either afraid…

Read More

Five to midnight: what to expect of .NET Core 1.0 RTM

Five to midnight: what to expect of .NET Core 1.0 RTM

New .NET is around a corner. Tomorrow (2016.06.27) we'll put our hands on freshly baked .NET Core 1.0 & ASP.NET Core 1.0. What can (should) we expect of this new version? How will tomorrow (& days after) differ from what we already know? Microsoft is honestly open about all the technical changes (well, what can you expect - it's all OSS now), so I'll skip them - you can easily catch up using tons of on-line tutorials & blog posts if you're interested in the new tooling, deployment methods, even benchmarks. I'd rather focus on…

Read More

Why I don't condemn "serverless"

Why I don't condemn "serverless"

Many people claim that recent hype trains (especially the most recent one - Serverless) are not about actual novelties but more about re-visiting old patterns / practices & giving them new names (to make it feel like something new, maybe to claim the glory of a creator or just to sell old crap branded in a new way): Microservices are new Service Oriented Architecture (SOA) Deep Learning is just a new name for neural networks Serverless is nothing else than PaaS (Platform as a Service) done right etc. All of these names in the left get a humongous amount of attention…

Read More