A few months ago, some of you took a survey on C++ developer activities, the results of which will be used to hone in on which areas to improve for the next release of Visual Studio. I wanted to take some time to share with you the preliminary results of the survey.
Without further ado, out of the 47 tasks included on the survey, here’s what we found out! “Aggregate Score” is the composite score from all respondents. “Normalized Score” is adjusted by the number of respondents for which the activity is meaningful for them.
|Top 7 Frequent Tasks By Aggregate Score||(Normalized Score Ranking)|
|1||Jump between header and source||1|
|2||Read [normal C++] code||2|
|4||Use source control||4|
|5||Navigate through project structure||5|
|6||Understand compiler outputs (errors/warnings/etc.)||6|
Survey says, normalized or not, these tasks are the most often performed by C++ developers. Hopefully none of these tasks being here are a surprise!
|Top 7 Tasks Cited As Pain Points By Aggregate Score
||(Normalized Score Ranking)|
|1||Refactor – Rename Item (var, meth, etc.)||2|
|2||Refactor – Extract Method (copy/paste)||3|
|3||Jump between header and source||4|
|4||Refactor – Code Cleanup (copy/paste)||5|
|5||Understand compiler outputs (errors/warnings/etc.)||6|
|6||Open file/Load project – time to edit||10|
|7||Align code to coding style||7|
It’s no surprise that every refactoring topic offered in the survey made it to the top of the pain points list. It is well-known that the lack of support for C++ refactoring is widely felt.
AH, BUT WHAT’S THIS?! Many of you are probably wondering which task made it to the top of the normalized list, and you should! Take a look for yourself:
Of the 54 (likely graphics) developers that had the opportunity to voice concerns over writing and compiling shader code, a whopping one-fifth of them said it was a pain point. Most of you (77% of you, in fact =P) probably saw that task and said “What the heck is shader code, I don’t do that.” Well, your graphics-developing colleagues do that, and it’s a pain point for them J.
For those who love reading some of the “verbatims” we receive, here are a few “pain point verbatims” reflecting common themes. Note that since we asked specifically for pain points, we did not receive positive statements as we often do with more general “what else would you like to share” feedback questions:
- STL errors are seriously convoluted. I had one last week where a modification on line 500 caused an “error” on line 100. And the error was in a different function!
- My solution takes a long time to load. It can be slow editing large projects. [VS2012]
- Layouts sometimes break [in Visual Studio 2012].
- The VS project system does not work well for us [because of project size, cross platform issues, external-tooling, culture, or other challenges].
- hlsl/fxc compiler needs better integration.
For everyone who took the time to take this survey, thank you so much! The median time to complete the survey was 18 minutes; it was a very involved survey!
It so happens that the Visual C++ Team is exploring new refactoring tools (have you seen the new rename/refactor extension?). You can be the judge on its relation to these results.