Research Ideas and Outcomes :
Grant Proposal
|
Corresponding author:
Received: 15 Apr 2016 | Published: 20 Apr 2016
© 2016 Daniel Graziotin
This is an open access article distributed under the terms of the Creative Commons Attribution License (CC BY 4.0), which permits unrestricted use, distribution, and reproduction in any medium, provided the original author and source are credited.
Citation:
Graziotin D (2016) Software quality information needs. Research Ideas and Outcomes 2: e8865. https://doi.org/10.3897/rio.2.e8865
|
Modern software methodologies, e.g., agile and continuous integration and deployment, rely on frequent feedback loops to respond to sudden changes. Improvements to feedback, development activities, and quality rely on information needs. We found a lack of understanding on the information needs of software engineers when the software quality is the main concern. I propose the term "software quality information needs" to refer to a software engineer’s eagerness to define, locate, obtain, and use information to satisfy a conscious or unconscious concern towards software quality. I want to understand what information about software quality does a developer need while performing code changes or designing new parts of a system. For understanding the broad research question, I propose three sub-questions, namely (1) How can we conceptualize information needs when dealing with software quality? (2) What information is needed when dealing with software quality? and (3) How can software quality information needs be detected unobtrusively through behavioral patterns? I propose a 24 months plan for a research fellowship comprising of three empirical studies, which will involve 120 students in computer science and the companies Daimler, Porsche, and Bosch. The studies will make use of multidisciplinary research in software engineering and behavioral science. The theoretical results of the execution of this proposal are the software quality information needs theory and instances, which will add to the body of knowledge in software engineering. The practical implications might be large. Providing a software developer with the right kind of information about the current state of and the effect of changes on software quality can prevent catastrophic software failures and avoid opening up security holes.
information needs, software quality, process theory, affective reactions, behavioral patterns
Software quality is a complex, multifaceted concept that is difficult to define because it depends on the specifics of organizations, projects, and people (
Quality control emerged from the manufacturing area. Quality control means inspecting products during and after production to detect problems and ensure a high level of quality.
The concept of information needs was coined in the areas of of library information systems and documentation.
The only mentioning of information needs theory in software engineering has been by
The state of the art analysis has shown that there is a lack of understanding on the information needs of software engineers when the software quality is the main concern. Therefore, for this proposal, I build upon
The present fellowship proposal is a standalone project. The proposal is self-contained. However, this proposal is framed in the context of a DFG grant proposal by
While I have never worked on the specific topic of information needs and software quality, I consider my previous research experience to be much related to both the topics and the required theoretical and methodological underpinnings. For my PhD thesis work, I conducted much multidisciplinary research in software engineering with psychology. I have proposed the term psychoempirical software engineering and guidelines to conduct studies in empirical software engineering with psychology theory and measurements (
For example, the first study (
The next study (
The third study (
The following are the research objectives of the present proposal.
Create a concept for software quality information needs (including "feedback'')
A solid theoretical basis to conceptualize software quality information needs is required to deeply understand the phenomena and their complex interrelatedness. The acquired understanding will have theoretical implications for software engineering, as it will spawn new research activities building upon the currently missing building blocks for software quality information needs. We need the theoretical understanding for the next objectives, as the knowledge will enable the operationalization of the concept into measurable metrics.
Operationalize the software quality information needs concept into measurable metrics
We will exploit the acquired theoretical basis to operationalize the concept into measurable metrics. The metrics will be useful for quantitative representations (thus, assessment) of the software quality information needs, towards the creation of useful software quality feedbacks that are presented in the right context and at the right moment.
Develop unobtrusive measurement techniques for software quality information needs
Once the concept of software quality information needs is operationalized into quantitative representation, we will need to develop effective measurement techniques. Software development is an intellectual work that is undermined by useless and disturbing interruptions. Therefore, we will develop measurement techniques that are as unobtrusive as possible.
Evaluate the usefulness of the obtained metrics and measurement techniques
Our final aim is to conduct research that is useful to the industry and the society. Therefore, the development of the measurement techniques for the software quality information needs has to be accompanied by a practitioner-based validation of their usefulness. Once a validation of the usefulness measurement techniques is reached, we will consider the project as a very successful one.
My research approach is mostly of empirical stance, and I identify my work in the discipline of empirical software engineering. Therefore, my proposed work builds upon methods that gather and analyze empirical evidence.
First, I intend to acquire a general understanding of the phenomena under study, as the construct needs to be explored, together with its causes and effects. The entire process concerning software quality information needs should be understood and modeled. Second, I intend to gather instances of software quality information needs to be employed in the theory and for the foreseen tool to improve the software quality. Third, I want to investigate how the process underlying software quality information needs and its instances can be gathered via behavioral metrics. A mixed research approach will be adopted. The mixed method approach recognizes that all methods have their limitations, thus it encourage triangulation through multiple data collection and analysis (
Agile development and continuous quality control encompass the concept of short feedback loops. These feedback loops should be provided as quickly as possible. However, they still have a (sometimes fixed) length of minutes, hours, or days. The research shall be conducted at the Institute of Software Technology at the University of Stuttgart, where they work on providing immediate feedback to developers, which is related to software quality. Concretely, the institute is working on tools and methods to enhance the current state of just-in-time (as the code is written) source code analysis results in the context of software quality.
I intend to work on the feedback itself for understanding what constitutes a useful feedback as an answer to software quality information needs. My aim requires a deep understanding of the software developers' information needs and their detection while the developers deal with software quality issue. Thus, this fellowship proposal comprises of the stages of (1) conceptualization of the construct software quality information needs, (2) unpacking of the constructs into detectable (i.e., measurable) metrics to detect the information needs of a developer and to satisfy the information needs, (3) development of measurement and detection techniques that are as little intrusive as possible, and (4) empirically evaluating the usefulness of the obtained measurements to represent an information need.
On the practical side, the results of the proposed research activities may help to reduce the failures of software that we experience on a daily basis, including security concerns. I will now describe a scenario that will help to envision the applicability of the results of this proposal.
Anne is a software developer who is working on a banking application. Anne uses her favorite integrated development environment (IDE) for the development process. The IDE has a plugin which is created as a result of the proposed research activities, and it is able to detect software quality information needs and provide context-based, relevant feedback. Anne is working at a system routine that makes use of an Internet connection. She is not satisfied with the quality of the source code. Suddenly, a message in her IDE is telling her that the routine she is working on might contain some quality issues. Anne is surprised but at the same time relieved that the system has detected her software quality information needs. One issue is that she is employing a design pattern that is not frequently employed in similar cases. She is offered to browse some StackOverflow.com related questions and answers regarding the design pattern. Another issue is that she created part of the procedure by cloning code from another part of the project. The tool offers her help to refactor the cloned code. For the first issue, Anne acquires valuable information related to her issue. She is then able to use that information to fix the issues with her routine. For the second issue, Anne successfully refactors the code.
Answering the following research questions will enable the creation of tools to support the envisioned scenario.
How can we conceptualize information needs when dealing with software quality?
The state of the art analysis has shown that some questions regarding information needs and software quality have been identified. However, we do not know what constitutes an information need in the context of software quality activities. We need a solid theoretical basis about what information about quality developers need during their work. Together with my peers, I will build on the existing work on information needs in software engineering and other disciplines. The answer to this research questions will be enabled by developing a theory for quality information needs based on existing information needs theories, results from existing studies and our own studies, which are described in the next section.
What information is needed when dealing with software quality?
In addition to conceptualizing the construct of software quality information needs, and its antecedents and consequences, there is the need to gather and analyze a significant amount of instances of information needs. Software developers require several pieces of information when dealing with the quality of the software, like a customer requirement or who is working on a chunk of code being refactored. Some studies have been conducted for eliciting instances of information needs of software developers, e.g., (
Understanding and generalizing the construct and the instances of software quality information needs will enable the creation of better tools for supporting the quality improvement programs. As our scenario indicates, the software development tools will greatly benefit by this study research. In our scenario, the tool was able to detect an information need, its antecedents, and its context. Answering the research question and the related sub-question will enable us to create context-aware functionalities for enhancing the software quality of source code and the resulting programs.
The originality of the research question and the related sub-question is very high. To my understanding, there have not been any studies about software quality information needs. Although few studies have gathered instances of information needs for software developers, e.g., (
How can software quality information needs be detected unobtrusively through behavioral patterns?
Once a meaningful theoretical conceptualization for the construct software quality information needs is reached, the next step will be to study mechanisms for ensuring their detection. As software development is intellectual and cognitive based (
The ability to detect information needs unobtrusively through behavioral patterns and affective reactions will enable the creation of tools that are are valuable to developers and will not break the flow while they develop software. As our scenario indicates, the tool was able to detect the information need before Anne was realizing it. This was achieved by observing Anne's behavior while she was developing. Speculated examples may be changes in the typing patterns and repeated line highlights over the code. Answering the research question will also enable future avenues, e.g., a distributed communication of information needs among a software development team.
There has been a recent literature review of psychological studies in software engineering by
The research question How can we conceptualize information needs when dealing with software quality? will be answered empirically in work package 1 by an observational study to investigate the small-scale information needs during typical development tasks. The study, represented as the first box in Fig.
The research sub-question What information is needed when dealing with software quality? will partially be answered in work package 2 by the previously described study. In this case, however, we want to gather and prioritize instances of software quality information needs. The most suitable empirical strategy for this purpose is the survey. Surveys are a system for collecting information from or about people to describe, compare, or explain their knowledge, attitudes, and behavior (
The research question How can software quality information needs be detected unobtrusively through behavioral patterns? will be answered in work package 3 through the conduction of a case study with interventions, which may be considered as in-field experiments or action research by some peers. Case studies, as defined by
The three proposed studies are not of trivial nature, but their execution and analysis of the data will be unique for unlocking new avenues of research in software quality through the use of multidisciplinary research. The fellowship host's location and connections enable the engagement of different context (high number of students, Daimler, Porsche, and Bosch) that permit the gathering of unique and rich data. The theoretical implications of the execution of this proposal are the software quality information needs theory and instances, which will add to the body of knowledge in software engineering. As shown at the right side of Fig.
I would like to thank Stefan Wagner for reviewing this proposal and for providing much useful feedback to it.
Institute of Software Technology, University of Stuttgart, Germany
The present fellowship proposal assumes and implies a full compliance to the Declaration of Helsinki of ethical principles regarding human experimentation (
I am a subject editor at Research Ideas and Outcomes (RIO). I declare that I have no competing interests with respect to the present fellowship proposal.