Everything I needed to know about software development I learned while working maintenance in a power plant:<p>1.) If you have to call in outside contractors, expect it to cost too much, and be done incorrectly, so you'll have to go over it again yourself.<p>2.) Investing in good tools saves a lot of time and money in the long run.<p>3.) If you let the cruft build up without cleaning it out once in a while, it can bring everything to a screeching halt eventually.<p>4.) Talking about doing things doesn't get things done. Somebody has to go out and get their hands dirty actually doing it.<p>5.) It's easier to schedule your work when there is a regular, defined schedule of interruptions (9AM coffee break, 12PM lunch, 3PM coffee break) versus random ad-hoc interruptions.<p>6.) Some operations really need locks to safeguard users and data - i.e. make sure you've locked out the circuit on the wood chipper before you climb in to replace the knives...<p>7.) Respect the old geezer who has been around forever and had their hands into every component of the system. They know not just how the system works, but why things are the way they are now, when that differs from the original spec. Ignore their wisdom at your own peril.<p>8.) Most people don't take a lot of pride in their work, and will try to do just enough to get by. If your life depends on something, make sure you trust the person doing it isn't in "good enuff" mode. Then check it again anyway.<p>9.) Paid overtime is a great incentive to management to have people get shit done during normal hours. Calling workers in off-hours should be expensive and rare.