LEAN SOFTWARE DEVELOPMENT ( As a Survival Tool in Recession )



Similar documents
Lean vs. Agile similarities and differences Created by Stephen Barkar -

Lean Software Development and Kanban

Agile and lean methods for managing application development process

What is meant by the term, Lean Software Development? November 2014

Agile support with Kanban some tips and tricks By Tomas Björkholm

Agile and lean methods for managing application development process

MTAT Software Engineering

Lean Software Development

Applying Lean on Agile Scrum Development Methodology

An Introduction to Continuous Delivery

Bottlenecks in Agile Software Development Identified Using Theory of Constraints (TOC) Principles

WHY THE WATERFALL MODEL DOESN T WORK

PROCESS OF MOVING FROM WATERFALL TO AGILE PROJECT MANAGEMENT MODEL

A. Waterfall Model - Requirement Analysis. System & Software Design. Implementation & Unit Testing. Integration & System Testing.

Lean Development A team approach to Software Application Development

SPECIFICATION BY EXAMPLE. Gojko Adzic. How successful teams deliver the right software. MANNING Shelter Island

INTRODUCING CONTINUOUS DELIVERY IN THE ENTERPRISE

LEAN AGILE POCKET GUIDE

AGILE METHODOLOGY IN SOFTWARE DEVELOPMENT

Enabling Continuous Delivery by Leveraging the Deployment Pipeline

Introduction to Software Kanban

Waterloo Agile Lean P2P Group

Kanban kick- start. By Tomas Björkholm at Crisp, April 2011

Who Doesn t Want to be Agile? By: Steve Dine President, Datasource Consulting, LLC 7/10/2008

EMC PERSPECTIVE. Adopting an Agile Approach to OSS/BSS Development

Java course - IAG0040. Unit testing & Agile Software Development

SEEM4570 System Design and Implementation Lecture 10 Software Development Process

This handbook is meant to be a quick-starter guide to Agile Project Management. It is meant for the following people:

Purchasing Success for the Service Sector: Using Lean & Six Sigma.

Continuous Delivery. Anatomy of the Deployment Pipeline (Free Chapter) by Jez Humble and David Farley

Comparative Study of Agile Methods and Their Comparison with Heavyweight Methods in Indian Organizations

Seeing the Value in Customer Service

Governments information technology

Sigma (σ) is a Greek letter used to represent the statistical term standard deviation

BI Dashboards the Agile Way

The Modern Digital Platform: Unifying Transactions, Content, and Workflows

Agile Software Project Management Methodologies

To the point. a recipe for creating lean products. Paulo Caroli. This book is for sale at

Do You Make These 5 Most Common Mistakes in Managing Multiple Projects? Learn how to avoid them.

Automated Acceptance Testing of High Capacity Network Gateway

Agile Software Development Methodologies and Its Quality Assurance

Lean Software Development

Agile Methodologies and Its Processes

AGILE SOFTWARE DEVELOPMENT: INTRODUCTION, CURRENT STATUS & FUTURE Pekka Abrahamsson Jyväskylä

CREATING A LEAN BUSINESS SYSTEM

The following is intended to outline our general product direction. It is intended for information purposes only, and may not be incorporated into

APPLICATION OF KANBAN SYSTEM FOR MANAGING INVENTORY

Table of Contents. CHAPTER 1 Web-Based Systems 1. CHAPTER 2 Web Engineering 12. CHAPTER 3 A Web Engineering Process 24

Software Development Life Cycle (SDLC)

ERP vs. PLM: What s the Difference?

In the IEEE Standard Glossary of Software Engineering Terminology the Software Life Cycle is:

Agile Project Management

Kanban For Software Engineering

Agile Development Overview

White Paper. Process Improvement

Kanban vs Scrum Making the most of both

SOACertifiedProfessional.Braindumps.S90-03A.v by.JANET.100q. Exam Code: S90-03A. Exam Name: SOA Design & Architecture

