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

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 ...
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 ...
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.
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.
ACID Properties In computer science, ACID (atomicity, consistency, isolation, durability) is a set of properties of database transactions intended to guarantee data validity despite errors, power failures, and other mishaps. In the context of databases, a sequence of database operations that satisfies the ACID properties (which can be perceived as a single logical operation on ...
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 ...
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 ...
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.
Platform – A computing platform includes a hardware architecture and a software framework (including application frameworks), where the combination allows software, particularly application software, to run. Typical platforms include a computer architecture, operating system, programming languages, related user interface and tools. For example, Android, the most common mobile platform, is Google’s open and free software ...
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.

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