9 Comments

More collaboration is often the answer to many software problems teams are encountering.

Expand full comment

Conclusion, year 2024 and there are tons of teams and devs who still don't know what continuous integration is or what rebase is all about.

Expand full comment

Im 100% agree! Devs, in general, dont like the tedius of review code. In my experience some teams dont do the review process with 100% dedication, and when it occurs your are not garantee quality what is what do you want with code reviews.

Expand full comment

thanks for writing about Trunk based development.

Wouldn't rebasing the feature branch on the main branch **often** solve the issue of diverging branches? Perhaps I misunderstood the concept and need more reading.

Expand full comment

Thanks for the comment, Neo!

That could indeed help, but it still does not solve the divergence between different feature branches. The more branches we have, the more versions of the app we end up with. More branches means more work in progress, leading to increased lead time, which all makes continuous delivery less possible.

If you have any more question about the topic, just hit me up my friend, happy to explain in more detail!

Expand full comment

sure, thank you.

I think the remote feature branches shouldn't be long living but instead split the feature into small chunks. And merge them often to main branch.

TBD sounds like a cool concept. So I'm going to read about it and come back if any questions.

Expand full comment

These types of articles are very superficial and don’t consider different aspects of different teams and dynamics.

Peer programming in remote positions is pretty challenging. Even in person.

And also, trunk-based development is in no way “a first step to applying CI”.

CI/Cd needs A LOT of tests and there are many situations where tests are not covering enough code or do not exist at all. Not ideal, but a reality.

And creating them, especially for existing code, is very expensive. As is implementing TDD when your developers have no experience in it.

And there are very valid use cases where you need to have different versions of your code. For example, you develop a separate feature that can’t be released in an unfinished state but your production still needs updates during that time. I know feature flags can mitigate this, but not always.

It’s never as black and white. Every practice and tool and standard has its specific situations where they should be applied.

Expand full comment

I can see from my network & from the job ads that less and less organization are using peer programming. It was trending few years ago, but it didn't reach a good momentum to get adapted by the masses and in reality is in diminution.

Expand full comment

The best practice is to use what is suitable at the moment for your current project and to be agile in adopting new concepts as the project and the team grows.

There is no universal formula that works everywhere, as not every company is an unicorn.

Expand full comment