Since I'm writing this, I though I should start by talking about my approach to software
development since it is the basis for much
of the content of the site and certainly effected the choice of topics for this section. This is what I call
my "Development Philosophy"
I only have a few basic tennents about software development...
Keep it simple
Anybody can build complex software. Creating simple software that can accomplish the
same task is much more difficult. In the end though, the simpler it is, the easier it is
to test, which makes it easier to maintain, and easier to extend.
Quality is the Only Job
Ford had the slogan "Quality is Job 1". However, I believe that with software, quality is
the only job. At it's core software is boolean - 1's or 0's. A function works correctly, or it does not.
Our job as developers is to ensure that as much as possible our software works correctly.
Simplicity helps.
Just Enough Design
Although there is no specific formula for how much is enough, you get to know it over time.
I don't like spending a lot of time on documents things which do not push the software forward, and
many rigorous development processes produce a lot of impressive reports, but little functional software.
Read the section on Software Design for some ideas on what really works.
Use the Right Tools
I'm a huge believer in using the right tools for the job, as they can save you a mountain of time and effort.
While there are notepad and vi die hards around, no matter how great a developer you are,
you would be better if you learned to leverage the power of an Integrated Development Environment (IDE)
Here's a list of the minimum tools every developer should have
- IDE with intellisense or similar
- Unit Testing Framework
- Version Control System
- Code Generation Tools
These basic items (all of which can be found for free) can greatly improve the quality of your code, and
improve your productivity.
That about covers it - everything else flows from these ideas.
On to Object Thoughts...