Lean Software Development and Enhancing Software Development Projects
Introduction
Lean Software Development is essentially a transformation of lean manufacturing and IT principles and is a branch of agile development framework. The core concept here being eliminating waste. At the same time CMMI is a capability maturity model integration which is a process improvement technique that is used to bring about an improvement in a project, process or the entire organization for that matter. In this paper, we will first start, first, the background of lean will be explored i.e., Agile and CMMI. After that, how Lean and CMMI, although two techniques for an entirely different purpose could still work in conjunction to enhance a software development project shall be explored.
Background
Agile is an iterative based software development methodology. In this particular approach a certain functionality of the software is developed in two to four numbers. The client or the partner for whom the system or the software is being developed stays in constant communication throughout as their feedback forms the basis of the next iteration. Since the feedbacks are readily and easily available, the final outcome rarely turns out to be undesirable for the clients.
Agile methods as mentioned earlier break the tasks into smaller increments with minimum planning and never involve any long-term planning. The iterations are a short-time frame boxes and they typically last four weeks. The work breakdown structure is also discarded and the user stories which express high level requirements are scheduled directly in the release plan to become the final product increments. Also, in Agile development planning is horizontal and across team in comparison...
... middle of paper ...
...ors.pdf
Jeffrey L. Dutton. (n.d.). An Integrated Framework for Performance Excellence. Retrieved from http://www.crosstalkonline.org: http://www.crosstalkonline.org/storage/issue-archives/2010/201001/201001-Dutton.pdf
Joyce, P. M. (n.d.). Lean Software Management: BBC Worldwide. Retrieved from http://leanandkanban.files.wordpress.com: http://leanandkanban.files.wordpress.com/2011/04/lean-software-management-bbc-worldwide-case-study-feb-2011.pdf
Kim Man Lui, K. C. Software Development Rhythms: Harmonizing Agile Practices for Synergy.
Paulk., M. C. (2001). Extreme Programming from a CMM Perspective. IEEE Software , 19-26.
ScottAmbler. (2010, May 31). Agility@Scale: Strategies for Scaling Agile Software Development. Retrieved from https://www.ibm.com/: https://www.ibm.com/developerworks/community/blogs/ambler/entry/principles_lean_software_development?lang=en
Agile project management is an iterative approach to the planning and monitoring of project processes. Agile projects are conducted in smaller tranches called iterations with each of these iterations closely reviewed and critiqued by the project team (employees, representatives of the clients etc.). The knowledge gained from this process is then used to ascertain the next steps of the
Quality is an important part of any business rather from a customer’s perspective or a producer’s perspective. Quality from a customer’s perspective is they “want value and quality has become a major factor in the value of products and service” (Russell & Taylor, 2013, pg. 53). “The customer is the most important part of the production line” (Russell & Taylor, 2013, pg. 53). This can be referred to as quality of design meaning “involves designing quality characteristics into a product or service” (Russell & Taylor, 2013, pg. 54). Now let’s look at the quality from a producer’s perspective. This can be referred to a quality of conformance meaning “making sure the product or service is produced according to design” (Russell & Taylor, 2013,
The project is going I am working is almost in the finish stage it is going into the production phase means getting to the live so that the users can able to use the application. After the developing the total code it will go to the testing phase where the testers will check the code is working properly without any errors actually the testers task is to check the code and submit to the developers if they found any errors or mistakes or else they will send the code to the production phase to deploy in the server to check the application.
One of the main objectives of an organization is to beat its counter part in our possible way. In order for an organization to insure that they must be good at leading, planning, organizing and controlling their resources and materials to accomplish performance objectives. In other words management. There are four main types of management, Classical, Behavioural, Quantitative and now the Modern Approach to Management. The Modern Approach states that there is no one good way of management. A successful organization utilizes all the types of management. A good example of this is the movie Lean on Me, starring Morgan Freeman as Joe Clark, the protagonist of the movie. Joe is a very talented teacher, who takes a lot of pride in his work, but due to certain events (budget cuts), he has to make some very key decisions upon his future at East Side High, New Jersey. After the resignation of Joe Clark, things go back to worse at East Side High, so after 20 years Joe is once again called upon to take the duty of the principal of this once great school. His goal was to accomplish a 75% average on the state's basic skills test. This goal might be easy at any school, but then again East Side High was not just another school. The previous year the score was 33%. The school was filled with drug dealer, crime, graffiti and other things. Therefore it required a miracle to increase the school's literacy average by approximately 40%.
A LEAN Company is our best description and our business philosophy (creating more value for customers with less resources), which pursues to deliver what the customer wants, when they want it, at maximum value with minimum misuse.Through the application of LEAN, we achieve more fulfillment as it helps to reduce the possibility to constantly be fighting a battle against difficulties. Besides, we promote a Continuous Improvement Culture in our performance.
Customer satisfaction is the important part in agile development and it is found by direct contact with the customers.
When comparing and contrasting waterfall and agile, they both use the same type of building blocks for the project: scope, cost, schedule and performance. They both also analyze, design, build, test, and deploy the requirement needed for the end result. The difference in these terms for each method is that when using waterfall for scope, cost, schedule, and performance, it sets the scope up front and then allows the cost, schedule, and performance to change depending on what is needed. An agile method will set the cost, schedule, and performance upfront and then have the scope vary, depending on what the company’s requests are after a working prototype. The waterfall is an iterative method meaning the next step cannot begin until the current one is completed. Once the current step is completed, it cannot be revised in anyway unless the project is scrapped and begin again. If the waterfall method is chosen, then the project team
Capability Maturity Model Integration (CMMI) is a evolutionary process improvement training and appraisal program and service administered. It's framework that describes the key elements of an effective product development and maintenance process. The Capability Maturity Model Integration covers best-practices for planning, engineering and managing product development. CMMI helps to integrate traditionally, separate organizational functions, set process improvement goals and priorities, provide guidance for quality processes, and provide a point of reference for appraising current processes. (Godfrey, 2008) It helps in improving the Programming performance and reducing the system complexity. It provides guidance for Quality processes.
Wells, D. (2009). Agile Software Development: A gentle introduction. In Agile Process. Retrieved April 20, 2014, from http://www.agile-process.org.
Agile software development is a group of software development methods based on iterative and incremental development, where requirements and solutions evolve through collaboration between self-organizing, cross-functional teams. It promotes adaptive planning, evolutionary development and delivery, a time-boxed iterative approach, and encourages rapid and flexible response to change.
Software methodology development processes developed to streamline associated software development process, with the Waterfall methodology being the first such process in 1970. After the said such time, many new development methodologies such as Agile and Spiral methodologies developed to facilitate the shortcomings of Waterfall. As the Spiral methodology is an iterative development module, where methodology continuously cycles through phases. The Agile Method is an incremental development methodology focused on providing flexibility, through an incremental development. The software development methodologies each serving unique purposes for risk analysis based projects, large-scale, small scale, well-define, and customer-driven projects. Consequentially,
Project management has been firmly established as a concept for organizing, innovative as well as strategic endeavors. Software development organization follows some process when developing a software product. A key component of any software development process is the software development methodology on which the process is based. The particular methodology can significantly affect overall life cycle cost associated with a software product. The selection of the methodology is also based on the some predefined basic characteristics of the product under design. In this paper a fuzzy logic based approach is presented to assist organizations in making the decision regarding which software development methodology to select from Rational Unified
Scrum is basically a framework for agile development. Scrum is a process that is used most of the time during complex projects in software development. It is also a simple yet affective way to manage work. The strategy in Scrum is to divide members into a team and have them work together to achieve a common goal or project. Scrum provokes communication between the members of the teams. This communication is imperative to the success of the project.
Given the time, it takes to develop large sophisticated software systems it not possible to define the problem and build the solution in a single step. Requirements will often change throughout a projects development, due to architectural constraints, customer’s needs or a greater understanding of the original problem. Iteration allows greater understanding of a project through successive refinements and addresses a projects highest risk items at every stage of its lifecycle. Ideally each iteration ends up with an executable release – this helps reduce a projects risk profile, allows greater customer feedback and help developers stay focused.
The main objective of Software Engineering as a discipline [11] is the production of error-free, reliable software that meets user’s requirements effectively and that it is delivered on time and within budget. To support this objective introduces the idea of Software Process Improvement, which is a combination of appropriate software engineering techniques and principles geared towards improving software production. In order for these techniques to be engaged, they first have to be taught. This paper shall discuss the reason why SPI should be taught at undergraduate level and also look at the way it should be taught in an attempt to get the full potential of the SPI into the minds of undergraduate students as to equip them with new technical focuses. In this paper I shall analyze and discuss ways to improve the module and how to make it more interactive and produce a better learning environment for students and lecturers alike.