Auto-generated Stove-pipe Anti-Pattern: Problem: Developers/Designers are in love with their new pet AutoCode Generator/Wizard and want the design of the architecture to fit the capabilities of their Wizard. Budget is burned at an alarming rate to produce what is believed to be the product for production only to find out that it's a non-fleshed out skeleton that requires a ton of manual coding. And, the "Developers/Designers" who praise this method have left the project at the last moment. Only to leave the rest of the design/developer team with the large pile of crap to make useful. ---- ''This description doesn't sound quite the same as that in StovepipeAntiPattern'' I think this is the definition of the Auto-generated Crap Anti-Pattern. ---- The vendor publishes tools that make programming look 'easy'. An inexperienced programmer or student programmer can directly bind a form to a database table. This to me is the essence of a stovepipe. Not only is it not reusable, bloated and sometimes buggy, but complex relationships often cannot be described by the tool. Also, since the binding is done at design time, any minor change in the schema requires a complete rewrite of the interface increasing maintenance costs. So... ''Oh, God: the flashbacks. I used to be an MS-Access developer.'' Forces: a desire by the vendor to make their product look 'easy', a desire by management to dumb down programming (no need for skill, it is all built -in) there by reducing staffing cost, a desire for trade certification and training programs to show their students fast progress and a desire for an individual to become a 'programmer' fast. Consequences: bloated software no one understands, is buggy and hard (expensive) to maintain. Solution: when hiring, control the hiring carefully. Avoid hiring people from short training programs. Remember maintenance costs has been estimated at 2-3 times development cost so controlling maintenance costs take priority. Before purchasing tools, carefully evaluate them as you will be living with them for a long time. Encourage soft coding and run time binding of user interfaces with data. ---- CategoryAntiPattern CategoryArchitectureAntiPattern