James Shore, an Agile Programming proponent writes:
Mock dialog: "In my last company, we didn’t have any structure at all. People just
did what they felt was right. That worked okay when we were starting
out, but after a few years we started having terrible problems with
quality. We were always under the gun to meet deadlines, and we were
constantly running into surprises that prevented us from releasing on
time. Here, although we’re still able to do what we think is right,
there’s enough structure for everyone to understand what’s going on and
make constant progress."
Simplicity is in the eye of the beholder. It doesn’t matter much if you
think the design is simple; if the rest of your team can’t understand
it, or if future maintainers of your software find it too complicated,
then it is.