Agile Projects 7. Agile Project Management 21

Agile Software Development

Project Management Simple Answers to Simple Questions

What is a process? So a good process must:

Agile In a Nutshell. Note - all images removed to fit 2MB limit Actual presentation has much more content. Jonathan Rasmusson

SOFTWARE LOCALIZATION FOR AGILE, WATERFALL, AND HYBRID DEVELOPMENT

Ensuring Reliability in Lean New Product Development. John J. Paschkewitz, P.E., CRE

Waterfall vs. Agile Methodology

The Agile Business Analyst: Eyes for Waste By Ellen Gottesdiener Copyright EBG Consulting, Inc., 2009 EBG Consulting, Inc.:

AGILE BUSINESS INTELLIGENCE

Using the Lean Model for Performance Improvement

Alternative Development Methodologies

The Benefits of Deployment Automation

BI and ETL Process Management Pain Points

Agile So)ware Development

Lean Software Development

Applying Lean Concepts in Project Management. Ing. Mauricio Gomez Melendez MAT. PMP.

How To Improve Your Bank'S Lending Process

A Framework for Automated Database TuningUsing Dynamic SGA Parameters and Basic Operating System Utilities

Module 2. Software Life Cycle Model. Version 2 CSE IIT, Kharagpur

Agile Requirements Generation Model: A Soft-structured Approach to Agile Requirements Engineering. Shvetha Soundararajan

Why the Traditional Contract for Software Development is Flawed

Introduction to Agile and Scrum

Agile Software Development. Mohsen Afsharchi

How To Design An Information System

No one has to change. Survival is optional. - W. Edwards Deming - Continue your Beyond Budgeting Journey with help from Agile, Lean and Scrum

Agile Project Management. Jan Pool NioCAD University of Stellenbosch 16 April 2008

Software Development Life Cycle at SSPL. An Summary of Methodologies We Offer

Agile Test Automation

How To Understand The Limitations Of An Agile Software Development

SESSION 303 Wednesday, March 25, 3:00 PM - 4:00 PM Track: Support Center Optimization

Nova Software Quality Assurance Process

Appendix Lean Glossary Page 1

Transcription:

LEAN SOFTWARE DEVELOPMENT ( As a Survival Tool in Recession ) Er.Kirtesh Jailia 1, Mrs.Sujata 2, Mrs.Manisha Jailia 3, Mrs.Manisha Agarwal 3 1 M.Tech(SE), Independent Researcher,INDIA, kirtesh.jailia@gmail.com 2 Assistant Professor (CSE/IT Dept.), ITM University, Gurgaon(Hr),INDIA ms.sujata06@gmail.com 3 Sr.Assistant Professor(CSE Dept.), Banasthali University,Tonk,(raj),INDIA manishajailia@yahoo.co.in, manishaagarwal18@yahoo.co.in Abstract Lean software development is a new ray of hope for survival in the phases of recession. The term recession is like a nightmare for software companies. Here in this paper we are going to discuss how to sustain the business in the recession with the help of lean software development. Because in various cases we saw that during recession some companies were drowning due to the reason of MISSING DEADLINE, OVER DEVELOPMENT, INEFFECTIVE MANAGEMENT and many more. We knew that there are several reasons for the recession in the software market, but the most important thing is to survive in such recession phase by sustaining the customers, by performing orders as early as customer wants and many more. These are various points through which one can survive in recession phase. But here the question arises how to meet all such requirements.in answer to this question we are dealing with the term LEAN SOFTWARE DEVELOPMENT as a Survival tool in recession. Keywords: Lean software development, Recession survival software development methodology 1. Introduction Lean software development is a translation of Lean manufacturing and Lean IT principles and practices to the software development domain. Adapted from the Toyota Production System, a pro-lean subculture is emerging from within the agile community. The term Lean Software Development originated in a book by the same name, written by Mary Poppendieck and Tom Poppendieck. The book presents the traditional Lean principles in a modified form, as well as a set of 22 tools and compares the tools to agile practices. Mary and Tom's involvement in the agile software development community, including talks at several agile conferences has resulted in such concepts being more widely accepted within the agile community. [1] The application of Lean principles to software development process requires interpretation, and there is more than one school of thought about the best interpretation of Lean Software Development. Some focus on Lean principles applied to common development practices, some focus on workflow management, others focus on complementary product development processes used by Toyota and other Lean producers.[2] 63

