Glossary: Agile Testing Glossary – Part 2

Lean

Defining Lean Software Development is challenging because there is no specific Lean Software Development method or process. Lean is not an equivalent of Personal Software Process, V-Model, Spiral Model, EVO, Feature-Driven Development, Extreme Programming, Scrum, or Test-Driven Development. A software development lifecycle process or a project management process could be said to be “lean” if it was observed to be aligned with the values of the Lean Software Development movement and the principles of Lean Software Development. So those anticipating a simple recipe that can be followed and named Lean Software Development will be disappointed. You must fashion or tailor your own software development process by understanding Lean principles and adopting the core values of Lean.

There are several schools of thought within Lean Software Development. The largest, and arguably leading, school is the Lean Systems Society, which includes Donald Reinertsen, Jim Sutton, Alan Shalloway, Bob Charette, Mary Poppendeick, and David J. Anderson. Mary and Tom Poppendieck’s work developed prior to the formation of the Society and its credo stands separately, as does the work of Craig Larman, Bas Vodde, and, most recently, Jim Coplien. This article seeks to be broadly representative of the Lean Systems Society viewpoint as expressed in its credo and to provide a synthesis and summary of their ideas.

Lean Software Development is more strategically focused than other Agile methodology. The goals are to develop software in one-third the time, with one-third the budget, and with one-third the defect rate.

JIT (Just in Time), another important element of Lean is a production strategy that strives to improve a business return on investment by reducing in-process inventory and associated carrying costs. This improves quality at every step and empowers the team.

The 7 key principles of lean software development are:

1. Eliminate Waste.

2. Quality at every step/Build Quality In.

3. Create Knowledge.

4. Decide JIT (just in time)/Defer Commitment.

5. Deliver Fast.

6. Respect People.

7. Optimize The Whole.

Sources: Microsoft, allaboutAgile.com and codebetter.com.

 

Kanban

The Kanban method, as formulated by Toyota’s Taiichi Ohno, is a system to improve and maintain a high level of production. It is a way to organize the chaos that surrounds so many delivery teams by making the need for prioritization and focus clear.

It is also a way to find workflow and process problems to solve in order to deliver more consistently to your client/customer/etc. Both of these are made possible by introducing constraints into the system to optimize the flow of value. Flow of value is king. If you can’t get your business value flowing out the door consistently, your business is not performing optimally.

Finally, Kanban resets your brain to value finishing over starting. It sounds like common sense right? Well, if you’re like most developers you have been conditioned into associating your value by what you have started. Kanban reminds you to stop starting and start finishing!

Kanban has 8 things you need to know. They are broken down into three basic principles (how you need to think) and five properties (what you need to do).

How you need to think

1. Start with what you do now.

2. Agree to pursue incremental, evolutionary change.

3. Respect the current process, roles, responsibilities & titles.

What you need to do

4.    Visualize the workflow – a “Kanban board” team using Scrum may call it a Scrum board or “whiteboard” but this comes from Kanban and is called a Kanban board.

5.    Limit Work in Progress (Wip).

6.    Manage flow.

7.    Make Process Policies Explicit.

8.    Improve Collaboratively (using models & the scientific method).

Sources: Wikipedia, kanbanblog.com, Agileproductdesign.com.

LogiGear Corporation

LogiGear Corporation provides global solutions for software testing, and offers public and corporate software-testing training programs worldwide through LogiGear University. LogiGear is a leader in the integration of test automation, offshore resources and US project management for fast and cost-effective results. Since 1994, LogiGear has worked with hundreds of companies from the Fortune 500 to early-stage startups, creating unique solutions to exactly meet their needs. With facilities in the US and Vietnam, LogiGear helps companies double their test coverage and improve software quality while reducing testing time and cutting costs.

For more information, contact Joe Hughes + 01 650.572.1400

LogiGear Corporation
LogiGear Corporation provides global solutions for software testing, and offers public and corporate software testing training programs worldwide through LogiGear University. LogiGear is a leader in the integration of test automation, offshore resources and US project management for fast, cost-effective results. Since 1994, LogiGear has worked with Fortune 500 companies to early-stage start-ups in, creating unique solutions to meet their clients’ needs. With facilities in the US and Viet Nam, LogiGear helps companies double their test coverage and improve software quality while reducing testing time and cutting costs.

The Related Post

Extreme Programming (XP) XP is a software development methodology which is intended to improve software quality and responsiveness to changing customer cycles. A type of Agile software development, it advocates frequent “releases” in short development cycles, which is intended to improve productivity and introduce checkpoints at which new customer requirements can be adopted. Source: https://en.wikipedia.org/wiki/Extreme_programming ...
A list of terms that you'd easily encounter on your way to experience Software Testing, Software Development, and other IT concepts.
A list of terms that are either found in the articles of the December 2015 edition, or are related to concepts relevant to those articles.
Teaching: A formal process of bringing about awareness, conferring knowledge and instilling skills. Teaching focuses on knowledge. Training: Prepares an individual or group to execute a skill. The focus of training is skill development.
Cloud Computing: Cloud computing is a concept used to describe a variety of computing concepts that involve a large number of computers connected through a real-time communication network such as the Internet. In science, cloud computing is a synonym for distributed computing over a network, and means the ability to run a program or application on many connected computers at the ...
Artificial Intelligence is here. AI is already being used in development, testing, tool development, and products. Its use will undoubtedly grow and become more pervasive. At LogiGear Magazine we regularly include a glossary of terms on the issue topic. In this issue, the glossary is unique. If you are just beginning to learn about AI ...
Check out the glossary for definitions on testing essentials, and DevOps related terms. Action Based Testing (ABT) A modular-design and action-driven test method that provides a systematic approach to increase the success of automated testing. Modular-design addresses the challenges of test planning and test case management through efficient test organization. Action-driven test development eliminates the ...
Code Current The ability to install, implement, and successfully get the latest version of software to work. Source: LogiGear Continuous Delivery The ability to get changes of all types—including new features, configuration changes, bug fixes and experiments—into production, or into the hands of users, safely and quickly in a sustainable way. Source: Continuous Delivery DevOps ...
Virtualization: Virtualization (or virtualisation) is the simulation of the software and/or hardware upon which other software runs. This simulated environment is called a virtual machine . There are many forms of virtualization, distinguished primarily by computing architecture layer. Virtualized components may include hardware platforms, operating systems (OS), storage devices, network devices or other resources.
Tcl/Tk Language Tcl (Tool Command Language) is a very powerful but easy to learn dynamic programming language, suitable for a very wide range of uses, including web and desktop applications, networking, administration, testing and many more. Open source and business-friendly, Tcl is a mature yet evolving language that is truly cross platform, easily deployed and ...
Agile – Characterized by quickness, lightness, and ease of movement; nimble. Not necessarily characterized by fast speed. Agile software development is a software development practice 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 ...
Closed System – In the context of embedded systems this relates closely to the engineering context where every input and every response (or output) can be known and can include a specific time. In addition the software is purposely designed for restricted access.

Leave a Reply

Your email address will not be published.

Stay in the loop with the lastest
software testing news

Subscribe