Currently I'm thinking about how to approach the delicate matter of some colleagues completing tasks and solving bugs in the most straightforward obvious way possible, slowly resulting in the growth of very WTFish code. Typical example: Someone wants to add a feature in a core module, and then does so while inverting dependencies, resulting in "core" module depending on other modules rather than the other way around.
Now, it's quite clear I can't keep it up rewriting bad quality code being inserted in various places by people, so how would I go about educating them to think before they write a "solution" for something? Individual talks on spot? Weekly group talks? Ask them to read a book on software design?