This is part three of the continuing series of articles. In the first article of this series, I outlined three fundamental characteristics of waterfall system. In the previous article (part 2), I explained Phase-Gates and the unintended consequences when phase-gates encounter Agile transformation efforts. In this article I will dive into Large Batch hand-offs.
Working in large batches is based on thinking that handling large batch sizes during each phase optimizes:
Resource (people) utilization
Quality: By use of people’s primary skill set
Reduction in rework
Decisions: through a broad holistic perspective
Expected system behavior
Utilization Focus:
Most people are busy and have ample tasks to do. Often people are already behind and stressed about catching up with their work load.
Despite high utilization, the organization system is struggling to get projects “done”. Management is stressed about active projects that never seem to complete.
With institutionalized busy-ness come weekly ‘red-yellow-green’ status meetings. Most participants turn on their zombie state and learn to check up on email under the drone of status updates.
Big Upfront:
Design and architecture for finality as opposed to changeability. This leads to big upfront effort while designing and architecting. In subsequent phases – choices alternative to initial design, get eliminated by rule-of-thumb that any changes to requirements/design/architecture will require a lengthy and delayed review and approval process and hence are not needed.
Large batches of testing and integration work get pushed towards the end of the project. Delays during previous phased hand-offs accumulate and get transferred to later phases of product delivery.
Next Generation and Framework projects:
It is common to see “next generation” and “framework” projects creep up in these organizations. Focus on the utilization of people’s primary skill sets has blinding effects on all other senses (including common sense). In these organizations, lack of results is so rampant that leadership and their subjects desperately seek assurance and clamor to work on “cool” projects. These are often labeled “Next Generation” or “framework”, implying some uber-wisdom that other’s less able cannot attain. It is often such that product development efforts get stuck within technical groups who are perfecting and still not “ready” with a master framework that will enable them to accept and develop features.
Unintended consequences
Decision concentration:
Imagine that on the first of each month one has to decide on their attire for every one of their work days for the rest of the month. Sounds silly! But with large batches, organizations are doing something similar on a much grander scale. With large batch processing, we are effectively concentrating all relevant decisions in a fixed time window. Not allowing for reassessment of product needs in light of new requirements or new design/architecture options.
Defect concentration:
With large batches, not only features but also defects get produced in large batches. An error in design choice or code implementation will be replicated until this area of product is tested or validated. This results in large areas of code or functionality to be reworked. Working in large batches is favored by optimizers of the functional process step (design/code/test) as this allows them to review holistically and make sound choices. But they always fail to account for holistic mistakes that they will also have and in aggregate cause huge expensive blunders. Limiting work in progress allows for learning from small less expensive errors.
Local Optimization:
People tend to optimize for their task/responsibility completion as opposed to working towards team optimization and quality throughput. With large batches of work at hand, people find it easier to optimize for large amounts of design/code/test. This headphone-in-the-zone approach – while maybe ideal for grunt work or isolated tasks – does not suit product development. Non-linear implications abound wherein choices made by one team member disproportionately affects another team member’s options. There is no substitute to collaboratively flowing freely as a team through requirements ~ design ~ code ~ test aspects of product development.
Context Switching:
Large batch hand-offs are desirable on the premise that work handled in large batch sizes allows workers to optimize towards completion.
So when test is testing feature-(N), code is being done for feature-(N+1) and design is being done for feature-(N+2). When an issue is identified by test in feature-(N) others in code and design have to make a context switch from their in-progress feature (N+1) or feature-(N+2) to accommodate this unpredictable request. This often leads to:
Larger than anticipated inefficiencies
Faulty assumptions implemented in code for feature-(N+1) that are not yet exposed while testing for feature-(N)
Quick fixes that do not address root-cause.
These lead to long-term instability and brittle product core.
Summary
Delaying feedback and integration aggregates errors into blunders. Fear of small batch incremental development stems from an inability to cope with the interests of people focused on other important aspects of the overall project. There are many avenues for help and coaches available to show you the way (many publish practices in open public forums – one quick search engine query away). I have found that when it comes to change, those who are able to move to a better state – CARE! Those who care about others interests and overall product always figure out ways to reach out, collaborate, and problem-solve to make small batch sizes a reality in their organization. While the ones who don’t care, make excuses.
Dhaval Panchal is a VP and Enterprise Agile Coach for agile42. He is a Certified Scrum Coach (CSC), Certified Scrum Trainer (CST), and Innovation Games Facilitator with 15 years of experience working in the development and management of products and services in the software industry.
Dhaval began his career as an XP (Extreme Programming) developer. Over the years he discovered his passion to coach, train, and enable organizations towards Agile transformation. His results-oriented, people-centric perspective helps organizations implement Agile, Scrum, Kanban, and Lean techniques to achieve success. He has experience working with startups to Fortune 100 companies, with clients in the telecommunications, business process engineering, shipping, e-discovery, legal, gaming, health insurance, and oil and gas industries.
A sought-after speaker who has presented at international Agile and Scrum conferences since 2008, Dhaval is also an expert facilitator who helps leadership teams make sense of complex situations and drive towards action.
About the Author
[aa-author-bio]
This is an Agile Alliance community blog post. Opinions represented are personal and belong solely to the author. They may not represent the opinion or policy of Agile Alliance.
Dhaval Panchal is Experienced Executive, Agile Coach, and Organization Design consultant. He is founder of Evolve Agility®, a Texas based coaching and training consultancy. Dhaval is ScrumAlliance Certified Enterprise Coach® (CEC), Certified Scrum Trainer® (CST), Certified Agile Leadership-Educator (CAL-E). Dhaval has led large scale Agile transformations for companies in Oil & Gas, Banking, Insurance, Gaming, and Medical business domains. He has more than 17 years of Agile implementation, coaching, and transformation experience.
If you implement Scrum ceremonies, you are technically doing Scrum, but are you embracing an Agile philosophy? Is your team engaged in productive work valued by the stakeholders?
If you implement Scrum ceremonies, you are technically doing Scrum, but are you embracing an Agile philosophy? Is your team engaged in productive work valued by the stakeholders?
Your membership enables Agile Alliance to offer a wealth of first-rate resources, present renowned international events, support global community groups, and more — all geared toward helping Agile practitioners reach their full potential and deliver innovative, Agile solutions.
We use cookies on our website to give you the most relevant experience by remembering your preferences and repeat visits. By clicking “Accept”, you consent to the use of ALL the cookies. However you may visit Cookie Settings to provide a controlled consent.
This website uses cookies to improve your experience while you navigate through the website. Out of these cookies, the cookies that are categorized as necessary are stored on your browser as they are essential for the working of basic functionalities of the website. We also use third-party cookies that help us analyze and understand how you use this website. These cookies will be stored in your browser only with your consent. You also have the option to opt-out of these cookies. But opting out of some of these cookies may have an effect on your browsing experience.
Necessary cookies are absolutely essential for the website to function properly. These cookies ensure basic functionalities and security features of the website, anonymously.
Cookie
Duration
Description
__cfduid
1 month
The cookie is used by cdn services like CloudFare to identify individual clients behind a shared IP address and apply security settings on a per-client basis. It does not correspond to any user ID in the web application and does not store any personally identifiable information.
_csrf
session
This cookie is essential for the security of the website and visitor. It ensures visitor browsing security by preventing cross-site request forgery.
_GRECAPTCHA
5 months 27 days
This cookie is set by Google. In addition to certain standard Google cookies, reCAPTCHA sets a necessary cookie (_GRECAPTCHA) when executed for the purpose of providing its risk analysis.
cookielawinfo-checbox-analytics
11 months
This cookie is set by GDPR Cookie Consent plugin. The cookie is used to store the user consent for the cookies in the category "Analytics".
cookielawinfo-checbox-functional
11 months
The cookie is set by GDPR cookie consent to record the user consent for the cookies in the category "Functional".
cookielawinfo-checbox-others
11 months
This cookie is set by GDPR Cookie Consent plugin. The cookie is used to store the user consent for the cookies in the category "Other.
cookielawinfo-checkbox-advertisement
1 year
The cookie is set by GDPR cookie consent to record the user consent for the cookies in the category "Advertisement".
cookielawinfo-checkbox-necessary
11 months
This cookie is set by GDPR Cookie Consent plugin. The cookies is used to store the user consent for the cookies in the category "Necessary".
cookielawinfo-checkbox-performance
11 months
This cookie is set by GDPR Cookie Consent plugin. The cookie is used to store the user consent for the cookies in the category "Performance".
gdpr[allowed_cookies]
1 year
This cookie is set by the GDPR WordPress plugin. It is used to store the cookies allowed by the logged-in users and the visitors of the website.
JSESSIONID
session
Used by sites written in JSP. General purpose platform session cookies that are used to maintain users' state across page requests.
PHPSESSID
session
This cookie is native to PHP applications. The cookie is used to store and identify a users' unique session ID for the purpose of managing user session on the website. The cookie is a session cookies and is deleted when all the browser windows are closed.
pmpro_visit
The cookie is set by PaidMembership Pro plugin. The cookie is used to manage user memberships.
viewed_cookie_policy
11 months
The cookie is set by the GDPR Cookie Consent plugin and is used to store whether or not user has consented to the use of cookies. It does not store any personal data.
Functional cookies help to perform certain functionalities like sharing the content of the website on social media platforms, collect feedbacks, and other third-party features.
Cookie
Duration
Description
__atuvc
1 year 1 month
This cookie is set by Addthis to make sure you see the updated count if you share a page and return to it before our share count cache is updated.
__atuvs
30 minutes
This cookie is set by Addthis to make sure you see the updated count if you share a page and return to it before our share count cache is updated.
__jid
30 minutes
Used to remember the user's Disqus login credentials across websites that use Disqus
aka_debug
This cookie is set by the provider Vimeo.This cookie is essential for the website to play video functionality. The cookie collects statistical information like how many times the video is displayed and what settings are used for playback.
bcookie
2 years
This cookie is set by linkedIn. The purpose of the cookie is to enable LinkedIn functionalities on the page.
CONSENT
16 years 8 months 15 days 5 hours
Description Pending
disqus_unique
1 year
Disqus.com internal statistics
lang
session
This cookie is used to store the language preferences of a user to serve up content in that stored language the next time user visit the website.
language
This cookie is used to store the language preference of the user.
lidc
1 day
This cookie is set by LinkedIn and used for routing.
locale
3 days
This cookie is used to store the language preference of a user allowing the website to content relevant to the preferred language.
Performance cookies are used to understand and analyze the key performance indexes of the website which helps in delivering a better user experience for the visitors.
Cookie
Duration
Description
_gat_UA-17319182-1
1 minute
Set by Google Analytics and Google Tag Manager to enable website owners to track visitor behaviour and measure site performance. These cookies are used to collect information about how you use our website. The information collected includes number of visitors, pages visited and time spent on the website. The information is collected by Google Analytics in aggregated and anonymous form, and we use the data to help us make improvements to the website.
YSC
session
This cookies is set by Youtube and is used to track the views of embedded videos.
Analytical cookies are used to understand how visitors interact with the website. These cookies help provide information on metrics the number of visitors, bounce rate, traffic source, etc.
Cookie
Duration
Description
_ga
2 years
This cookie is installed by Google Analytics. The cookie is used to calculate visitor, session, campaign data and keep track of site usage for the site's analytics report. The cookies store information anonymously and assign a randomly generated number to identify unique visitors.
_gat_gtag_UA_17319182_1
1 minute
Set by Google Analytics and Google Tag Manager to enable website owners to track visitor behaviour and measure site performance. These cookies are used to collect information about how you use our website. The information collected includes number of visitors, pages visited and time spent on the website. The information is collected by Google Analytics in aggregated and anonymous form, and we use the data to help us make improvements to the website.
_gat_UA-0000000-1
1 minute
Set by Google Analytics and Google Tag Manager to enable website owners to track visitor behaviour and measure site performance. These cookies are used to collect information about how you use our website. The information collected includes number of visitors, pages visited and time spent on the website. The information is collected by Google Analytics in aggregated and anonymous form, and we use the data to help us make improvements to the website.
_gid
1 day
This cookie is installed by Google Analytics. The cookie is used to store information of how visitors use a website and helps in creating an analytics report of how the website is doing. The data collected including the number visitors, the source where they have come from, and the pages visted in an anonymous form.
eud
1 year 24 days
The domain of this cookie is owned by Rocketfuel. This cookie is used to sync with partner systems to identify the users. This cookie contains partner user IDs and last successful match time.
S
1 hour
domain .google.com
uvc
1 year 1 month
The cookie is set by addthis.com to determine the usage of Addthis.com service.
vuid
2 years
This domain of this cookie is owned by Vimeo. This cookie is used by vimeo to collect tracking information. It sets a unique ID to embed videos to the website.
Advertisement cookies are used to provide visitors with relevant ads and marketing campaigns. These cookies track visitors across websites and collect information to provide customized ads.
Cookie
Duration
Description
_fbp
3 months
This cookie is set by Facebook to deliver advertisement when they are on Facebook or a digital platform powered by Facebook advertising after visiting this website.
AnalyticsSyncHistory
1 month
Used to store information about the time a sync with the lms_analytics cookie took place for users in the Designated Countries
bscookie
2 years
This cookie is a browser ID cookie set by Linked share Buttons and ad tags.
euds
session
These cookies are from Rocket Fuel (rfihub.com) and are used to deliver targeted advertising across their network sites ensuring users see relevant advertising.
fr
3 months
The cookie is set by Facebook to show relevant advertisments to the users and measure and improve the advertisements. The cookie also tracks the behavior of the user across the web on sites that have Facebook pixel or Facebook social plugin.
IDE
1 year 24 days
Used by Google DoubleClick and stores information about how the user uses the website and any other advertisement before visiting the website. This is used to present users with ads that are relevant to them according to the user profile.
loc
1 year 1 month
This cookie is set by Addthis. This is a geolocation cookie to understand where the users sharing the information are located.
NID
6 months
This cookie is used to a profile based on user's interest and display personalized ads to the users.
pxrc
2 months
The purpose of the cookie is to identify a visitor to serve relevant advertisement.
rlas3
1 year
The cookie is set by rlcdn.com. The cookie is used to serve relevant ads to the visitor as well as limit the time the visitor sees an and also measure the effectiveness of the campaign.
rud
1 year 24 days
The domain of this cookie is owned by Rocketfuel. The main purpose of this cookie is advertising. This cookie is used to identify an user by an alphanumeric ID. It register the user data like IP, location, visited website, ads clicked etc with this it optimize the ads display based on user behaviour.
ruds
session
The domain of this cookie is owned by Rocketfuel. This cookie is a session cookie version of the 'rud' cookie. It contain the user ID information. It is used to deliver targeted advertising across the networks.
sd-session-id
1 year 24 days
Registers data on visitors from multiple visits and on multiple websites. This information is used to measure the efficiency of advertisement on websites.
test_cookie
15 minutes
This cookie is set by doubleclick.net. The purpose of the cookie is to determine if the user's browser supports cookies.
UID
2 years
This cookie is used by AddThis as a unique user ID that recognises the user on returning visits.
UserMatchHistory
1 month
Linkedin - Used to track visitors on multiple websites, in order to present relevant advertisement based on the visitor's preferences.
uuid2
3 months
This cookies is set by AppNexus. The cookies stores information that helps in distinguishing between devices and browsers. This information us used to select advertisements served by the platform and assess the performance of the advertisement and attribute payment for those advertisements.
VISITOR_INFO1_LIVE
5 months 27 days
This cookie is set by Youtube. Used to track the information of the embedded YouTube videos on a website.
xtc
1 year 1 month
Anonymously tracks user behaviour on the websites that allow a user to share pages on social media using the AddThis tool. AddThis log the anonymous use to generate usage trends to improve the relevance of their services and advertising.
zync-uuid
1 year 23 days 17 hours
The purpose of the cookie is to serve visitors with relevant advertisement.
Other uncategorized cookies are those that are being analyzed and have not been classified into a category as yet.
Cookie
Duration
Description
CP5XKN6QLDFWUC
This cookie is provided by the Calculated Fields form. This cookie is used by the online calculators on the website. Without the Calculated Fields cookie the instant quotation may not work.