One of the things that I think many people in technology strive for is to produce the "right" or "best" solution. I was reminded of this by an article that talked about this from a manager's perspective and talked about the issues from that perspective.
These things aren't always exclusive. You can build/implement an effective solution, which could also be the best solution, but if there's a conflict, I've always looked to be effective. By this I mean that I try to get the business purpose completed and move on to the next task.
Now this might sound like selling short the future to get things done in the present and that's a possibility. However it doesn't mean that you need to always develop shoddy software. It means that you do the best job you can, you try to build good software, but you don't necessarily tune things to be as efficient as they might be. You get things done quickly in the time you have. If push comes to shove, you understand that "done" is usually more important than well-written, elegant, or something you want to show off.
This doesn't mean you should be in the habit of producing shoddy code. Jeff Moden has written some great articles on this site and has mentioned that it doesn't take longer to write good code than bad code, and I somewhat agree. However complicated code does take time and sometimes it's better to be a little less efficient and just get things done.
This means that you should be looking to improve your code skills and constantly learning new techniques. Doctors do it; CPAs do it; lawyers do it. Software developers should do it as well.
You should also think about when and if you'll be able to refactor code. As you learn about your environment, you can make those decisions that allow you to implement something quickly, knowing that you'll have to change it later on. When I released code every week, we would at times implement something that we knew wasn't built that well (worked, but wouldn't scale, or would cause reporting issues later), knowing, and even planning, that it would be replaced in a couple months.
I still think you should strive for craftsmanship and to be proud of what you do. However when you need to choose between craftsmanship or effectiveness, I'd choose to be effective in most cases.
The Voice of the DBA Podcasts
The podcast feeds are now available at sqlservercentral.podshow.com to get better bandwidth and maybe a little more exposure :). Comments are definitely appreciated and wanted, and you can get feeds from there.
Overall RSS Feed:
or now on iTunes!
Today's podcast features music by Everyday Jones. No relation, but I stumbled on to them and really like the music. Support this great duo at www.everydayjones.com.
I really appreciate and value feedback on the podcasts. Let us know what you like, don't like, or even send in ideas for the show. If you'd like to comment, post something here. The boss will be sure to read it.