Home Blog

The 5 Pillars of a Profitable Agile Transformation


An agile transformation is the continued means of adopting agile values, rules, and practices to enhance enterprise outcomes. Profitable agile transformations lead to price financial savings, improved buyer satisfaction, and quicker time to market.

Agile transformations do not succeed by chance. Sustainable change takes time, effort, dedication, and planning.

Most organizations know this, so that they spend money on coaching, roll out new instruments, undertake Scrum or one other framework, and maybe usher in agile coaches. Some organizations begin small, with one or two groups in order that they’ll uncover challenges and be taught from their experiences earlier than increasing their effort. Others go all in, transitioning many groups without delay. (Learn extra about this in “Selecting to Begin Small or Go All In When Adopting Agile.“)

These are all steps in the best route however they’re not sufficient on their very own.

For the previous twenty years, we’ve labored carefully with groups in each form of surroundings—from tightly regulated industries to fast-paced startups—and throughout merchandise, platforms, and companies. We’ve seen what will get in the way in which and what engenders transformation.

In our expertise, sustainable change is determined by 5 important pillars: mindset, practices, roles, teamwork, and assist. When even considered one of these pillars is lacking or uncared for, progress stalls. However when all 5 are bolstered, an agile transformation can thrive.

Let’s take a better take a look at every one.

Pillar One: Mindset – Suppose Agile to Be Agile

At its coronary heart, agile is a mind-set. An agile mindset embraces change, values collaboration, and views failure as a studying alternative. With out this mindset, folks would possibly undergo the motions of an agile framework like Scrum with out ever actually benefiting from it.

Mindset change is likely one of the most typical challenges we hear about. In our survey of agile practitioners, this typical remark highlights the boundaries:

“It’s tough to shift folks’s mindset from delivering a giant bang resolution to delivering iteratively.”

One other famous:

“Management says we’re agile, however they nonetheless demand the identical previous waterfall deadlines.”

Others described the problem this manner:

“Groups are ‘doing agile’ however don’t imagine in it. They nonetheless consider change as failure.”

For those who’re championing an agile transformation, it’s important that everybody understands why they’re working in a different way. That understanding empowers them to make higher selections in ambiguous conditions. It additionally means they’re extra prone to reply nicely to uncertainty or obstacles.

Issues with an agile transformation when mindset is ignored

You would possibly hope that when a handful of agile practices are in place, an agile mindset will seep in all by itself. In my expertise, this isn’t the case. On your agile transformation to succeed, you have to consciously set up the brand new mind-set.

With no concerted efffort to elucidate why new practices are in place, progress stalls. Individuals disengage, see the agile transformation as an exterior imposition, and lose the willingness to examine and adapt. Over time, belief erodes between group members and between groups and management.

In this sort of surroundings, any good points shortly grow to be short-term as folks revert to previous methods of working.

Warning indicators that your agile transformation is in hassle 

We regularly see organizations the place agile has been applied erratically. Some components of the enterprise strictly comply with Scrum, others suppose they’re agile as a result of they use Jira. This inconsistency in what it even means to be agile results in confusion and disillusionment.

Enhancements to attempt now

To construct alignment, attempt inviting people to share tales of what agility appears like when it’s working nicely. Or run a easy retrospective-style session the place folks record behaviors that really feel agile and those who don’t. Whenever you floor variations in interpretation, you create the chance for significant dialogue—and sensible enhancements.

You’ll discover extra concepts on this submit: Methods to Get Groups Aligned on What It Means to Be Agile

Scrum's inherent flexibility can sometimes cause confusion for agile teams and organizations.

Pillar Two: Practices – Put Agility Into Motion

If mindset offers you the why behind an agile transformation, practices provide the how. Consumer tales, backlog refinement, dash planning, and iterative, incremental supply are the day-to-day instruments of agile groups.

Agile practices assist agile groups plan, collaborate, and ship successfully. When executed nicely, they improve transparency, expose dangers early, and foster alignment.

Respondents to our agile problem survey have been clear about the place issues go off monitor.

One wrote:

“We don’t know tips on how to break tales down sufficiently small to complete in a dash.”

