Our Continuous Testing odyssey - part II

Our Continuous Testing odyssey - part II

In this post you'll read about the difference between writing automated tests & having testing automated, why testing framework or DSL used do not really matter, what does it mean "to free the mandays", how did we approach securing capacity for kick-starting test automation with a big hit.This is the 2nd post in the series. You can find the previous episode here.Just do it (not)!It's a very banal truth that it's very easy to create automated tests, but it's very hard to automate testing.Uhm, wait, what? What's the difference?I can easily create zillion of automated…

Read More

How can Stoicism help with building better software?

How can Stoicism help with building better software?

By learning this blog post you'll find out that neither Stoic != stoic nor Cynical != cynical, how Stoicism helped me to get out of depression, why celebrating small victories is important, what's "negative visualisation" & how Stoics' virtues do apply to modern engineering.If you've read any of my past blog posts before, you may have already realised that I tend to mix engineering with various non-obvious disciplines - starting with behavioural psychology, ending with Japanese movies, Zen meditation or Leonardo da Vinci ... Today I'd like to share some thoughts regarding the topic I find very appealing personally - how can…

Read More

Our Continuous Testing odyssey - part I

Our Continuous Testing odyssey - part I

In this blog post you'll read about why & how Shedul has started the journey towards Continuous Delivery, what does it have in common with test automation and why 2 weeks are both a little & a lot ...Dunno about you, but I love the warstories. Theory is great, but even the greatest & most thoroughly thought-through ideas do not guarantee a success - it's (almost) all about execution and learning from successes & mistakes (both your own & others'). I have shitloads of my own stories I'd gladly share, but in many cases I simply can't - as a…

Read More

When the sky is falling ... Graceful Degradation

When the sky is falling ... Graceful Degradation

This blog post is all about ... reducing risk versus narrowing ground zero area, operability, what does it mean that software should be built like ship hulls, that resilience analysis doesn't start with deployment units, how well-designed systems are prepared for partial failures & why GD has to be very simple.General engineers' awareness regarding high availability has massively improved over last few years. Redundancy, load-balancing, self-healing, multi-replica DBs, auto-scaling groups - all that sort of stuff is bread'n'butter these days. Which is good (unless you don't need HA, but it's a different kind of story ...).We do a lot to…

Read More

Bike-shedding: how mature are you as an engineer?

Bike-shedding: how mature are you as an engineer?

This blog post is all about ... designing nuclear power-plants, insatiable desire to put CQRS, eventsourcing & microservices in every software product, engineers' maturity, what's more important: problems or solutions & how JIRA can help (yikes!).There are some terms in IT you'll probably never learn at any CS University course. Yet, they are too important to omit & one of them is "bike-shedding". Frankly, I haven't heard this particular term until last year's outstanding presentation by Jimmy Bogard.But let's assume that for whatever reason you haven't so far & don't want to watch Jimmy's vid. Basically ...Bike-shedding happens when…

Read More

GraphQL is awesome. You probably should not use it.

GraphQL is awesome. You probably should not use it.

This blog post is all about: how developers get lured by shiny wrapping, what kind of problems can be solved by GraphQL, what are the basic ways to solve problems GraphQL in fact can't solve. We had so many "silver bullets" in the software craftsmanship industry recently - some aimed to insta-boost the productivity, others to make the scalability-related problems evaporate like a bad dream - sadly, none of them truly made that difference, but we (as engineers) are still being naive enough to keep falling into very similar traps ...One of the newest kid on this is named GraphQL.…

Read More

Wave physics, rhythm, balance & ... juggling

Wave physics, rhythm, balance & ... juggling

This blog post is about: why extremes are bad, how can we apply waves physics theory to developing software, what's the real benefit of having a skin in the game, which ball is made of glass & why learning to juggle is really important in life. Many things just come with experience, but there are certain questions all my former years of professional software crafting didn't prepare me for. Like this one: "What kind of advice would you give to a beginner?" Yikes. I don't know. Just, ekhm ... "go on with the flow"? Or: "don't…

Read More

"Good design is adaptive, not predictive."

"Good design is adaptive, not predictive."

In this article you'll find: what is "capability", why UI-driven application design is sh*t, why conceptual layering is important, which parts of software are less change-friendly & whether it's a problem, why "fibers" are the single worst anti-pattern (even if you hadn't heard about them until now ...).I don't even remember where & when I've written those words down. It was one of the conferences or meet-ups I keep attending regularly, but I can't recall which one. It doesn't matter though, the point is that I've noted down one-liner that is striking enough to near-perfectly phrase what I was…

Read More