Tuesday, May 5, 2020

System Engineering SDLC

Question: Write about real world cases that involves organisations that used agile development and how they benefited from it as well as how some organisation failed to succeed using the agile development? Answer: 1. Introduction SDLC is the acronym of Software Development Life Cycle that consists of a series of planned activities that is used in developing the software products. SDLC aims in producing superior quality of software that meets the expectations of the customers and also completes within time as well as within estimated cost budget. There are number of SDLC models such as Waterfall Model, Iterative Model, Spiral Model, and Agile Development Model etc. that are so designed in order to produce superior software products as per the requirement of the customers. Here, each of these models has unique steps that prove both advantageous as well as failures to the different companies. In this assignment, the researcher will be dealing with Agile Software Development along with its working within different organizations. Moreover, the advantages as well as disadvantages of Agile Software Development will also be discussed followed by suitable recommendations. 1.1 Agile Software Development Agile Software Development model is a mixture of both iterative as well as incremental SDLC models that focuses on the development adaptability along with satisfaction of the customers. In Agile method, the software product is broken down into several incremental builds that are given in iterations and hence software is produced in incremental as well as rapid cycles. In this model, each of the iteration last for nearly 1-3 weeks and hence takes into account the various areas such as planning, analysis, designing, coding, testing and acceptance testing. In this model, each and every steps of the development are thereby tested in order to ensure whether the quality of the software is maintained or not. There are several Agile SDLC methodologies that includes Extreme Programming, Scrum, Lean Development, Feature-Driven Development and Dynamic Systems Development Method.Each of the agile methods is unique in nature and thereby shares core values and common vision. The Agile SDLC when deployed by an organization works on several principles such as customer satisfactory, delivery of the software frequently and change in requirements . Moreover, Agile SDLC also have principles that focuses on daily co-operation between developers and business people, simple in nature, self-organized teams and also easy adaptation of the changing circumstances. Agile model is very unique and very specific in their approach and involves continuous planning, testing and altering. Moreover in agile SDLC, the tasks are segregated into small time frames that deliver precise characteristics for a release. 1.2 Working of Agile Software Development within the organizations Agile Software Development is implemented within the organization whenever new changes need to be implemented. The new changes can easily be implemented at low cost and hence very limited planning is required in order to start the project. Agile SDLC works best in those organizations that are dynamic in nature and have the capacity to adapt the change as well as work on the newly accepted environment. Companies like SCH Group in UK previously adopted Waterfall Model that is a 4 step process that included Analysis, Design, Coding and Testing. So, SCH Group focused on the change in quality from Analysis, Designing, Coding and Testing. The detection as well as fixing is done at the end phase of the project during system as well as regression testing. In case of continual improvement, the lessons that are learnt from the previous release were implemented in the next release. Therefore, this made previous release of the software faulty and hence the new software product that is to be released may also cause arise of new problems. Hence, this became a chain process where problems are not resolved totally and hence faults are found out in every software product. SCH Group suffered problem as Waterfall Model never identifies risk and hence in the testing phase, problems arise and steps are taken for removing it. The postmortem of the software is done after the release of the product along with feedbacks is also taken after the product is released. These created huge problems to SCH Group as the product never satisfied the customers since new and changing environment helped in resolving old problems but gave rise to new problems. But when, Agile SDLC method was implemented in SCH Group, and then at any time, the focus was on the quality of all the aspects of SDLC. In order to maintain the quality, the software developers detect the faults in every sprint and fix it accordingly which is followed by stabilization. Moreover, the developers while using Agile SDLC method are also keen in learning sessions from previous sprints and thereby the learned lessons are implemented in the next sprint. This thereby makes the software product free of error and hence satisfies the customers at the time of delivery. The postmortem of the product is thereby done at the end of every sprint and presented to the customers. The customer feedbacks are also taken and hence changes in the sprints are made as per the feedback of the customers. This therefore brought success to SCH Group and hence their software products became easily acceptable by the customers. In addition to this in Waterfall model the ownership change from phase to phase and thereby role to role. The Project Manager is responsible for the whole delivery. But in contrast to this, in Agile SDLC model, the entire team is totally responsible for completion of the whole project that takes into account the analysis, designing, development, testing followed by demo. On the other hand, another example can be cited from Attenda IT Services that previously used Iterative SDLC model but got shifted to Agile SDLC model. When the company adopted Iterative Model the quality was maintained through early detection as well as fixation in order to adopt new features. This was followed by regression testing. When agile model was adopted then in order to control quality, detection and fixation of each of the sprint is done which is followed by stabilization. Moreover, previously when Attenda used Iterative model, the utilization of the resources are totally based on the requirement and need basis. But when agile method was implemented, then everybody in the team was ready to complete any part of it for completing the product successfully. Previously, when Attenda utilized Iterative Model, then minimum number of the resources worked on the analysis as well as design part of the product. The rest resources were engaged on coding as well as testing process. In contrast to this in case of agile method, the whole team is subdivided into small teams where each and every team is totally focused on the completion of all the aspects. Other than this, in case of regression testing, the partial coverage is done during iteration and full coverage is done at the time of stabilization. But in contrast to this when Agile SDLC model was initiated in Attenda, and then the full coverage was done within the sprint. At the time of completion in case of Iterative mode, the Definition of Done (DOD) the analysis and design are done in one phase and development and testing were done in another phase. But in disparity when Attenda used agile model, then DOD is measured by its capability, demonstration as well as delivery to the outside world. Apart from this, the researcher also focused on the failures of the Agile SDLC Model where some of the giant companies like Google have pointed out. Agile SDLC lifecycle is short termed as well as not at all suitable in handling the complex dependencies. Moreover, there are more risks that are comprised of sustainability, maintainability as well as extensibility. Other than this, the agile model is more or less micromanagement in nature. It takes a lot of time in testing each of the sprints and lags behind the time of delivering the products to the respective customers. In addition to this, in Agile Model, it has high charge of false positive rates those trends to turn the good workers into low performers. Google also has mentioned that this model punishes the RD team and therefore hurts the best of best engineers at the same time. This is because, here, there is no room to fail nor have any space to experiment. Kofax had initially undertaken Agile SDLC Model that proved to be a disaster to the company. This is because, since, Kofax is a large company; its projects are comparatively large and complex. So, when Agile Model was used in this, it was seen that the model failed in handling the complex projects. Moreover, since this model strongly depends on the customer feedback and interaction at the end of each of the sprint, so it sometimes proves to be a disaster if client is not clear of the specifications. In addition to this, the model is highly dependent on individuals and hence there is a nominal requirement of documentation. For this reason, new technologies are not transferred to the new team member that later proves quite challenging in carrying out the other projects. Another example can be cited from the company named Micro Focus where implementation of agile model was a failure and needed immediate attention in order to change the model. Though the model involves active user involvement and close collaboration, but it is also necessary to complete the work in specific and given time period. As a result, the agile model fails to deliver the software products in given period of time. Agile requirements are not at sufficient enough and thereby eliminate the effort that is wasted on the deliverables that do not last. Again, since testing is integrated throughout the product lifecycle, the risks of failures reduce which also reduces of exploring new ideas. The cost also increases and hence fresh ideas are never explored that leads to the unexpected increase in time limit. For these reasons, this model failed in Micro Focus since usage of these models made the completion of the products unpredictable as well as increase in cost. 1.3 Advantages and Disadvantages of Agile Software Development There are several advantages and disadvantages of Agile SDLC model and thereby brought success and failures to different companies when they adapted this model. From the advantageous point of view, one can say that Agile SDLC model is quite transparent that takes into account the resource types as well as resource dedication. This model promotes the business value primarily and gives emphasizes on the functionalities. Moreover, this model also promotes a huge communication between the clients and development team. The collaborative effort of all the team members while completing the software product is one of the greatest strength of this model. Moreover, this model is highly flexible, easily manageable and very less planning is required that makes the model quite advantageous to use. Other than this, the resource requirements are also minimum, acceptance of easy changes and rapid demonstration of the changes also helps organization adopt this model and succeed in using it. On the other hand, disadvantages of this model that brings disadvantage to the model are that emphasis on designing and documentation are lacking. Moreover, the project also sometimes gets tracked off if the customers are not clear on their requirement side. In addition to this, this lifecycle is quite a complicated sales cycle that involves a long time completion of the project along with expenditure of quite a good sum of money. Other than this, the senior programmers are only efficient and capable of taking such kind of decisions that are essential at the time of development. As a result, this model gives no scope to the new programmers to handle the project or work independently. So, flow of fresh ideas is also not flowing within the project completion. Moreover, the clients have different backgrounds and products as well as different learning curves. But application of this model makes the learning curve constant and hence, same methods ate pallid to all the products regardless of the learning of the customers. 1.4 Recommendations As per the advantages and disadvantages, successes and failures that the researcher has discussed in this context, several recommendations can also be done to minimize the effects of the cons of this model. Scopes need to be given in order to explore the new ideas which if failed gives new ways of success. Other than this, the new programmers also need to be given scope to explore the model in order to free flow the new and innovative ways. Moreover, the model should also spend less on testing at every sprint and complete the project in time. This will save both expenditure of money as well as will also save time. Interaction with the clients is necessary but that also should be in limit. Whenever the programmers will be seeing that the customers are not clear of the product and going off the track, it is their responsibility to bring them n track and make them understand what wrong in their idea. 1.5 Conclusion This assignment deals with the Agile Software Development Cycle that is a perfect combo of both iterative model and incremental model that have both pros and cons. The pros are that it is highly transparent, communicable and promotes teamwork as well as cross training. Other than this, this model is easily managed, highly flexible and requires less planning. Therefore, these advantages bring success to the organizations. On the other hand, the several disadvantages are time consuming as well as depend heavily on the individuals. Since, this process takes a long time in both testing and correction, possible risks are not at all taken that also leads to no-flow of knowledge. Moreover this process also consumes a lot of money while correcting the mistakes after every sprint. References Abdul M and Shahanawaj D, 'Managing Knowledge In Development Of Agile Software' (2011) 2 IJACSA Aziz N and Abdullah R, 'An Ontological Model Of Experience-Based Knowledge Management In Agile Software Development Environment' (2015) 3 LNSE Buragga K and Zaman N, Software Development Techniques For Constructive Information Systems Design (Information Science Reference 2013) Carnevali L, Ridi L and Vicario E, 'Putting Preemptive Time Petri Nets To Work In A V-Model SW Life Cycle' (2011) 37 IIEEE Trans. Software Eng. Feitelson D, 'Perpetual Development: A Model Of The Linux Kernel Life Cycle' (2012) 85 Journal of Systems and Software Franky M, 'Agile Management And Development Of Software Projects Based On Collaborative Environments' (2011) 36 SIGSOFT Softw. Eng. Notes Ganpatrao Sabale R, 'Comparative Study Of Prototype Model For Software Engineering With System Development Life Cycle' (2012) 02 IOSRJEN Greer D and Hamon Y, 'Agile Software Development' (2011) 41 Software: Practice and Experience Hoda R, Noble J and Marshall S, 'Documentation Strategies On Agile Software Development Projects' (2012) 1 International Journal of Agile and Extreme Software Development Janus A, 'Towards A Common Agile Software Development Model (ASDM)' (2012) 37 SIGSOFT Softw. Eng. Notes Kruchten P, 'Contextualizing Agile Software Development' (2011) 25 J. Softw.: Evol. and Proc. Mahmood Z and Saeed S, Software Engineering Frameworks For The Cloud Computing Paradigm (Springer 2013) Mandal S, Kandar S and Ray P, 'Open Incremental Model A Open Source Software Development Life Cycle Model 'OSDLC'' (2011) 21 International Journal of Computer Applications Misra S and Singh V, 'Conceptualizing Open Agile Software Development Life Cycle (OASDLC) Model' (2015) 32 Int J Qual Reliability Mgmt Oshana R and Kraeling M, Software Engineering For Embedded Systems (Newnes 2013) R.Raval R and M Rathod H, 'Improvements In Agile Model Using Hybrid Theory For Software Development In Software Engineering' (2014) 90 International Journal of Computer Applications Rivero J and others, 'Mockup-Driven Development: Providing Agile Support For Model-Driven Web Engineering' (2014) 56 Information and Software Technology Santos V, Goldman A and de Souza C, 'Fostering Effective Inter-Team Knowledge Sharing In Agile Software Development' [2014] Empirical Software Engineering Wysocki R, Effective Project Management (Wiley 2012) Zhang Y and Patel S, 'Agile Model-Driven Development In Practice' (2011) 28 IEEE Softwarw.

No comments:

Post a Comment