The success of the LEAN approach to software development was adopted following the implementation of the LEAN approach in manufacturing as was implemented by Toyota. The approach follows seven principles that are implemented with the aim of developing efficient software development models. These principles are; elimination of waste, amplification of learning, postponement of decision as much as possible, fast delivery, empowering the team, building integrity, and focus on the whole picture. In light of these principles, and as applied in software development, this paper argues why, on the one hand, RUP is the most efficient method which reduces waste to the maximum, and on the other hand, why Scrum is a more efficient alternative. In order to do this, the paper has been divided into two sections. The first paragraph will address RUP’s superiority over Scrum in waste reduction and on the second section, the superiority of Scrum over RUP with regards to waste reduction.
RUP
Rational Unified Process is normally considered a more effective method than Scrum method in software development in terms of waste reduction; because, being an object oriented method – which are methods that are organized around software components/data as opposed to software actions or logical sequences – more focus is placed on the requirements and design process which makes the end product of the development process to be more specific to the users’ needs (Flora and Chande 3628). RUP method is a method that was mostly used for large, object oriented projects but is normally slimmed in order to make it LEAN. The method includes detailed processes which seek to understand the requirements and produce the best possible address for the requirements using the available resources at through the most efficient method. In so doing, RUP focuses on the component design of the software in order to make it easier to develop once the design has been agreed upon by the user and the relevant stakeholders (Flora and Chande 3632). The focus on requirements engineering stems from the need to make the software work to the benefit of the user without the need to revisit development after implementation in order to correct functionality issues.
Scrum
Scrum is a development process management method. The method does not, within its confines, describe the technical development activities (Kupiainen, Mäntylä and Itkonen 148). The objective of the method is to provide avenues where the team will achieve self-organization. The self-organization process will require adaptation to the specificity of the project (Kupiainen, Mäntylä and Itkonen 160). The rationale behind the method is that in the presence of chaos and complexity, the team will self-adjust in order to meet the complexities. This avoids the situation where a team is set for a specific purpose and to carry out tasks in a specific way and in the presence of chaos and complexity, the team fails to achieve due to the absence of flexibility. This therefore means that, under scrum, the assumption is that the team dynamics will change over time as a result of the changing environment within which the team operates. Scrum is seen as a more efficient method in software development as it is more efficient in reducing waste. Waste in software development often arises due to the complexity of the development process, as well as the complexity of the stakeholder requirements. Where the team does not mirror this agility, often there arises waste is terms of time consumed in prototyping as well as resources used in development (Kupiainen, Mäntylä and Itkonen 149). In cases where the stakeholder requirements are not definite, there is need for quick adaptability of the team in order to meet this demands. This adaptability can only be achieved where the team is not confined within specific technical structures and technical activity diagrams and hence this reduces the occurrence of waste and thus making Scrum method a more efficient method than RUP in the reduction of waste. It is this aspect of the method that makes it a more agile method and hence reduces more waste in the process.
Conclusion
The objective of this paper was to evaluate the advantages and disadvantages of RUP and Scrum as LEAN processes of software development. In the discussion, it was noted that RUP is a more methodological step by step process which reduces waste through focus on requirements and design which results in a software that does not require post-implementation adjustments. On the other hand, Scrum was established to reduce more waste through its principles of letting the team adapt to the development environment. In conclusion, while both methods offer different solutions to the problem of complex software development environment, the applicability of each method is dependent on the nature of the project.
References
Flora, H. K. and S. V. Chande. “A Systematic Study on Agile Software Development Methodologies and Practices.” International Journal of Computer Science and Information Technologies, 5(3) (2014): 3626-3637.
Kupiainen, E., M. V. Mäntylä and J. Itkonen. “Using metrics in Agile and Lean Software Development–A systematic literature review of industrial studies.” Information and Software Technology, 62 (2015): 143-163