2 Software quality construction
2.4 Human factors in software quality construction
The literature suggests that software quality can be improved through improving the capability of organizational processes (CMU/SEI-2010-TR-033, 2010) and improving the capability in the individual development processes (ISO/IEC 15504-5, 2012).
Furthermore, the Software Engineering Institute (SEI) suggests that companies should focus on people, methods and tools as critical factors in improving business.
developers or customers. In the real business environment, it is a challenge to meet both customer requirements at a competitive price yet meet the time and desired quality; innovation is one of the success factors providing competitive edge (D’Aniello et al. 2006, Strecker 2009, Edison et al. 2013). According to Miatidis et al. (2008) and Shneiderman (2007), the experience of developers in a particular domain and the time spent in solving various problems associated with customers, methods, requirements, etc. in that domain, has a positive impact on quality construction. Technical skills, such as programming, software testing, etc., are mandatory but the experience in the domain enables the developers to improvise suitable solutions because of their domain knowledge.
Customer satisfaction has never been an easy issue. It is not enough to develop a working product but a product that is also attractive to the customer. This means presenting a product in a manner that the customer will appreciate it. Christoffer and Furuknap (2009) and Patre (2010) discuss the importance of art. The art of design, artifact creation, etc. have a positive influence on product quality.
This study finds creativity, innovation, experience and art as important human factors that influence software quality construction. Therefore, this section presents an insight into creativity, innovation, experience and art in software quality construction.
2.4.1 Creativity
Creativity is “the ability to come up with ideas or artifacts that are new, surprising and valuable” (Boden, 2004, p.1). Piffer (2012) argues that a product that is novel, but not usable cannot be considered creative. This view expands the definition of creativity to include the item “usefulness” of the new idea. On the other hand, Arden et al. (2010) and Zeng et al. (2011) expand the definition of creativity further to include the concept of “beauty” (arts) and “appropriateness”. For example, Zeng et al. (2011, p.25) define creativity as “the goal-oriented individual/team cognitive process that results in a product/service that, being judged as novel and appropriate, evokes people’s intention to purchase, adopt, use, and appreciate it”. Thus, on the basis of the literature, I define creativity as the use of original ideas to create a useful, appropriate and attractive (artistic) product that will evoke people’s intention to purchase, adopt, use, and appreciate it. However, Piffer (2012) argues that it is not only difficult to have one definition of creativity but it is also difficult to measure it by one scale. He further declares that creativity is the sum of accomplishments of some tasks or products or services, which can distinguish one product from others. According to several definitions of creativity (Arden et al., 2010; Boden, 2004; Piffer, 2012; Zeng et al., 2011), software quality can result from developers’ creativity and satisfy the customer even though he was not involved in the requirements elicitation.
2.4.2 Innovation
According to Strecker (2009), innovation is the implementation of new factor combinations (e.g. new goods, new production methods) that lead to significant improvements of existing methods.
The goal of software quality construction is to develop a software product, or improve an existing product for the purpose of satisfying customers (Strecker, 2009).
According to Edison et al. (2013), innovation can be categorized into four areas:
product innovation, process innovation, market innovation and organization innovation. In order to develop a quality product or improve an existing product, innovation is important. For example, Edison et al. (2013) define product innovation as the creation and introduction of new (technologically new or significantly improved) products that are different from existing products as regards architecture, structure, technology, features or performance.
The improvement of products may start by improving the process used in the development process. Edison et al. (2013) define process innovation as the implementation of a new design, analysis or development method that changes the way in which products are created. Recognizing the importance of other roles in addition to technical teams, Edison et al. suggest that there should be innovations on marketing strategies. Edison et al. describe market innovation as the implementation of new or significantly modified marketing methods, strategies and concepts in the product design or packaging, placement, promotion, or pricing. It includes opening up new market opportunities, position innovations (including changes in the context in which the products are introduced) and the implementation of new or significantly modified marketing strategies. Finally, Edison et al. (ibid.) suggest organization innovation, which refers to the implementation of new organizational methods in the firm’s business practices, workplace organization or external relations. It includes changes in the architecture of production and accounts for innovations in management structure, corporate governance, financial systems or employee remuneration systems.
Innovation refers to methods (Strecker, 2009) that lead to better or improved products.
The customers’ demand may be beyond the requirement elicited, because customers may represent their needs in arbitrary expressions or in a vague language that is difficult to interpret precisely. Some customers do not know what they need until they see it. Thus, the software quality construction process may tap into the advantages of innovation along with the involvement of customers for the purpose of meeting their needs.
2.4.3 Experience
Miatidis et al. (2008) describe experience as the knowledge background that concentrates mental stimuli from previous experience, education, know-how and guidelines stemming from the company, or even pure instinct, and enables a person to come up with optimal solutions in problem solving.
The Oxford dictionary (2005) defines experience as the knowledge or skill acquired over a period of time, especially that gained in a particular profession by someone at work.
Fagerholm and Münch (2012) suggest several approaches to addressing ‘experience’.
They consider ‘experience’ to refer to both immediately perceived events as well as the memories of events and the knowledge gained by interpreting and reflecting on remembered events.
The three views of experience in Fagerholm and Münch (2012), Miatidis et al. (2008) and Oxford dictionary (2005) suggest that experience adds value to a product. For example, developing software in the domain where developers have experience enables the developers to optimize solutions, and satisfy the customers better, because they have experience with their customers in that domain. Thus, it is important for the developers to have domain knowledge in addition to software development skills.
2.4.4 Art
Christoffer and Furuknap (2009) describe art as the personal ability of a developer to figure out what is in the mind of a customer and produce code, style, fashion, feature, pattern, design, etc. to meet the needs of that customer in the course of software development.
The Oxford dictionary (2005) defines art as the expression or application of human creative skill and imagination, typically in a visual form such as painting or sculpture, producing works to be appreciated primarily for their beauty or emotional power.
Schaefer (2009) considers design as art. He argues that art exists in the context of design and that it is manifested in the translation of ideas into tangible or visible phenomena of the artifacts. Art can be applied to create a new product or to make an existing product to look new, i.e., "to make the familiar strange and the strange familiar"
(ibid., p. 26). Emphasizing art in relation to design, Schaefer elaborates that design includes the arts of graphic design, architecture, and product design. The art in the design is what creates the differences between designers and products, which hence dictate the quality of such products.
According to Christoffer and Furuknap (2009), art is a way of representation or expression of customers’ specification in software in more meaningful and appealing manner (Oxford, 2005; Schaefer, 2009). Thus, art is an important aspect of software quality construction.