I worked for a [Japanese] corporation, that took “formal methods” into overdrive.<p>They made really, really good hardware, but it was <i>extremely</i> painful for us software schlubs.<p>That said, I don’t know if it’s really possible to do really big stuff, with a team, unless you have some degree of formality.<p>Best practices are usually a good place to start, and I would suggest that the degree of necessary formality, is inversely proportional to the experience of the team. If you have a lot of really experienced engineers, in a mature team that has been together a long time, the formality is still there, but doesn’t need to be written down.<p>I usually work alone, or as the sole technical person, in a diverse team. I’m really experienced, and don’t write much down.<p>But I’m also really, really formal. It just doesn’t look like it.