One other shared:

“Backlog refinement is inconsistent and sometimes skipped resulting from time constraints.”

And maybe most tellingly:

“Planning takes hours and nonetheless nobody is aware of what they’re engaged on Monday morning.”

Issues with an agile transformation when practices are ignored

With out implementing new practices, folks are inclined to function largely as they did earlier than, creating a corporation that’s agile in identify solely. Greater than that, poor agile practices create an absence of visibility. Work piles up unfinished, high quality suffers, and suggestions loops break down. Even motivated groups wrestle to ship persistently with out sensible instruments that assist agile methods of working.

Warning indicators that your agile transformation is in hassle 

It is often straightforward to inform when you’re fighting a number of agile practices. The problem is available in figuring out precisely the place the issue lies and tips on how to deal with it. Listed below are only a few of the widespread points we see:

  • Each day Scrum: The every day scrum turns into a standing report to the Scrum Grasp relatively than a collaborative planning session for the day.
  • Dash Size: Sprints are too lengthy to create a daily cadence, or too brief to complete significant work.
  • Dash Planning: Individuals emerge from planning unclear on the objective or overcommitted on scope.
  • Writing Tales: Tales are too giant or obscure to finish in a single dash.
  • Retrospectives: Individuals repeat the identical surface-level observations in each dash retrospective with out addressing root causes.
  • Siloed Work: Work doesn’t overlap: design is absolutely executed earlier than growth, and growth is completed earlier than testing begins. 
  • Estimating: Agile estimation turns into a painful debate or is skipped fully, resulting in unpredictable supply.

Mountain Goat Software program affords coaching and mentoring on many of those particular matters, from writing higher tales to facilitating simpler retrospectives.

Enhancements to attempt now

Coaching and training ought to occur together with assessments to deal with talent gaps and assist the continual enchancment wanted for sustainable and efficient transformation. Mountain Goat affords free assets and instruments to assist assess the particular observe challenge that’s holding you again:

Parts of Agile

Parts of Agile is a free evaluation device designed that can assist you consider how nicely your group or group is progressing towards agility. It identifies strengths, highlights areas for enchancment, and supplies a transparent report so you possibly can focus your efforts the place they’ll make the most important affect.

Personalised Information to Agile

The Personalised Information to Agile is free, personalized report that recommends sensible steps to enhance your agile practices based mostly in your distinctive targets and challenges. Full a brief quiz and obtain tailor-made assets that can assist you work extra successfully.

The Scrum Framework

A free video collection that gives a strong overview of the important thing Scrum practices and the way they work collectively.

Agile Coaching ROI Calculator

Steady enchancment is a key agile tenet, one which regularly requires persevering with training. The free Mountain Goat ROI calculator helps you estimate the return on funding from agile coaching by evaluating potential advantages towards prices. It consists of calculation steerage, key metrics, and success tales so you possibly can confidently assess the worth of your funding in coaching.

The true ROI of agile training includes both the benefits and the cost

Pillar Three: Roles – Make clear Who Does What

Agile introduces new roles and redefines current ones. New roles like Scrum Grasp, product proprietor, agile coach, and even Scrum group member (developer) convey new obligations and shift previous ones. However with out readability across the boundaries of those roles, transformation stalls.

Within the phrases of 1 practitioner:

“We have now a PO, however every thing nonetheless goes by way of the VP.”

One other added:

“No person actually is aware of what the Scrum Grasp is meant to do, so they only schedule conferences.”

And a 3rd summed it up this manner:

“Too many cooks within the backlog.”

Issues with an agile transformation when position readability is ignored

If roles usually are not clarified, folks will likely be confused about their obligations. This creates bottlenecks, with necessary work delayed whereas folks anticipate approvals. Alternatively, selections are made however are made inconsistently. When roles are fuzzy, accountability additionally suffers, and with it, belief and velocity.

Generally a transformation stalls simply because individuals are not sure of who ought to be doing what, not as a result of folks aren’t purchased in or working laborious.

Warning indicators that your agile transformation is in hassle

