Paul Hammant's Blog: Early Practices.
Joe asked many of us to prepare their early practices. He drew a map of them "X causes me to do Y". It was very smart. He took it to XtC where it became name the patterns you use.
Here's my list of stuff i find myself looking for, advocating, doing early on in projects. Sometimes ahead of my co-workers, sometimes not.
Componentization / Composition.
Declarative needs for impls.
Container centric - even if bespoke.
Inversion of Control / external assembly / type 3.
Abolition of static methods and singletons.
Interface model, rooted in primordial instance.
Reimplementable, Wrappable, Mockable.
Transparency of use.
Interim deliverables of some comps.
Late emergence of entire set.
Text is King
All under source control
No binary files that undergo revisions under source control.
Includes generation of pictures
Binaries subject to lies (diff issue)
All under one click build.
Strong typing of APIs
Little use of Command pattern unless hidden.
Big Exception hierarchies
Rather than using Exception() or SomeException("variable") directly
Hopefully for business exceptions. Test covering the text is
pointless, therefore leave aesthetic strings for humans, and test
cover the message names.
It is pointless - test covering it is pointless,
therefore it is pointless.
Beany configuration, adaptable to resource bundles or other.
Minimization of XML
Config only hopefully.
XML is not a procedural language or anything other than a means to an end.