We took an interesting poll at work this past week. In a department
developer meeting (perhaps around 30 developers, architects, DBAs and
managers), each person was given the following list and told to pick the
top five things that were important to them in a development environment.
- Efficiency
- Correctness
- Maintainability
- Understandability
- Personal Expression
- Adherence to Standards
- Scalability
- Reusability
- Testability
- Portability
I’ll give our results here in a minute, but go ahead and pick your
top five before reading on.
My personal picks were: Correctness, Maintainability, Understandability,
Reusability and Testability.
Once everyone had picked their top five, we got together in groups of four
and determine the top three items within our group of four. The top two was
easy: Correctness and Maintainability. We had a tie for third place between
Understandability and Reusability, and broke the tie in favor of
Reusability because we felt that Understandability was intimately tied to
Maintainability anyways.
Finally we surveyed the entire group and totalled the votes from each of
the subgroups. Heres the results:
- 8: Correctness
- 8: Maintainability
- 3: Reusability
- 2: Efficiency
- 2: Scalability
- 1: Adherence to Standards
We see two strong winners here: Correctness and Maintainability. Every
group voted for them. Beyond that, there is no clear winner. One thing I do
find interesting is that Testability didn’t make the final cut in any
of our groups. Even though our team is developing a strong test driven
design culture, it hasn’t (yet) spread to the rest of the department.
It seems we have our work cut out for us.
|