A Costly Failure to Design for Performance and Robustness

I have learned that it is costly to not prioritise expressing one’s design concerns and ideas early. As a result, we have a shopping cart that is noticeably slow, goes down whenever the backend experiences problems, and is a potential performance bottleneck. Let’s have a look at the problem, the actual and my ideal designs,Continue reading “A Costly Failure to Design for Performance and Robustness”

Why we practice fronted-first design (instead of API-first)

Cross-posted from the TeliaSonera tech blog Alex has introduced us to the idea of front-end first design: You start by creating the front-end (browser) code. As you discover data or API calls that you need, you mock them. When the UI stabilizes, you use the mocked APIs and data to create the backend with exactlyContinue reading “Why we practice fronted-first design (instead of API-first)”

Shipping a Refactoring & Feature One Tiny Slice at a Time, to Reduce Risk

You don’t need to finish a feature and your users don’t need to see it to be able to release and start battle-testing it. Slice it as much as possible and release the chunks ASAP to shorten the feedback loop and decrease risk. My colleagues have been working on a crucial change in our webshopContinue reading “Shipping a Refactoring & Feature One Tiny Slice at a Time, to Reduce Risk”

The Are No Silver Bullets: Which Error Handling Style to Pick For a Given Configuration of Constraints?

Kent Beck in his Patterns Enhance Craft Step 3: A Few Good Solutions highlights an important fact about software development: We encounter repeating configurations of forces/constraints that have only a handful of “solution families” and the optimal solution(s) depend on the relative weights of these constraints. For example when deciding what error handling style weContinue reading “The Are No Silver Bullets: Which Error Handling Style to Pick For a Given Configuration of Constraints?”

Tiny, Tiny Steps – Experience Report Developing A Feature In Minimal Value-Adding Increments

A post for those who want to see what an iterative, MVP-driven development of a feature looks like. @lukew: Start with the simplest version you can. It’s much easier to add complexity than to remove it. Once upon time, there was a webshop portal with hundreds of partner webshops displayed on the front page. PotentialContinue reading “Tiny, Tiny Steps – Experience Report Developing A Feature In Minimal Value-Adding Increments”

Most interesting links of July ’14

Recommended Readings Video: The Unreasonable Effectiveness of Dynamic Typing for Practical Programs – a static-typing zealot turned friend of dynamic typing under the experience of real-world projects and problems shares thoughts about the limits of type systems (f.ex. both energy and torque are measured in N*m yet cannot be combined) and their cost: according toContinue reading “Most interesting links of July ’14”

Most interesting links of December ’13

Recommended Readings Society HBR: Want to Build Resilience? Kill the Complexity – a highly interesting, thought provoking article relevant both to technology in particular and the society in general; f.ex.: more security features are bad for they make us behave less safely (risk compensation) and are more fragile w.r.t. unexpected events. “Complexity is a clearContinue reading “Most interesting links of December ’13”

Bad Code: Are We Thinking Too Little?

Do we not think enough when coding? Do we jump to the first solution without really considering the problem, without trying to analyze and decompose it and understand the components and orthogonal forces invovled? Is that the cause of bad code (together with time press) and the reason why we typically see a “patchvolution” ratherContinue reading “Bad Code: Are We Thinking Too Little?”

How I Learned to Avoid Magical Dependency Injection And Love Plain Java

A short story about the complexity of magical frameworks and dependency injection with a happy ending, featuring Resteasy, CDI, and JBoss. Once upon time, I have created a JAX-RS webservice that needed to supply data to a user’s session. I wanted to be fancy and thus created a @Singleton class for the exchange of informationContinue reading “How I Learned to Avoid Magical Dependency Injection And Love Plain Java”

Most interesting links of October ’13

Recommended Readings Google engineers insist 20% time is not dead—it’s just turned into 120% time – it is interesting to see how has this evolved; “I have done many engineering/coding 20% projects and other non-engineering projects, with probably 20-40% producing “real” results (which over 7 years I think has been more than worth it forContinue reading “Most interesting links of October ’13”