Position confusion can appear like: unclear authority over the backlog, folks bypassing the Scrum Grasp, or a number of stakeholders giving conflicting instructions. Generally folks step into agile roles with leftover expectations from conventional hierarchies, or by no means land on a shared understanding of who’s answerable for what.

Enhancements to attempt now

You’ll be able to enhance alignment by doing the next three issues:

Make clear roles and obligations

Guarantee everybody understands their position. For instance, the product proprietor is answerable for prioritizing the backlog, the Scrum Grasp facilitates the method, and the group of builders self-organizes to ship the work. Misunderstandings usually stem from unclear expectations.

Encourage self-organization

Self-organizing groups are empowered to make selections about how they work, inside a set of shared values and guidelines set forth by administration. If individuals are hesitant to resolve, resist stepping in to make selections for them. As a substitute, reiterate that the choice is theirs and assist them of their selection.

Facilitate communication

If a number of stakeholders or businesspeople are offering conflicting priorities, work to determine a single supply of fact, resembling a transparent roduct proprietor. Encourage stakeholders to resolve conflicts amongst themselves earlier than bringing priorities ahead.

Clear position definitions will improve alignment and scale back friction. When everybody understands who’s accountable for what, folks really feel empowered to behave decisively and ship worth, enhancing morale and productiveness. For an introduction to the Scrum roles and obligations, go to: https://www.mountaingoatsoftware.com/agile/scrum/roles

Position Clarification Assets

Pillar 4: Teamwork – Collaborate to Ship

Success with an agile transformation is determined by how successfully everybody (together with builders, testers, UX designers, analysts, and so forth) works collectively to ship worth. In different phrases, success requires teamwork and agile collaboration

Efficient agile teamwork allows quick supply, and steady enchancment. When folks collaborate successfully, they full tales inside brief iterations and adapt shortly to vary.

However it’s not all the time straightforward to simply ‘work nicely collectively.’ We heard from practitioners who weren’t seeing profitable collaboration inside a Scrum or agile framework:

“We nonetheless hand off work between builders and testers like we did earlier than agile.”

“Our group is distant and barely talks exterior of standups.”

“One or two folks carry the dash each time.”

Issues with an agile transformation when teamwork is ignored

With out enhancements in teamwork, organizations will see restricted good points. Individuals fall into silos and work turns into sequential, making knowledge-hoarding extra probably. Over time, this will result in burnout and disengagement.

Chances are you’ll discover that individuals are hitting a wall with their supply tempo, and no quantity of course of change or extra time helps to enhance the scenario.

Warning indicators that your agile transformation is in hassle 

Frequent breakdowns embody work executed in isolation as a substitute of shared possession, with a sense of “I’ve executed my half, now it’s their flip.”

Individuals would possibly delay testing till the top of the dash. Sure people could persistently do many of the work. Or folks could have a common sense that they work nicely collectively however wrestle to pinpoint what that appears like in observe.

Enhancements to attempt now

To enhance collaboration, begin by making work seen and making certain targets are shared. Attempt swarming: get two or three folks engaged on one story on the similar time to construct shared possession. Search for methods to scale back handoffs and encourage knowledge-sharing.

For those who’re unsure what to vary, think about using the traits of high-performing agile groups as a dialogue device: What Is a Excessive-Performing Agile Crew?

Pillar 5: Assist – Acquire Purchase-In Past the Crew

The fifth pillar of transformation is usually essentially the most neglected: how others—leaders, stakeholders, adjoining departments—work together with and assist agile groups.

Management buy-in and engagement in any respect ranges is crucial for a profitable agile transformation. Sturdy agile leaders foster a supportive tradition within the following methods:

  • Allocate assets
  • Set the imaginative and prescient
  • Talk the targets for agile transformation
  • Rejoice achievements, massive and small
  • Alleviate resistance to vary in any respect ranges of the group.

Even essentially the most agile of groups will wrestle if the encompassing group operates with previous assumptions. If stakeholders demand supply dates with out negotiation or leaders count on certainty as a substitute of adaptability, groups face an uphill battle. For instance:

“Stakeholders count on precise dates however don’t come to opinions or refinement.”

