Session 15
Top 10 Mistakes Developers Make
We start with a formal definition of a mistake:
"A mistake: error, blunder, a misconception or misunderstanding, to confuse a person or thing with another."
What are the two biggest pains in software development? Well, David Aiken had no problem in letting us know: Install and Health. As an adide, we were then shown a sign which adorned the office door of a developer at Microsoft which read:
"I don't care if it works on your machine, we are not shipping your machine."
Anyway, onto the mistakes we make:
Mistake #1 - Ad-hoc configuration
what you do: Make configuration changes to your machine manually.
what you need to do: Script any changes so that they are repeatable.
Mistake #2 - Don't make assumptions about security
do not make assumptions that:
- User will had admin rights.
- Firewall will also port 8050.
- User has permission to register HTTP namespace.
- User is mapped to dbo role in the database.
- User can write to file system in folder x.
Mistake #3 - XCOPY = Mistake
XCOPY really means XCOPY then:
- Add registry entry.
- Enable file permission on account.
- etc, etc, etc.
Mistake #4 - Uninstall = Format C:
Do you provide a way to uninstall your application?
Checkpoint: 1) build an installer/msi for your app components. 2) Integrate istaller as part of the build process and test. 3) script install and uninstall steps.
Mistake #5 - Dependancies
What does your application depend on:
- SQL?
- MSMQ?
- Port 8050?
- Foo.dll?
Can your application easily check for dependancies? Use a dependancy checker.
Mistake #6 - Upgrade means reinstall
At worst, installation of patches may require uninstall and reinstall or even worse! Some developers simple overwrite earlier dll's with new ones - bad practice.
Mistake #7 - Patch breaks everything else
You make a fix to correct an error without comprehensive testing on the knock-on effect on other system components.
Mistake #8 - Don't use admin tools
Notepad is not really as admin tool and neither is Visual Studio.
What is? WMi, Windows event logs, Windows performance monitor, Windows Powershell, Microsoft Management Console etc.
Mistake #9 - How do you know your application really works?
Use of synthetic transactions such as bogus customers and orders to test every scenario.
Mistake #10 - Single user testing multi-user environment
Don't just assume that your application will operate in multi-user environment when testing has been carried out by single user.
No comments:
Post a Comment