Abstract

Software quality control and quality assurance have close ties with predictability, speed/time, and cost of software development. Process improvement has essential impact on these factors that drive the quality of software project outcomes. While stochastic design and process improvement methodologies based on the Lean Six Sigma can greatly help with process design and improvement, software development processes are substantially different from the processes in the other disciplines such as manufacturing or service operations that produce same/similar product/services. It's not feasible to quantify software processes in a discrete manner that is required by the Six Sigma methodologies. The discrete simulation that is used in operations such as car manufacturing relies on the fact that system activities change state at discrete time points. However this cannot be applied to software development as the activities are not repetitive and they have time estimates at best. The continuous simulation approach lacks the discrete simulation advantage of identifying inefficiencies and improving the processes along the line. Then the discrete simulation has the shortcoming of detecting consequences of improvements late in the process. The model and system introduced in this paper applies Six Sigma methodologies to software processes using hybrid simulation. It uses the relatively detailed empirical data - which the lean software development and agile methodologies produce - to simulate future activities. Such predictions are used as the baseline measurement data to assess the actual results of the continuous improvement activities. The Monte Carlo simulation is used to eliminate dependency on assumption of a specific distribution function for software development activities. The System also includes a framework for collecting process data and creating the empirical knowledge base that optimizes simulation, analytics and data mining. The System collects empirical data on process actors and uses them in simulation to provide estimations that incorporate the human factor that has substantial role in software processes. Over time the System effectively uses machine learning to improve estimation and in some cases to recommend actions to improve performance. The resulted data can be used not only for process improvement but also for evaluating impacts of factors such as outsourcing, geographical base cost, and time zone difference on the process quality.

Full Text
Paper version not known

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call

Disclaimer: All third-party content on this website/platform is and will remain the property of their respective owners and is provided on "as is" basis without any warranties, express or implied. Use of third-party content does not indicate any affiliation, sponsorship with or endorsement by them. Any references to third-party content is to identify the corresponding services and shall be considered fair use under The CopyrightLaw.