“We’re agile, however management nonetheless thinks when it comes to massive up-front plans.”

“Altering priorities are dropped in, mid-sprint by senior leaders with no dialogue.”

Issues with an agile transformation when assist is ignored

With out sufficient assist and understanding, group members grow to be annoyed from being pulled in too many instructions. Stakeholders see solely missed expectations. Product homeowners grow to be order-takers as a substitute of collaborators. Over time, folks could begin to cover points or disengage fully. Consequently, the agile transformation turns into a supply of pressure not enchancment.

Warning indicators that your agile transformation is in hassle 

Probably the most widespread breakdowns is anticipating predictability with out participation. Leaders might want dependable supply, but when they skip opinions and keep away from refinement periods, they rob the group of alignment. Equally, if estimates are misunderstood as commitments, groups can really feel pressured to inflate numbers or pad buffers.

Enhancements to attempt now

To reset expectations, contain stakeholders early and sometimes. Encourage stakeholders to attend opinions, not simply as a ‘demo,’ however to ask questions and provides suggestions.

Attempt to foster a group mentality: Body challenges, resembling tight deadlines or scope points, as shared issues. Encourage collaboration between the group and stakeholders to search out options that steadiness enterprise wants with the group’s capability.

If estimation is a contentious challenge between the group and stakeholders, think about reviewing how your groups discuss and use estimates. Are estimates serving to or hurting group focus? They will generally assist builders make trade-offs however generally they trigger extra confusion than readability. For extra, learn: Are Estimates Ever Useful to Builders?

Begin The place You Are. Enhance Iteratively.

No agile transformation begins with every thing found out. That’s why we encourage iterative and incremental enchancment to repeatedly determine and pursue adjustments that can make work much less cumbersome and extra environment friendly. 

Use the 5 pillars to evaluate the place your group is immediately in its agile transformation, and resolve the place to focus subsequent. Every enchancment you make helps the others. That’s how actual, lasting agility takes maintain.

Able to Put These 5 Pillars into Follow? In case your group is fighting misalignment, inconsistent outcomes, or stalled progress, our Engaged on a Scrum Crew course will help.

In simply two reside, on-line days, your group will be taught side-by-side by way of interactive workouts and real-world situations, leaving with a shared understanding and sensible instruments to succeed.

Carry your entire group, or a couple of key change-makers, and return able to ship each dash. Learn extra in regards to the course and register right here.

Final replace: July twenty fourth, 2025

ios – Why is my xcode construct engaged on an actual machine, however crashing on a simulator?


I’m making an attempt to check a function that requires me to simulate my location, which isn’t attainable on an actual machine so far as I do know. This is the reason I now have to construct my app that has been working for a lot of weeks and a whole lot of builds on my actual machine, on a simulator. Nevertheless, as quickly as I begin the app within the simulator (or it will get began by xCode), the app crashes with this log:

