A Managerial Perspective for the Software Development Process: Achieving Software Product Quality by the Theory of Constraints

A Managerial Perspective for the Software Development Process: Achieving Software Product Quality by the Theory of Constraints

Semra Birgün (Fenerbahçe University, Turkey) and Zeynep Altan (Beykent University, Turkey)
DOI: 10.4018/978-1-5225-7865-9.ch013


The companies will become the center of business with the Industry 4.0 revolution implementing IT integration, cloud-based applications, data management, rapid decision-making operations, etc. These transformations can be realized with an effective project management, and project managers have a big role in this context. The quality of the software is very important for Industry 4.0, given that it can be as strong as the weakest link in a chain. Collaboration between producers and customers plays an increasingly important role in software processes where agile applications have recently been proposed. In this chapter, for the success of the project manager, Theory of Constraints is applied to remove the problems that may be encountered with the implementation of the agile methods during identifying the problem and determining its solution. The proposed solutions to uncover the reasons not reaching the targeted quality and removing the obstacles will be a guide for software project managers.
Chapter Preview


In today's digital revolution, the structures that define Industry 4.0, such as autonomous robots, smart factories, cybersecurity, cloud computing, system integration etc., are entirely combined with software (Hermann et.al, 2015). Highly qualified software product affects the systems directly to be operated accurately. For this reason, software developers play a major role. Rapid changes in technology and customer requirements require frequent releases of software products. To respond to this problem, agile methodology is generally proposed while developing software (Sun and Schmidt, 2018). All software projects in which the agile approach is used begin with discussions on user stories and continue with opinions on release planning and iteration planning (Cockburn, 2007). Software is a teamwork, and the development of a coding standard is an experience to be constituted by the cooperation of team members. Developers should agree on coding standards, and it is one of the major responsibilities that developers have to realize during the development (Wang, et.al. 2008). During setting the coding standards, it is important to consider the industry standards that is appropriate to the product being developed.

Any interface that is mostly used in an Industry 4.0 project may also be required to use by other systems. An organization may use more than one web services, and these services are probably provided by different systems. It is required to know which services are ready to use. This structure is called as ‘service-based architecture’ and, is widely used by Industry 4.0 projects (Erl, 2016). Thus, a legacy database where it belongs to another company is accessible. For example, the person in charge of a transport company can follow the highway passes and petrol purchases of the trucks that are dispatched. The company can only access the data of other companies by knowing their structure and semantics. However, it is also important to know the renewal time of instruction, if the data to be used is in the batch processing architecture (Tamrakar, et.al, 2017). In order to change a system or to develop a new system, the routine entities existed in the organization must be organized as existing legacy assets. Industry 4.0 solutions provide solutions and services through the cloud for the integration of data, people, workflows and legacy systems (Rennunga et.al., 2016). Product control systems are transformed into open databases and transparent interfaces by service-oriented architecture. Versality is a very important content of smart factories as one of the four fundamental rules of big data (Abaker, et.al., 2014). The standard interfaces and application modules should be able to change in a short time; continuously coming data can also vary its type. Moreover, different simulations will not only save time, but also reduce cost during product development. Moving the simulations done in real programming languages to the hardware environment will also contribute to success (Gokalp, et.al, 2017).

The new industrial products will soon be the combination of communication networks and physical systems to form a single entity. This is called as Cyber-Physical System (CPS), which is an important characteristic of Industry 4.0 (Kagermann. et al., 2013). In the future, the production demands will be supplied by CPSs in other words by smart factories. These processes will be accomplished by standardized and mobile factories, open interfaces, which confirm industrial standards, and plug and procedure methods. All these transformations require agile, flexible, openness to change and efficient approaches. Seamless, modular and extendable systems, and the integration of the used software with the current technology will be emphasized (Chen, et. al., 2017).

Key Terms in this Chapter

Nonfunctional Requirement: Specifies criteria that can be used to judge the operation of a system, rather than specific behaviors.

Versality of Big Data: Reflects how useful the data is, in different scenarios, and in applications for different sets of stakeholders, despite invariably having been created for a certain purpose.

Legacy Systems: Outdated computer systems, programming languages, or application software that are used instead of available upgraded versions.

Grid Computing: A distributed architecture of large numbers of computers connected to solve a complex problem.

Service-Based Architecture: A style of software design where services are provided to the other components by application components through a communication protocol over a network.

Root Cause: A factor that caused a nonconformance and should be permanently eliminated through process improvement.

Agile Manifesto: Uncovering better ways of developing software by doing it and helping others do it.

Software Code Review: An ongoing practice during the development phase in which software developers attend a series of meetings and review code to identify bugs and defects before testing.

Continuous Improvement: The ongoing improvement of products, services, or processes through incremental and breakthrough improvements.

Thinking Process: Enables to create breakthrough solutions by identifying, challenging, and correcting unexamined assumptions.

Cybersecurity: The protection of internet-connected systems including hardware, software, and data from cyberattacks.

Value Stream: The set of all steps from the start of value creation until the delivery of the end result to customer.

Constraints: Restriction on the degree of freedom in providing a solution, including effective global requirements such as limited development resources or a decision by senior management.

Complete Chapter List

Search this Book: