Software Development Goals
Having made the decision to learn Visual Basic or C#, there are some principles and goals that each developer must be absolutely committed to. These goals permeate each project you’ll ever work on, and will distinguish you as a developer who takes pride in his workmanship. They are as follows:
Create software that fulfills requirements and is accurate – If you are building software for someone else, you must make sure that you give them exactly what they have specified, despite how you may feel about their requests. It is not your job to demand that software operate a certain way, or that the business changes how they work to accommodate your application. This is not to say that you can not present alternatives based on your experience and how you feel the application could be improved. Too many times lazy developers have tried to talk managers or clients out of a particular feature because they knew it would be too hard to develop in the manner the customer requested. My advice: “Get over it!” Force yourself to learn something new if necessary. Deliver software that fulfills the requirements that were handed you and ensure that what you’ve created accurately performs the requested functionality.
Write software that has virtually no bugs – There is a concept in programming called “Good Enough Software”. This means that you build software the best you can knowing full well that it has problems, but it’s the best you can do in the time allotted. I have mixed feelings about this. On the one hand, I sympathize with developers who are under a tight timeframe and may not have enough time or resources to develop completely bug free applications. On the other hand, I know the headaches that come from being “haunted” by code that I’ve written just “good enough” to be sent to a client, only to have the client express their dismay at the problems they experience with the software. I speak from experience: this is NOT a good feeling. Obviously a balance much be reached (there has never in the history of programming been a completely bug free application), however I would err on the side of perfection. If nothing else, you can gain a reputation of building solid software rather than a reputation of shoddy work. Ideally, you could develop solid software AND meet deadlines, and the way you accomplish that is by knowing well the fundamentals of application architecture and abiding by best practices.
Supplemental Readings for the Express Edition Videos Copyright © 2005 LearnVisualStudio.NET