*** Terminating app as a consequence of uncaught exception 'NSInvalidArgumentException', cause: 'Couldn't discover a storyboard named 'Predominant' in bundle NSBundle  (loaded)'
*** First throw name stack:
(
    0   CoreFoundation                      0x000000010a3677d4 __exceptionPreprocess + 172
    1   libobjc.A.dylib                     0x000000010681b7cc objc_exception_throw + 72
    2   UIKitCore                           0x0000000145d7f1f0 -[UIStoryboard name] + 0
    3   UIKitCore                           0x0000000145bd6810 -[UIApplication _storyboardInitialMenu] + 112
    4   UIKitCore                           0x0000000145bf3544 -[UIApplication buildMenuWithBuilder:] + 44
    5   UIKitCore                           0x00000001460f2cec -[UIMenuSystem _buildMenuWithBuilder:fromResponderChain:atLocation:inCoordinateSpace:] + 92
    6   UIKitCore                           0x000000014501b900 -[_UIMainMenuSystem _buildMenuWithBuilder:fromResponderChain:atLocation:inCoordinateSpace:] + 112
    7   UIKitCore                           0x00000001460f2c2c -[UIMenuSystem _newBuilderFromResponderChain:atLocation:inCoordinateSpace:] + 96
    8   UIKitCore                           0x000000014501b7d4 -[_UIMainMenuSystem _automaticallyRebuildIfNeeded] + 172
    9   UIKitCore                           0x000000014501b80c -[_UIMainMenuSystem _keyCommands] + 20
    10  UIKitCore                           0x0000000145beeeec -[UIApplication _keyCommands] + 80
    11  UIKitCore                           0x0000000145bffab0 -[UIResponder _enumerateKeyCommandsInChainWithOptions:usingBlock:] + 436
    12  UIKitCore                           0x0000000145beeb74 -[UIApplication _immediatelyUpdateSerializableKeyCommandsForResponder:] + 164
    13  UIKitCore                           0x00000001460eb9a8 -[_UIAfterCACommitBlock run] + 64
    14  UIKitCore                           0x00000001460ebdbc -[_UIAfterCACommitQueue flush] + 164
    15  UIKitCore                           0x0000000145bdf54c _runAfterCACommitDeferredBlocks + 256
    16  UIKitCore                           0x0000000145bd1028 _cleanUpAfterCAFlushAndRunDeferredBlocks + 76
    17  CoreFoundation                      0x000000010a2c7134 __CFRUNLOOP_IS_CALLING_OUT_TO_A_BLOCK__ + 20
    18  CoreFoundation                      0x000000010a2c6898 __CFRunLoopDoBlocks + 348
    19  CoreFoundation                      0x000000010a2c1450 __CFRunLoopRun + 808
    20  CoreFoundation                      0x000000010a2c0cec CFRunLoopRunSpecific + 536
    21  GraphicsServices                    0x000000011f51ad00 GSEventRunModal + 164
    22  UIKitCore                           0x0000000145bd27d4 -[UIApplication _run] + 796
    23  UIKitCore                           0x0000000145bd6ba0 UIApplicationMain + 124
    24  UIKitCore                           0x0000000144f9cf1c block_destroy_helper.14 + 9560
    25  [...].debug.dylib                    0x0000000107067cdc $sSo21UIApplicationDelegateP5UIKitE4mainyyFZ + 128
    26  [...].debug.dylib                    0x0000000107067c4c $s4[...]11AppDelegateC5$mainyyFZ + 44
    27  [...].debug.dylib                    0x0000000107067d58 __debug_main_executable_dylib_entry_point + 28
    28  dyld                                0x00000001046113d4 start_sim + 20
    29  ???                                 0x000000010470ab98 0x0 + 4369460120
)
libc++abi: terminating as a consequence of uncaught exception of sort NSException
*** Terminating app as a consequence of uncaught exception 'NSInvalidArgumentException', cause: 'Couldn't discover a storyboard named 'Predominant' in bundle NSBundle  (loaded)'
terminating as a consequence of uncaught exception of sort NSException
CoreSimulator 1010.15 - System: iPhone 16 Professional (7F88C881-9905-4665-AC11-282A5171CCAC) - Runtime: iOS 18.5 (22F77) - DeviceType: iPhone 16 Professional

It appears to crash as a result of my app is in search of a storyboard file, which I’ve faraway from day one, as a result of I’m doing every thing programatically.

Steps I’ve completed:

  1. Take away the reference to storyboard in Launch Display. -> Was already empty
  2. Examine for any reference to “Predominant” or Storyboard in my data.plist -> Nothing
  3. Checked if the deployment goal was set to common or something aside from iPhone -> Was already the case.

I do not know what else I can examine. AI is telling me that it could be a dependency that’s making an attempt to reference Storyboard. In that case, how do I discover out which one it’s?

RxJS with Ben Lesh – Software program Engineering Every day


RxJS is an open-source library for composing asynchronous and event-based applications. It supplies highly effective operators for remodeling, filtering, combining, and managing streams of knowledge, from person enter and internet requests to real-time updates.

Ben Lesh is the creator of RxJS. He joins Josh Goldberg to speak about his path into engineering and the RxJS library.

