Today is the first day that I felt that I've developed a solid application. You see I'm a tools developer which means I write small applications that interface, diagnose, or control things that are larger and greater than itself. Most of the time these tools are patched together with some existing GUI code and some back end logic, then its over, the tool almost never gets updated and rarely gets enough time it deserves. Can you tell I'm just a little bitter?
The bottom line is that tight schedules and expensive third party software give development teams little choice in the matter. This is a daunting task for any developer since your normally engulfed in a lot of work as it is, normally meaning you don't have much time to design or even throughly test. Most of the time your worried enough about getting the bloody thing to work, let alone make good decisions in design of the application and especially the user interface. So how does one get around this development hell?
The concept is simple write code that you can use over and over again, the idea of re-inventing the wheel a couple of thousand times is just stupid. Learn how to make robust software libraries, learn to utilize given frameworks if you have any. These don't become apparent until you've gone through it a few times, but you'll quickly find out how make your libraries work for you or you'll find yourself mindlessly coding a bunch of cookie cutter code that is more than likely bug ridden.
Know your environment when developing small scale applications make sure you utilize what's available to you. This goes beyond system resource management, this also includes your IDE (Integrated Development Environment) which means you'll want to know the ins and outs. For example in Visual Studio 2003/2005 .NET you can place bookmarks in your code, that allow to jump from code segments to segments in a few keystrokes. You can also setup basic logic conditions on break points which can help you consistently reproduce errors.
Work language strengths, try to develop in languages you're familiar with but don't be afraid of higher level languages. These languages are usually designed for rapid development and trust me that's a big help. I know people that will swear up and down that C++ is the only language you'll need to know because it can do anything. This is partially true C++ can pretty much do anything but its not the only language you should know especially since there are so many other languages that do things better. For instance I won't write a report generator in C++, I could but I'd rather write it in VB since its got more business logic library support. You'll need every moment you can save, so if you can save time witting in a higher level language do so, if you don't know any higher level languages I'd highly recommend you learn some; yes, as in more than one.
The last thing, test your tools, if people are relying on them they really need to be throughly tested. Don't forget your users only care that it just works, you care if its reliable since you're most likely the one who'll need to fix it. There is nothing worse than being in a situation where you're not sure if you can trust the tool, it makes a lot more work than you want.
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment