81
Software engineering in a corporate environment, the kind that pays the bills of its code monkeys / ticket pusher employees, is happily dividing up the labor that should be the work of a single mind into ever more specialized roles, and thereby - whatever process on paper and in semi-religious rituals gatherings is being followed - introduces the enterprise waterfall via the org chart.
I don't think that this benefits the health of anybody involved, including those who create the structures in the first place. I consider the role division being actively harmful to business, customer, interpersonal relationship and individual growth.
One might ask, if that were so, why does this pattern recur and it is so prevailing across the industry? Well, for one: how ever smart we might be as individuals, as a collective, as organizations we don't have a clear and shared understanding on how to design software systems, and some of the metaphors we live by can only be classified as fallacies. Also, systems can fall into certain traps, and the intricate systems we've built to build software are all, quite obvious to anybody who bothers to a close look, running into the systems trap of Suboptimization.
Another entry for the big list of great questions: How to break out of that trap?