Modern integrated development environments (IDE) such as Microsoft Visual Studio and Eclipse, and languages, such as Java and .Net, represent a far step ahead from the legacy development environments such as grep and Emacs. One would assume that the productivity of programmers has been dramatically improved. To get a more realistic assessment of improvements, after more than ten years on an investigation on programmer productivity, we recently embarked into an investigation of a group of programmers in a software company using all the modern features of Visual Studio. We found that indeed there were significant improvements. But, at the same time, other side effects made the overall improvement not so clear. The complexity of the development environment and its associated libraries and ready-made components represent a significant new source of loss of productivity that manifests the most in the cost of debugging and learning. A better understanding of the challenges associated with adopting new development technologies may rescue some of the gain in productivity.
Complexity of software has been largely studied as a property of the code. We argue instead that complexity is a psychological phenomenon and should be studied from this perspective. The psychological literature however is structured in a way making of little practical usefulness. We propose a model based on isolated psychological facts connected by intuitive reasoning to fight complexity in a practical way. In this model, complexity corresponds to occurrences of cognitive overload in the working memory (WM), the bottleneck of cognition. Reducing complexity can be achieved by relieving the WM of some load by explicitly representing the internal mental constructs using external media such as software tools. We present a case study in which we used this model to produce a tool to reduce the complexity in program comprehension for large software systems. The tool was used in an industrial setting. We present here the mental constructs targeted and the details of the tool.
scite is a Brooklyn-based organization that helps researchers better discover and understand research articles through Smart Citations–citations that display the context of the citation and describe whether the article provides supporting or contrasting evidence. scite is used by students and researchers from around the world and is funded in part by the National Science Foundation and the National Institute on Drug Abuse of the National Institutes of Health.