1.1 LEAN Software Development Principles Lean software development is based on basic five principles which makes it a special way of software development, let discuss all of them one by one. Specify value from the standpoint of the end customer by product family. Identify all the steps in the value stream for each product family, eliminating every step and every action and every practice that does not create value. Make the remaining value-creating steps occur in a tight and integrated sequence so the product will flow smoothly toward the customer. As flow is introduced, let customers pull value from the next upstream activity. As these steps lead to greater transparency, enabling managers and teams to eliminate further waste, pursue perfection through continuous improvement. [2] Now the question arises that why it is known as LEAN? The word lean in software development came from the automobile industry amazing but it is true. Toyota motors is the first company which introduced the Lean manufacturing. This was used when there is demand increased too folds and a single mistake would lead to a missed deadline means business loss. The problems that Toyota faced foreshadowed the problems that an increasing number of businesses would face in the late 20th century: customers want more variety and better quality, and they want it now. Traditional business practices are often poorly suited to deal with these expectations, and management theorists became increasingly restless in their pursuit of new understanding. Much as the industrial practice of yesteryear evolved into more general business practice, the principles of the Toyota Production System were abstracted into the general business philosophy we now call Lean. 2. What Makes it Different from Traditional Approach? Now we are going to discuss about the lean software development approach and we will find out that how it differs from the traditional? 2.1 Traditional Approach In traditional approach of software development the main focus is given on the linear development of the software, in which we have focus on group of features. The single delivery approach is there in most cases As from figure below. Fig: A (Traditional Project) ref 3. 64

2.2 Lean Development In Lean Development, you select, plan develop, test and deploy one feature (in its simplest form) before you select, plan, develop, test and deploy the next feature. By doing this, you further isolate risk to a feature-level. In these environments, you aim to eliminate waste wherever possible you therefore do nothing until you know it s necessary or relevant. The main focus of the lean development is to reduce the wastes during the software development as: a. Reducing Overproduction i.e. extra features. b. Requirements bucket. c. Reducing processing steps. d. Reducing Information collection time. e. Reducing unnecessary test plans f. Reducing decision time. g. Reducing transportation time. h. Reducing paper work. i. Reducing development time as work on one feature at a time. By working all such steps the project manager will able to meet with the deadline more effectively and efficiently. Fig: B (Lean Approach) ref 3. As from above figure we can see that in case of lean software development the delivery gap is reduced to a very minimal time interval, all such things happened due to the lean approach in which the work done is to develop the requisite feature at a time. Unnecessary requirements etc are not entertained, similarly the testing time; management time also reduces due to the reduction in requirement bucket. As we know that Lean approach focuses on one feature rather than a group of features make it is an easier approach to manage software project and less risky. 3. What to do in Lean Software Development? Now the question arises that what should we do in lean software development to meet with the points above in paragraph 2 (Lean software development), for achieving those points we have to work over certain points as. 65

