At the moment, I work for a large IT company in the Netherlands. I'm a software developer. At least, I tend to be one.
I think that being a software developer consists more than just being able to make a working program in a certain programming language. Although coding is an important part of the development process, there are still quite some other less obvious skills a software developer should have. I think that the following guidelines should be trivial for a professional software developer:
- Design before coding and document the design.
- Confident programming [Be able to write code you can fully understand and avoid the it-does-the-job-why-should-I-bother-attitude.]
- Document your code with functional comments and avoid trivial comments.
- Unit test your coding. Automated unit tests are a great aid in this.
- Peer reviewing: do code walkthroughs and let other people review the documentation you write.
- Code management: use a source repository to keep your source code tidy and well versioned.
- Defect tracking: keep track of the status of the several defects found and make the defect list manageable.
- Release management: think about how you can build a well versioned distribution of your software and keep track of the changes.
While it might be hard to do, I think it's the software developer's responsibility to avoid discussions on lowering software quality. I don't think it's an option. If the schedule is too tight, there are just two good choices: either make the scope of the software's functionality smaller or change the schedule by making it more realistic to achieve.
My Software Development Pearls
Lessons I learned and other software development related things I did in my relatively young carreer can be found here:
Monkey business in software development - In the IT business, somehow the perception exists that part of the software development process can be carried out without any form of intelligence. This part is also known under the names of plain coding, plumbing, code monkey food, and many other names.
PrEd - PrEd is a Java based property files and XML files editor. The unique feature of PrEd is the ease of altering JAR and WAR files. The main concept behind PrEd is the idea that small projects often use property and XML files to set customer specific settings, but still like to have single file deployments. Now we can edit our deployments safely at the customer's site, by using PrEd.
Knowledge does not come cheap. I have put quite some time and money in reading books on software engineering and related topics. Books on programming languages, methodologies, design patterns, theories of computing and much more. This is my list of books.
