|
|
|
|
|
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. |
|
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.