I find it quite interesting how many times we hear stories like this about "cowboy" startup engineers. I subscribe to an XP (Extreme Programming) methodology which includes things like TDD, DevOps, and Pairing. I have done this at both existing large companies as well as tiny startups where I was engineer #1 or co-founder (of course, pairing started with engineer #2 ;)).<p>When people ask me later, how could you do all of that and still run a lean, agile startup environment I always wonder "how could I have been lean and agile without it?!"<p>Is testing really all that hard? No, I am well versed in testing and pretty good at it. It doesn't get in the way of my process and does help with my design.<p>Is pairing really restrictive? No, it's liberating! I get to work hand in hand with another engineer to get ideas out quickly, tackle bugs fast, and stay focused.<p>Is DevOps really a huge problem? It sure is nice to know, early in the development of a new product, that I can deploy RIGHT NOW and continually and have continuous integration and test coverage. There is a lot of value in that.<p>Do all of these things slow me down? I don't think so, if anything building a new product or company isn't a sprint, it's a marathon.<p>Now of course the opposite to all of these point are:<p>Adding tests later is really hard. So is removing technical debt. That hurts, a lot. A newly formed companies can't always cross that chasm.<p>Multiple engineers all trying to solve big problems without communication can lead to architectural and engineering issues down the road. These are hard to solve. Pairing sure helps with that.<p>If you can't deploy, redeploy, or move your installation easily, that is a risk to your entire business.<p>One added benefit of not being a cowboy (outside of your technical debt not biting you later) is in the financing and acquisition discussions become a lot more fun and lucrative. A number of Angel and VC organizations are becoming extremely tech-savy. They want to know if you have test coverage. They want to know that one day your servers won't go down and you won't be spending two weeks trying to remember how to get your entire environment configured. They want to know that their money will be placed in a great investment. These disciplined principles of development go a long way towards showing them that they will meet that goal.