Josh Goldberg is an unbiased full time open supply developer within the TypeScript ecosystem. He works on tasks that assist builders write higher TypeScript extra simply, most notably on typescript-eslint: the tooling that allows ESLint and Prettier to run on TypeScript code. Josh recurrently contributes to open supply tasks within the ecosystem resembling ESLint and TypeScript. Josh is a Microsoft MVP for developer applied sciences and the writer of the acclaimed Studying TypeScript (O’Reilly), a cherished useful resource for any developer looking for to study TypeScript with none prior expertise exterior of JavaScript. Josh recurrently presents talks and workshops at bootcamps, conferences, and meetups to share data on TypeScript, static evaluation, open supply, and basic frontend and internet improvement.

Please click on right here to see the transcript of this episode.

Sponsors

APIs are the inspiration of dependable AI – and dependable APIs begin with Postman. Trusted by 98% of the Fortune 500, Postman is the platform that helps over 40 million builders construct and scale the APIs behind their most important enterprise workflows.

With Postman, groups get centralized entry to the most recent LLMs and APIs, MCP assist, and no-code workflows, multi function platform. Rapidly combine vital instruments and construct multi-step brokers with out writing a single line of code.

Begin constructing smarter, extra dependable brokers right this moment. Go to postman.com/sed to study extra.

Misplaced, Discovered, and Flourishing: My Journey with Cisco


This submit was authored by Chirag Garg, a latest Software program Engineering Intern who nearly didn’t apply — however ended up discovering his confidence, group, and profession path at Cisco.

Man standing in front of Silver Cisco sign.Man standing in front of Silver Cisco sign.

Again in 2023, I used to be doing what most engineering college students do — making use of for internships, taking on-line assessments, and refreshing my inbox prefer it was my job. At first, I felt fairly assured. I had tasks beneath my belt, I’d labored laborious, and I believed I used to be prepared.

However then … the rejections began piling up.

One after one other.

It was discouraging, actually. I began questioning if I used to be actually minimize out for tech. Possibly I didn’t have “it.” Possibly I used to be simply one other résumé in an enormous pile. I bear in mind staring on the Cisco internship utility and pondering, “There’s no approach I’ll get in.”

However in some way, I satisfied myself to simply click on submit.

That One Sure

When the choice checklist got here out, I didn’t even anticipate to see my identify, however there it was.

I used to be going to intern at Cisco.

That second shifted one thing in me. I felt like possibly, simply possibly, I belonged. I began brushing up on my expertise, revisiting fundamentals, diving into AI and methods — attempting to be as prepared as doable.

Then got here Might 2024, and my summer season internship at Cisco started.

Why Cisco Felt Completely different — and Why That Mattered

From the very first day, I knew Cisco was totally different. It wasn’t nearly work. It was about folks.

I met a crew that didn’t anticipate me to have all of the solutions. They didn’t make me really feel like I needed to show myself each second. As a substitute, they gave me one thing I didn’t even know I wanted — area — area to study, area to ask questions (even the foolish ones), area to develop with out concern of failing.

There have been so many little issues that made a big impact, too. Like how somebody would all the time drop a studying useful resource simply once I was caught, or how informal tea breaks become deep discussions about profession objectives, and the way nobody made me really feel “like simply an intern.”

We performed video games collectively, had random rant classes (sure, these assist), and shared laughs over issues that had nothing to do with code. It felt human. And for somebody who felt misplaced simply months earlier, that meant all the pieces.

The Ripple Impact

That summer season at Cisco didn’t simply impression my LinkedIn — it modified how I noticed myself.

I began taking part extra in faculty actions. I took on management roles. I turned the AI Lead for the Affiliation for Computing Equipment (ACM CSS) chapter at my faculty, gained a hackathon, and ultimately, bought a letter for a spring internship and a full-time supply from Cisco.

That one sure modified all the pieces. Cisco didn’t simply give me a stepping stone — it gave me a springboard. The truth that I may come again for one more internship after which transfer right into a full-time function confirmed me that at Cisco, progress isn’t simply inspired — it’s doable. You don’t have to decide on one path. You’re given the liberty to discover the place you wish to go, trusted to tackle new challenges, and given the assist to truly get there.

