Evan Light’s Post

View profile for Evan Light, graphic

Seasoned engineering leader and developer specialized in distributed systems at scale

Let's face it: "software engineers" and "software developers" are *not* craftspeople. We are usually a business cost-center that converts business requirements into customer dollars. Setting aside the political baggage of the Software Craftsperson (nee "Craftsman") movement (and those original words alone convey some of the baggage), I find now that I regret the entire movement itself. Paid software development is about serving a business need and rarely about crafting software that is optimized for flexibility, reliability, and understandability. When businesses seek to turn a need into software, they are often concretely planning for a quarter, loosely planning for a year, and pipe-dreaming when they "plan" for anything over three years. This has an impact on software developers. The cost of converting ideas into software usually scales something like logarithmically to exponentially with the complexity of the business. Software is usually developed with an eye toward achieving a quarterly or annual goal or an investment round--so let's say 3 to 12 month window. Management expects to be able to measure results. And, so, in most environments, you need deliverables that can be demonstrated to management in order to show progress. Except for those ideal cases where eXtreme Programming actually works (e.g., customer is always onhand for clarification, no artifacts other than code and test code, team of up to maybe 8 people, often working in pairs, etc.), the complexity of converting business needs into code is complicated bordering on complex because businesses are complicated bordering on complex. (I use the Cynefin definitions of "complicated" and "complex" where "Complicated" means something like"with a reasonable amount of effort, you can somewhat reliably predict outcomes" and "Complex" means that "this system/business is so complicated that you cannot reliably reason about its properties and so properties and outcomes are emergent) Given anything but a project or business with an exceedingly clearly bounded minimum viable product, we're rarely crafting but instead struggling to meet quarterly/annual/funding round deliverables. But wouldn't it be wonderful if we could find our way back to when software developers were able to ship software they could be proud of and businesses were better for it? Perhaps it's still possible. But we all have to be playing a long game, business and developer.

Damon Davison

Collaborative and flexible. Working with teams to understand business needs, fix problems, and leverage opportunities. I focus on good communication to understand underlying needs, constraints, and assumptions.

7mo

I feel “construction crew” might be a more apt analogy, there can be a craft to commercial construction, but it’s all geared towards getting the right thing built, on time and on budget.

Jeremy Nicoll

Pragmatic tech leader and gardener

7mo

A lot of short-sighted decisions are made to make those quarterly reports look good, and not just in software development.

See more comments

To view or add a comment, sign in

Explore topics