Hacker News new | ask | show | jobs
by drieddust 2696 days ago
In software people use agile as an excuse to not think through the core architecture.

I believe agile was invented to incrementally improve an already well thought production process. Once the assembly line was setup, agile was used to eliminate the unproductive activities. I am not sure agile will be helpful to build the assembly line itself?

In most scenarios that's what people try to do with agile.

2 comments

I don't think that is a good comparison.

Setting up a mechanical assembly line is very different from setting up a software pipeline, although, as you can tell already, they use some of the same words and metaphors.

It isn't possible to build a mechanical factory in weeks with readily available tools [0]. We just don't have that kind of concentration of knowledge, we don't have the skills, the know-how etc. to accomplish that. Whereas with software: you have OSS, you have the Cloud, and all kinds of numerous tooling that helps you get started immediately, and iterate on that until you get to the final product. That kind of iteration, debugging etc. is just not possible with manufacturing. Which is why in manufacturing you need great designs and processes: bad decisions are very costly. They are costly in software too, but... your MVP will still churn out value, even if its not efficient. Once you prove that your product satisfies a need, you then make it better, you make it more efficient, scale it out, yadda yadda. But getting started is absurdly easy. And thats why lean works.

The designers of lean realized that all that worry about scaling, about automation, planning, QA... while its important, it doesn't provide the most value for everyone. For a smaller company, its more important to get out a product that solves a problem even if its janky. Once you prove its usefulness, you attract more money, more people etc.

So lean solves two problems: * gets you started quickly and fails bad ideas fast * lets you justify bad design if it provides more value

One could argue that the technical debt built up by this kind of process has to be paid down someday. If your product survives for long enough, you will have enough resources to do that. And then you have a core product that brings in revenue, and you repeat the same lean method for other products. Rinse and repeat, ad infinitum.

[0]: where this assumption fails, you see a lot more manufacturing. e.g. in China, the fruits of this kind of aggregation in manufacturing skill is visible, and that's why Chinese manufacturers are so adept at responding to changing market conditions.

I agree with your points above.Having said that knowledge and experience is a critical factor and I am fine with using agile for MVPs and startup scenarios.

My issue is with the way agile is evangelized and implemented in the Enterprise. These Enterprise people simply rationalize that if Toyota can do it then why we can't without realizing where it fit and where it does not.

Personally I think it does not fit with the culture of thousand approvals and beating the dead horse i.e. endlessly cross examining any design or implementation failures.

This happens because Enterprise people love the buzzwords. Agile and cloud are the latest buzz in Enterprise so they watch a ppt or two somewhere starts pushing agile into a culture where it does not fit at all. This results in sufferings and frustration.

You're describing Lean. Similar and related, but not the same.