Software Development Lessons
Andres Taylor recently wrote an excellent article about 10 things he learned from being a professional software developer. His list was inspired by Michael Bierut's list of things he wasn't taught in design school. Both lists resonated with me and if you've been in the corporate world for several years I imagine you'll agree with many of their observations. I'm going to highlight the three items I particularly agree with.
1. One of Hardest Aspects of Software Development is Communication
When you move "up" from being tucked away in the corner where you churn out code day in and day out, you'll soon realize just how difficult it is to bridge the gap with non-technical people. You can spend hours gathering requirements and writing documentation until you're blue in the face, but in the end projects will still be derailed by ineffective communication.
2. Don't Over-Think a Problem
The 80% solution is good enough. Doubling time or cost just to get a slightly more elegant solution in place isn't worth doing especially when considered in the context of business ROI. And don't get wrapped up in the argument of over-building now to save time later on. Chances are that you'll spend your efforts in the wrong place.
3. Your Colleagues Can Teach You A Lot
I like being the go-to-guy as much as anyone else, but it's also important to recognize that other people on the team can teach you a lot. For example, your manager may not have a clue when it comes to the technical nitty-gritty, but there's a good chance you can learn about dealing with people and the ever-present office politics. You can learn a lot if you just shut-up-and-listen. I often do.