Beginning the intern journey once more in spring felt acquainted — however in the easiest way. I wasn’t the identical individual I used to be a yr in the past. And Cisco wasn’t only a firm anymore — it felt like a spot I belonged.

#LoveWhereYouWork — And Being Trusted to Do It

As a Software program Engineering Intern, I get to work on the intersection of methods and AI — two evolving areas that genuinely problem and excite me. However actually? The perfect half isn’t simply the work. It’s how I’m trusted to do the work. I’ve had the liberty to make choices, the possibility to study from errors, and the assist to ask, “Why not do this?”

That type of tradition? It’s uncommon.

To Anybody Who’s Nonetheless Figuring It Out …

For those who’re the place I used to be — observing job boards, feeling such as you’re falling behind, doubting your self — I wish to say this: don’t surrender on your self.

Apply for that function even in the event you don’t really feel “prepared.” Ask questions even in the event you assume they’re fundamental. Take that probability, even in the event you assume you gained’t make it.

As a result of generally, all it takes is one sure.

Cisco was my sure.  And in saying sure to me, they helped me say sure to myself.

Are you able to sure to a brand new alternative? Take a look at our careers right here!

Subscribe to the WeAreCisco Weblog and by no means miss a narrative!

Share:

ios – Maintain two view positions synchronized throughout animation


I’ve a questions on syncing view positions throughout an animation change.

This is the model I am aiming for, however discover when the keyboard seems, the view top modifications instantly with no animation.

working version no animations on shrinking list view height

This model is what I presently have, with the animation when view top shrinks, however discover on the swipe down there’s a noticeable hole between the date header and the highest of the checklist view. Type of seems damaged.

broken animation on swipe

This is the code:

                        .onReceive(keyboardHeightPublisher.removeDuplicates()) { top in
                        withAnimation {
                            let unadjustedKeyboardHeight = self.keyboardUnadjustedHeight - top
                            self.keyboardAdjustedListHeight = unadjustedKeyboardHeight
                        } completion: {
                            change (self.modalState) {
                            case .didShow:
                                self.modalState = .didShow
                            default:
                                break
                            }
                        }
                    }

So the self.keyboardAdjustedListHeight is connected to to the checklist view:

.body(top: self.keyboardAdjustedListHeight)
                    .place(CGPoint(x: (geometry.dimension.width / 2), y: (self.gesturePosition.y + (self.dateHeaderRect.top / 2)) + (self.keyboardAdjustedListHeight / 2)))

Your entire modal is is simply

ZStack 
  - VStack (date header)
       - drag gesture
  - VStack (checklist view)
       - positioned underneath the date header primarily based on drag gesture place.

I attempted matchedGeometryEffect however that did not do the trick.

Any clues?

EDIT: I am aiming to get the second GIF (animated checklist view) however the one drawback is the hole upon dragging down.

SOLUTION:
Used a variation of @Benzy Neez’s answer right here.

enter image description here

This was the supposed impact. Principally an animation of the checklist view shrinking however no separation of the date header from the checklist view on down drag.
This code is beneath the checklist view VStack.
So nonetheless:

ZStack 
    VStack (date view)
        (drag gesture updates place)
    VStack (checklist view)
        (updates place primarily based on drag gesture)

            .animation(.easeInOut, worth: self.animateShrinkModal)
                    .toolbar(content material: {
                        ToolbarItem(placement: .keyboard) {
                            EmptyView()
                        }
                    })
                    .onReceive(keyboardHeightPublisher.removeDuplicates()) { top in
                        let unadjustedKeyboardHeight = self.keyboardUnadjustedHeight - top
                        self.keyboardAdjustedListHeight = unadjustedKeyboardHeight
                        
                        if top > .zero {
                            self.animateShrinkModal.toggle()
                        }
                        
                        change (self.modalState) {
                        case .didShow:
                            self.modalState = .didShow
                        default:
                            break
                        }
                    }

As you’ll be able to see I solely set off the animation when the keyboard top shouldn’t be zero. The modal top is reset with out an animation proper after the keyboard top is zero which is properly after the drag ends. Even dragging slowly towards the keyboard has the specified impact.