
In my experience quality is, unfortunately, not prioritized seriously. Why?
Developers and managers are not aware of the definition of quality. Therefore quality is somehow a random side of development, depending of the team skills. Robert Glass defines quality in his book "Facts and fallacies of software engineering" by Robert Glass.
Human engineering (Usability)
Usability is a big area. Anthony Franco's presentation at MIX10 does a good summary:
- Providing valuable Feedback
- Behaving with Consistency
- Behaving in a Familiar way
- Being obvious and Efficient
- Being responsive and Perform
- Helping people and businesses Accomplish goals
- Being brand consistent and Elegant
- Being progressive and Trustworthy
Understandable
This is about understandable code.
- Robert C. Martin's book Clean code
- Use well known patterns
- Coding conventions
- Good structure in the Visual studio solution.
The day you start coding, you are modifying your code. This is one of my favourites.
- Stay DRY
- Be SOLID
- PPP as described by Robert C. Martin
- Tests
- Refactor
- Understandable
- Follow Michael Feathers' advise in the book "Working Effectively with Legacy Code"
Is about creating software that is easily moved to another platform. May not be an attribute of quality at all, but for some the most important.
- Use Mono
- Monotouch
- Share parts of the codebase
- Use a coding language which supports several platforms
Does the application do what it is supposed to do?
- Understand the problem domain
- Understand the users
- Understand the system domain
Is about both time and space consumption.
- Analyse your code
- Do memory profiling
- Do performance profiling
Is the application easy to test?
- Roy Osherove.......... say no more
There is no finite definition of quality, but I believe Robert Glass makes a good one. You must order the attributes yourself, and ask yourself and the team if the application has these attributes of quality?
Picture is taken from the book "Kamikazekaniner"
Ingen kommentarer:
Legg inn en kommentar