RayFrankenstein
Joined 7 years ago
Joined 7 years ago
Maybe the speed of AI is just making it more apparent.
https://github.com/rayfrankenstein/AITOW/blob/master/README....
Here's what I've learned from maintaing this compendium about why Lean manufacturing doesn't translate.
1. Japanese car companies companies were focused on long-term growth. Software companies, on the other hand, are extremely short-termist.
2. In Japanese car companies, anyone can stop the assembly line by yanking a cord and there is no dishonor in that. Try stopping working on a feature for half a day to refactor some code.
3. In Japanese manufacturing's golden age, workers had lifetime employment and there was a mutual concern by the company and workers for each other; a Japanese worker might be at a company for thirty years. In the software industry, the average tenure of a software company employee is, like, two years or something. And the environment is often very adversarial. You can't ahve
4. Japanese manufacturing focused very heavily on having very high quality vendors that make stuff that didn't require a lot of debugging. There was a heavy focus on part re-use in other designs; the same engines would be used in different generations of different models for years. The software equivalent of this would having a fully fleshed out, batteries included stack where little custom-invention would be required because the API's are just so damned good and comprehensive. How many times have you gotten a Not Invented Here or "that's too opinionated for my taste" approach from leads?
https://github.com/rayfrankenstein/AITOW/blob/master/README....
The result was a mess, with many of the possible concerns and drawbacks you’ve cited ending up manifesting themselves. It was an unmaintainable mess that tried to re-invent the web browser wheel badly, except using json instead of HTML. Maintaining the abstraction framework became a full-time job for people already just trying to barely deliver features on time.
And with the backend people already being busy and tied up with other stuff, the mobile app developers ended up having to become impromptu full stack developers, have to code PHP on backend to complete features in addition to the code they had to write in Objective-C/Java for their native app level portion of the feature.
The backend approach was so resented and hated by the mobile app devs that the business eventually got rid of it.
1. Ask if they've worked as a professional software developer? If not, enjoy them squirming as you subtle question why they're trying to train in things they don't understand.
2. If they do the penny flipping excerise, when it's your turn sweep all the pennys into a book, close the book, and flip it over and sweep the coins back out. You'll do the exercise 10 times faster than your coworkers and show them innovation is more important than agile.
3. When the agile training talks about splitting work down into small bits, as them what happens if there's a large chunk of work that can't be split down and has to be done in a large serial chunk. Think of as many examples as you can of this in the real world, and generally be a skeptical jerk when they tell you that any task can be broken down into tiny bits. If they're not technical, make sure you pick the most technical examples as possible, to further erode their credibility.
4. Bring a tub of single cell legos with you, and if they do the Lego excerise, ask them what to do if your team is given a tub of these and the other team (or your competition) is allowed to have broad-stretching legos.
https://github.com/rayfrankenstein/AITOW/blob/master/README....
Agile has fundamental structural problems which, combined with office politics which it can destructively amplify, make it an inevitable nightmare to work in.
2. Stonewall and give them answers so confusing and incongruent they’ll eventually stop asking.