I often find myself explaining some of the basics of software development and I thought I should finally post these in the hope that they are help to others. So, here are The Rose Rules of Development:
  • Always use exception handling. Always!
  • Temporary fixes/projects become permanent.
  • The longer it takes to find a solution to a problem, the more likely that the issue was very simple.
  • Assume the worst. When writting a function assume that some part of it will fail. (it will) If you adopt this semi-pessimistic additude then when there is an issue, ie: cannot connect to db, then the application will not simple hang.
  • Think ahead at least 3 steps/versions. Don't "hack" something today, tomorrow it will bite you in the ass.
  • Comment and document your code as you create it. Don't wait for later, as later will never come.
  • Communication is not just a system protocol. Talking with the users about what they want is important. The application needs to work the way they want it to, not the way you want it to.
  • Languages and platforms come and go, learn to adapt to the changes. Change is the base constant in this line of work.
  • Use naming conventions. Choose one or make your own, but consistency in how you write will make your life, and the developers who work on your code.
  • Use GUIDs as database table identifiers. At some point you are going to need to deal with replication.
  • Don't use MS Access for multi-user apps. Especially do not use for apps that you are going to sell. Use SQL Server Express, MySQL or other larger scale databases.