There are advantages to having people on site; particularly with juniors. So, I expect a lot of companies will go back to defaulting to mostly on site engineering teams. However, nearly two years of everybody defaulting to remote work has taught companies a few valuable lessons that are changing the industry:

- Remote work is not the end of the world. Most software teams found a way to function during the pandemic. That's a lesson both companies and developers learned.

- The relevance of on site, in person meetings is still important but not required 100% of the time. Being flexible here enables casting a wider net when hiring. Especially with specialist skills, this is important as convincing people to move to where your office is is hard. People now regard on site, in person meetings as quality time. It's something you put in your calendar because it doesn't happen every day and needs coordinating.

- Freelancers can work remotely or on site. However, you pay more for on site as it involves travel and inconveniencing them. The flip side is that if you go with remote freelancers, you are not restricted to your local area and you can engage specialists wherever they are. This was already a thing before covid. All my projects in the last five years we had at least some remote workers and I've been remote myself most of the last eight years.

- Having remote people in daily standups (in so far people still bother with those) on a video call has been the default for quite a while in all the places I've worked on site. This being awkward and annoying has made standups less popular over the last five years. We do weekly company wide video calls and lots of video only meetings (1 on 1, or small groups). It's rare for any of that to involve meeting rooms, projection screens, etc. The only proper standups I've attended were while doing the occasional onsite freelancing project. The last of those was a few years ago.

- Development processes are adapting. Post-its are no longer part of meetings because remote participants can't read those. All that stuff has long transitioned to issue trackers. Either it's tracked there or it didn't happen. With standups gone as well, that's two nails into the waterfall masquerading as agile style of Scrum that was the sad reality across our industry until Covid. Likewise bull shit bingo with Fibbonacci cards (aka estimation meetings) is no longer a thing. Nor are retrospectives with rooms full of upset people screaming at each other (we've all been there). Scrum was heavily dependent on on-site meetings and juggling lots of bits of paper. The remote/digital forms of all this exists of course but was always a bit awkward. Remotely doing these meetings just leads to remote people muting themselves, turning off their video, and reading HN or doing whatever while people go through the moves of doing everything "by the book". Scrum is just not optimal with remote people involved. What is increasingly replacing scrum is more Kanban like in nature and decouples planning and release (i.e. continuous deployments) heart beats. We plan in sprints but develop and release every day and use asynchronous tools to coordinate. Remote optimized forms of Agile processes look very different than Scrum and a lot more like what big OSS projects have been practicing for decades where scrum was never a thing.

- Having remote people is convenient for both companies in highly competitive markets (e.g. the Valley) where talent is scarce and charging very premium rates and companies in remote/rural areas where talent is locally non existent and convincing people to move to you is nearly impossible. These companies now have access to a global pool of workers willing to work remotely. Better still, you pay for the skills and not their on site presence. They might prefer on site but it's simply not an option for many companies. Now that companies have learned they can work with remote people, many of them grudgingly do.