[ Date Index ] [ Thread Index ] [ <= Previous by date / thread ] [ Next by date / thread => ]
On 28 April 2014 02:16, Simon Waters <simon@xxxxxxxxxxxxxx> wrote: > difficult problems don't demand big solutions. The claim I'm disputing is that the solutions are necessarily and inevitably "complicated [and] long-winded". "Big" does not necessarily imply either of those. But yes, as the examples you give show, "big" is not always necessary in a solution either. Programming is all about managing complexity. Bad programmers write complicated, long-winded code even for relatively simple problem domains and never learn any other way. They don't try to learn any other way, they are not interested in learning any other way; they complacently assume utterly false estimations of their own ability and code quality and seek out peers who will reflect and reinforce those false estimations. Unfortunately, it is not only possible but hideously common for such programmers to have long, successful and lucrative careers, infecting every code base they touch with insurmountable cruft and technical debt, thanks to the near-ubiquity in industry of ignorant, incompetent and negligent development managers whose only benchmark of programmer success is the number of lines of code written, regardless of need or quality. The result is plain to see: software sucks. There are *many* efficacious tools and techniques for attacking this problem. Good programmers seek them out, learn them, apply them and share them. Faced with big, complicated problems, good programmers produce solutions which are elegant, learnable, maintainable, flexible, robust, and, yes, simple, at any particular layer or granularity -- they know how to segment. Perhaps most importantly, good programmers produce code that is *tractable*, meaning the code is amenable to being reasoned about. Unfortunately, since deploying those techniques often leads to not just fewer lines of code produced per programmer per unit time, but to actual net negative line counts as cruft is removed and consolidated, programmers who deploy them effectively are not valued by (incompetent, remember) management; and since, properly understood, the work they do demonstrates that most of the programming work that is currently being done, and thus most of the headcount doing it, is pure waste, good programmers are also seen as a threat by the feather-bedded incumbent corps, who work to get them ousted ASAP. I don't mean to come across as bitter and resentful, but I am, so it shows. -- Phil Hudson http://hudson-it.no-ip.biz @UWascalWabbit PGP/GnuPG ID: 0x887DCA63 -- The Mailing List for the Devon & Cornwall LUG http://mailman.dclug.org.uk/listinfo/list FAQ: http://www.dcglug.org.uk/listfaq