Slicing a cake across layers is about prioritising value and mitigating the risk of building the wrong thing. Most product and feature requirements are hypothesis for creating value, unless that hypothesis has already been validated.
> It's very convenient for the stakeholders to see progress mapped out like that
It's important for the business to validate product value. This is not just progress anxiety.
Crafting software to perfection is ultimately a waste if it doesn't provide value to the business or customer. If we are sure we're building the right thing, we can risk more, and spend more of our time building the thing better. Build scrappy first, build confidence in value, and then craft to perfection.
The slices of cake aren't built in isolation. Every time a slice is being worked on, it is integrated back. The cake analogy falls apart here, because cakes (and houses) aren't nearly as malleable as software. We have opportunities to refactor it every step along the way, and change its shape. Yes, sometimes we refactor independent of business value, and I think that's essential too. I don't think the idea that's presented is to have absolutely every slice be vertical, and business / customer facing.
1. I agree, numbers are important, and these intuitions and feelings should be backed by numbers. In the post too, I suggest looking at dashboards during such discussions.
2. My definition of simplicity is largely based on Rich Hickey's talk, I would recommend it if you haven't seen it. I think it's possible to be somewhat objective about simplicity. If something is overwhelmingly complex to a junior, ideally a senior engineer is able to appreciate that complexity.
3. Yeah, the loudest voice problem exists, like with any in-person discussion ig. Keeping discussions on slack / notion helps side-step it. Discussion rules with timers, going around the room, anonymous comments, etc can also help.
4. A complex legacy codebase will and should fail the simplicity test, at least wrt a new engineer's experience. And it would serve the team well to accept it, and try to solve for it. Ruminating on any problem without moving towards a solution is frustrating, and can be demoralising, yes. And providing direction and creating momentum in that direction is a leader's job. In this blog post, I only offer questions, not answers :p.
We are a 9 year old boutique technology consulting firm. We care about the impact that we make in the world. As an employee-owned cooperative, we are all stakeholders in how nilenso is run—and we don't need to justify how happy employees impact the bottom line. We're currently a fully remote team of friendly people across India.
We have designed, built, and delivered complex, distributed, scalable backend systems for the web that have stood the test of time. We have written production code in Clojure/ClojureScript, Haskell, Elixir, Ruby/Rails, Python, Go, and Javascript, and are partial to a functional approach to programming. You can read about some of our work[1][2] and check out the talks[3] we've given to know more.
We're looking for senior engineers to work with us. View our full job description at https://nilenso.com/jobs/senior-developer/, or email us at careers@nilenso.com to apply!
We are keen on hearing from women and other under-represented communities.
We are a 9 year old boutique technology consulting firm. We care about the impact that we make in the world. As an employee-owned cooperative, we all are stakeholders in how nilenso is run and can prioritise employee happiness: we don’t need to justify how happy employees impact the bottom line. We’re currently a fully remote team of friendly people across India with one member in Canada, and are hiring folks based in either of these geographies.
We have designed, built, and delivered complex, distributed, scalable backend systems for the web that have stood the test of time. We have written production code in Clojure/ClojureScript, Haskell, Elixir, Ruby/Rails, Python, Go, and Javascript, and are partial to a functional approach to programming. You can read about some of our projects[1], their technical details[2], and check out the talks[3] we’ve given to know more.
We’re looking for senior engineers to work with us. View our full job description at https://nilenso.com/senior-developer.html, or email us at careers@nilenso.com to apply!
> It's very convenient for the stakeholders to see progress mapped out like that It's important for the business to validate product value. This is not just progress anxiety.
Crafting software to perfection is ultimately a waste if it doesn't provide value to the business or customer. If we are sure we're building the right thing, we can risk more, and spend more of our time building the thing better. Build scrappy first, build confidence in value, and then craft to perfection.
The slices of cake aren't built in isolation. Every time a slice is being worked on, it is integrated back. The cake analogy falls apart here, because cakes (and houses) aren't nearly as malleable as software. We have opportunities to refactor it every step along the way, and change its shape. Yes, sometimes we refactor independent of business value, and I think that's essential too. I don't think the idea that's presented is to have absolutely every slice be vertical, and business / customer facing.