| The least complex software is the one never built. We often over-automate. Automation is brittle and inflexible and easily ends up lined with edge cases and other types o complexity. Automation is great when it replaces a stable, well-working manual process. The way to introduce automation is to first experiment with humans doing something manually until you have a great process. Then take the dumbest, most reliable part of that and turn it into a computer program that alerts a human if it encounters an edge case. Try not to handle edge cases in the software, but try to remove them from the greater system in which they occur. Automate by elimination, not by complexity. Good books in this vein would be anything with Taiichi Ohno in the title, or, perhaps better, as the author. |