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

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 ...
Ultra-large-scale system An ultra-large-scale systems (ULSS) is one which has the characteristics of: operationally independent sub-systems; managerially independent components and sub-systems; evolutionary development; emergent behavior; and geographic distribution.
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.
Some Mobile Device Input Methods Swipe/Swype: An action taken on a device’s screen that involves translational movement of touch points. A swipe recognizer makes an instantaneous decision as to whether the user’s touches moved linearly in the required direction.
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.
Behavior Driven Development (BDD) A software development methodology in which an application is specified and designed by describing how its behavior should appear to an outside observer. BDD combines the general techniques and principles of test-driven development (TDD) with ideas from domain-driven design and object-oriented analysis and design to provide software development and management teams ...
Mobility While mobile usually refers to mobile device, mobile apps, mobile platform. Mobility is a term describing not only the device but access for employees accessing corporate data from any location, cloud storage and cloud API services, mobile context awareness, integration with a variety of Internet of Things devices. It’s access to the data, products, and ...
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.
Alexa Voice Service (AVS):  Amazon’s service offering for a voice controlled AI assistant. Offered in different products. Source: https://whatis.techtarget.com/definition/Alexa-Voice-Services-AVS Blockchain Infrastructure: A complex, decentralized architecture that orchestrates many systems running asynchronously over the internet in order to create a secured database that records sensitive data of certain users into forms of transactions, Source: https://blockgeeks.com/guides/what-is-blockchain-technology/ Chatbot: ...
ALM (Application Lifecycle Management): A continuous process of managing the life of an application through governance, development and maintenance. ALM is the marriage of business management to software engineering made possible by tools that facilitate and integrate requirements management, architecture, coding, testing, tracking, and release management. Source Control: There are many source control tools, and ...
A list of terms that you'd easily encounter on your way to experience Software Testing, Software Development, and other IT concepts.
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 ...

Leave a Reply

Your email address will not be published. Required fields are marked *

Stay in the loop with the lastest
software testing news

Subscribe