a. Eliminate Wastes by Doing it Right at Once. "Do It Right the First Time" does not mean to "Freeze the Specs." On the contrary, product (and software project) specifications change constantly. Lean discipline demands instantaneous adaptation to changing market conditions, which is best affected with a flexible architecture that readily accommodates changes, monitoring techniques that detect errors before they occur, and tests that are designed before development begins. The "Do It Right the First Time" rule has been widely used to justify the decision to develop a detailed system design before code is written. The problem with this approach lies in the assumption that customer requirements are static and can be defined by a predetermined system. Because requirements do change,-and frequently-throughout the life of most systems, they cannot be adequately fulfilled by a rigid design. If we acknowledge the axiom that customers may not know what they want at the beginning of development and that their needs might change midstream, we must incorporate a method of obtaining customer feedback during development. Instead, most software development practices include a complex "change control process" that discourages developers from responding to user feedback. Far from ensuring a quality result, these change-resistant processes actually get in the way of "Doing It Right."[4] b. Satisfy Stakeholders by Meeting and Understanding them What they Need Right Now? c. Value Addition through Knowledge Creation. Behind every success there is a base of knowledge, so in team there must be continuous process to improve the human resources this can be done through various ways such as through training sessions etc. but in our point of view the sharing among team mates is the real source to enhance the knowledge base. Create environment in which people will be constantly improving what they are working on - they should know that they are not and should not be perfect - they always have a field to improve and they should do it. Development team should behave like small research institute; they should establish hypotheses and conduct many rapid experiments in order to verify them d. Critical Person s Identification, so that it become easier to Incorporate Feedback from Customers to Software Team. e. Refactoring can be used to improve the Design of Software. Refactoring (Improving the design without changing functionality), or improving the design of existing software in a controlled and rapid manner. With refactoring, initial designs can focus on the basic issue at hand rather than speculate about other features that may be needed in the future. Later in the process, refactoring techniques can incorporate these additional features, as they are required, making it easy to accommodate the future if and when it becomes the present.[4] f. Comprehensive Testing can be Deployed. Lean development employs two key techniques that make change easy. Just as Lean Production builds tests into the manufacturing process to detect when the process is broken, similarly Lean development must build tests at various stages of the development process. 66

As development proceeds and changes are made, the unit and regression tests are run. If the tests don't pass, programming may be stopped until the problem is found and corrected. A comprehensive testing capability is the best way to accommodate change throughout the development process.[4] g. Defer Commitment. <> Schedule Irreversible Decisions at the Last Responsible Moment - you should know where you want to go but you don't know the road very well, you will be discovering it day after day - the most important thing is to keep the right direction <>Break Dependencies - components should be coupled as loosely as possible to enable implementation in any order <>Maintain Options - develop multiple solutions for all critical decisions and see which one works best. h. Optimize the Whole. <>Focus on the Entire Value Stream - focus on winning the whole race which is the software - don't optimize local inefficiencies, see the whole and optimize the whole organization <>Deliver a Complete Product - teams need to have great leaders as well as great engineers, sales, marketing specialists, secretaries, etc. - they together can deliver great final products to their customers [5] i. Respect People The word respect plays an important role in the field of software development, Every team member has to be given respect because every resource is important. Give team leaders the training, the guidance and some free space to implement lean thinking in their environment, let your people think and decide on their own - they know better how to implement difficult algorithms and apply state-of-the-art software Frame works. j. Pull from Demand Lean Software development means rapid, Just-in-Time delivery of value. In manufacturing, the key to achieving rapid delivery is to manufacture in small batches pulled by a customer order. Similarly in software development, the key to rapid delivery is to divide the problem into small batches (increments) pulled by a customer test. The single most effective mechanism for implementing lean production is Adopting Justin-Time, Pull from demand flow. Similarly, the single most effective mechanism for implementing lean development is delivering increments of real business value in short timeboxes [4]. 4. LEAN as a Survival Tool in Recession Now after knowing the term Lean software development, let discuss how it can be used in recession as survival tool. The principle over which the lean software development is based has intrinsic characteristics to fight with recession ghost. During recession what we need? 67

