![]() |
|
0. None | |
1. 1-3 yrs | |
2. 4-8 yrs | |
3. 9-12 yrs | |
4. 13-15 yrs | |
5. 16-20 yrs | |
6. 20+ yrs |
![]() |
|
0. None | |
1. 1-3 yrs | |
2. 4-8 yrs | |
3. 9-12 yrs | |
4. 13-15 yrs | |
5. 16-20 yrs | |
6. 20+ yrs |
![]() |
|
0. C++ | |
1. C# | |
2. Java | |
3. Smalltalk | |
4. Python | |
5. Delphi | |
6. Ruby | |
7. Other |
![]() |
|
0. Windows (any versions) | |
1. MacOS (any versions) | |
2. Unix (any variants - Linux, xBSD, Solaris) | |
3. Other |
![]() |
|
0. Leased Consultancy (e.g. you sit at your company's Customer site doing development for the customer) | |
1. Bespoke Development (Customer-Developer relationship, e.g. where you develop product that are ordered/commissioned by the customer but primarily sit at your company's site) | |
2. Off-the-shelf Products/Components Development (e.g. mass-market products, for example games, end-user software) | |
3. Embedded/Bundles Software Development (e.g. your software is a part of a larger product offering, for example a robot, a car etc.) | |
4. Other |
![]() |
|
0. Requirements Engineering | |
1. Design | |
2. Testing | |
3. Architect | |
4. Programmer | |
5. Project Management | |
6. Quality Assurance | |
7. Other |
![]() |
|
0. Professional development courses | |
1. Trade Certificate | |
2. Bachelors | |
3. Masters | |
4. PhD | |
5. None |
![]() |
|
0. I always make it private (inaccessible outside the class) | |
1. I usually make it private | |
2. I never make it private. | |
3. I don't think about it, I pick whatever is convenient | |
4. I don't know what you mean/None of the options describe my thinking |
![]() |
|
0. I always provide "getters" and "setters" | |
1. I avoid "getters" and "setters" wherever possible | |
2. I prefer to avoid "getters" and "setters" but will provide them rather than make large changes to avoid them | |
3. I don't think about it | |
4. I don't know what you mean |
![]() |
|
0. I always try to avoid adding references to classes that are not already being used by the class | |
1. I make some attempt to avoid adding references to classes that are not already being used by the class | |
2. I don't think about it | |
3. I don't know what you mean |
![]() |
|
0. I only consider adding code that is clearly related to the services the class already provides | |
1. I prefer to add code that is clearly related to the services the class already provides but will add less related code if it is more convenient | |
2. I don't think about it | |
3. I don't know what you mean |
1 | 2 | 3 | 4 | 5 | 6 | |
1. Making design decisions to make it easier to understand the code | 68.3% | 17.2% | 6.7% | 2.6% | 1.8% | 3.5% |
2. Making design decisions to make the code faster | 9.9% | 23.2% | 26.1% | 22.2% | 12.3% | 6.1% |
3. Making design decisions to make it harder to hack into systems (external intrusion) | 5.5% | 10.8% | 24.8% | 31.2% | 18.2% | 9.6% |
4. Making design decisions to make it harder to change code | 3.7% | 3.8% | 7.4% | 14.3% | 34.8% | 36.0% |
5. Making design decisions to make it easier to test code | 8.4% | 40.9% | 24.2% | 17.0% | 7.7% | 1.8% |
6. Doing what the professor/school/class told me to do | 4.3% | 4.1% | 10.8% | 12.7% | 25.2% | 43.0% |
![]() |
|
0. I always try to determine how many methods a class has | |
1. I will note classes that seem to have a lot of methods | |
2. The number of methods is usually not relevant for me | |
3. I don't think about it | |
4. I don't know what you mean |
![]() |
|
0. There should be never more than about N methods. | |
1. I try to avoid having more than about N methods in a class, but will allow exceptions in extreme circumstances. | |
2. I prefer to avoid having more than N methods in a class but I am not fanatical about it. | |
3. I don't really think about how many methods there are in a class but prefer to avoid having classes with more than N methods. | |
4. I don't think there should be any limit on the number of methods in a class. |
Number in category | 38 |
Median | 10 |
Smallest (non-zero) | 1 |
Largest | 400 |
Most common | 14 (for N=10) |
Average | 23.3 |
Number in category | 2281 |
Median | 15 |
Smallest (non-zero) | 2 |
Largest | 1000 |
Most common | 608 (for N=10) |
Average | 18.2 |
![]() |
|
0. Always | |
1. Most of the time | |
2. Only if it is obvious how to refactor the class | |
3. Only if I have nothing else to do | |
4. Only if someone forces me to | |
5. Hardly ever |
![]() |
|
0. I always try to determine how deep a class is | |
1. I usually have a rough idea of the depth of a class | |
2. It is not relevant for me | |
3. I don't know what you mean |
![]() |
|
0. No class should be deeper than N | |
1. I try to avoid having classes deeper than N but will allow it in extreme circumstances. | |
2. I prefer not to have classes deeper than N but I am not fanatical about it. | |
3. I don't really think about how deep classes are but probably would avoid having them deeper than N | |
4. I do not think there should be a limit to the depth of a class. |
Number in category | 211 |
Median | 3 |
Smallest (non-zero) | 2 |
Largest | 10 |
Most common | 78 (for N=3) |
Average | 3.4 |
Number in category | 2527 |
Median | 4 |
Smallest (non-zero) | 2 |
Largest | 999 |
Most common | 846 (for N=3) |
Average | 4.9 |
![]() |
|
0. Always | |
1. Most of the time | |
2. Only if it is reasonably clear how to do the refactoring | |
3. Only if I don't have anything else to do | |
4. Only if someone forces me to | |
5. Hardly ever |
![]() |
|
0. I find classes that are very deep to be always noticeably more difficult to use than those near the top of the hierarchy | |
1. I find classes that are very deep to usually be more difficult to use than those near the top but sometimes deep classes are no harder to use than shallow ones. | |
2. I sometimes find classes that are very deep to be more difficult that those near the top but usually there is not much difference | |
3. I almost never notice the depth of a class as having any impact on how difficult it is to use. |
![]() |
|
0. Never (0%) | |
1. Rarely (<10%) | |
2. Sometimes (<25%) | |
3. Less than half the time (<50%) | |
4. More than half the time (>=50%) | |
5. Much of the time (>75%) | |
6. Almost all of the time (>90%) | |
7. All the time (100%) |