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

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 ...
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 encourages ...
Agile Release Trains (ART) The Agile Release Train (ART) is a long-lived team of Agile teams, which, along with other stakeholders, incrementally develops, delivers, and where applicable operates, one or more solutions in a value stream. Agile Release Trains align teams to a shared business and technology mission. Source: https://www.scaledagileframework.com/agile-release-train/ SAFe A set of organization ...
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 ...
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: ...
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.
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.
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 ...
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.
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 ...
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 ...

Leave a Reply

Your email address will not be published.

Stay in the loop with the lastest
software testing news

Subscribe