The success of a CMS implementation is ultimately determined by thousands of individual choices made every day by team members – developers, PMs, analysts, and so on. Many of these choices are based on design principles with which business managers might strongly disagree but of which they are often unaware. Occasionally one of these decisions has inordinate impact – a complexity of design that results in a complexity of implementation, testing, and maintenance that is radically inappropriate relative to the value of the feature in question.
Managers who aren’t deeply engaged with their teams tend to over-simplify such discussions by saying things like, “So-and-so engineer always makes things more complicated than they need to be.” It’s true some engineers are hard to manage (and that some managers start almost every new project with unrealistic expectations, and that some users won’t give up complicated requirements). But I believe this difference in philosophy is also in play, and a PM or other manager would do well to understand and talk about how a team’s varying philosophies impact its members’ choices, and where change might be in order.
An interesting article on this topic by Eliot Kimber is here.
Such discussions might seem esoteric, but they absolutely are not.