We need SUSTAINABILTY in market and this can be come through some of the things listed below: 1. Fast Delivery i.e. Deadline meeting. 2. Easy management. 3. Highly risk prone. 4. Better human resource management 5. Maintain Financial strength Lean offers all the above things to survive in recession. Let we discuss each point in detail. 4.1 Fast Delivery Deadline has the oxygen** capsule for the industries in the recession, during recession if we able to deliver the product to the customer on or before time than the success factor increases. Once you are able to meet the deadline in recession the sustainability also become easier. The Lean approach focuses on Elimination of Wastes means this approach never go for those features which are not useful for right now (has no value). It focuses on the real requirements of the customers. For e.g. in a birthday party the main requirement is of cake irrespective of its texture (Flavor, looking etc. matters but as a secondary factor). Due to the above written approach the software industry will able to easily meet the deadline by reducing wastages and by saving time (by not doing waste things). 4.2 Easy Management During recession it is very important to manage the software project, because if the management is not good than it is not easy to survive in any condition. But if the condition is like the Recession than project management plays an important role. Lean approach provides a way through which one can easily manage the software project. In Lean software development as we know that focus is on a single feature at a time, rather than group of features as in other approaches. So it becomes easier to manage the project. The another important thing that Lean offers is comprehensive testing and refactoring principle which really makes it a easily manageable approach means more recession prone. 4.3 Highly Risk Prone The risk factor in recession has a strong impact on the software industry, here the risk is not limited to missing deadline or leaving staff but here it expands to SHUTDOWN of a software company also. So it is better to use an approach which is more risk prone. Lean software development is a simplest way to develop the software with less risk than other approaches let see how? Most of the risks come due to the inappropriate learning of the customer requirements and in Lean as we know that SRS can evolve and we have to focus only on single and essential feature, so it is easier to manage the risk. 68

4.4 Better Human Resource Management Lean offers time saving and this time saving can be invested over human resource empowerment during recession. The salary depression can be diluted by reducing the work load and stress of the team. Various empowerment sessions can be done to enhance the skills of the human resource. Empowerment of the development team helps in developing the decision making ability of the team members which in turn, creates a more motivated team. This benefit really cannot be overstressed enough. Developers hate nothing more than being micro-managed and having decisions forced upon them. This way they can determine how best to develop the functionality which will usually result in a much better end product.[6] 4.5 Financial Strength Recession acts as acid for the financial strength of a software company. The fewer customers with cheaper budget are the two main things which are always present in the recession phase. Hence in such scenario for survival we need more customers (Though they have cheaper budget). For e.g. it is better to have 5 customers with $200 each, rather than waiting for 1 having $1000 budget. But for such working we must have fast processing and traditional development approaches doesn t provide it. Lean approach also offers the shield for the recession acid as Delivering the product early is a definite advantage. It means your development team can deliver more functionality in a shorter period of time, hence enabling more projects to be delivered. This will not only please your finance department, but also the end customers. 5. Conclusion At last while concluding this paper we can say that lean software development approach is the best approach which can be used as an effective tool for the recession survival. Lean not only offers faster development but also maintain the strength of the software company during recession. As a survival tool Lean has various amours to shoot the recession ghost while sustain your company with more oxygen *. Now here is a question arises that how can we say that lean approach is better in recession? In answer to this question in one line we can say By reducing wastes we can reduce delivery time with more efficiency and in less cost. At last we would like to say that Lean approach still has many dimensions and we welcome all your views and suggestions over this approach in software development. References [1] http://en.wikipedia.org/wiki/lean_software_development [2] http://shapingsoftware.com/2009/06/15/introduction-to-lean-software-development/ [3] http://www.gosolstice.com/software-development-traditional-vs-lean.html [4] The project perfect White paper on Lean software development by Dasari. A. Ravi kumar. [5] http://agilesoftwaredevelopment.com/leanprinciples [6] http://www.my-project-management-expert.com/the-advantages-and-disadvantages-of-lean-softwaredevelopment.html * Here oxygen means revival element for the software industry during recession 69

70