Skip to main content

Command Palette

Search for a command to run...

Leaving a codebase

Published
•4 min read•View as Markdown
Leaving a codebase
N

Object-oriented software developer. Making quality software at 10Pines. Proficient in dynamic languages (Smalltalk, Ruby, Javascript). Teacher at Universidad Católica Argentina. Big fan of object-oriented design, test-driven development and legacy code refactoring.

Photo by Lina Trochez on Unsplash

Leaving a codebase, especially if you worked on it for a long time, requires some work to properly hand it off to your colleagues that will continue with the project.

I'm leaving a codebase where I contributed for 6 years. I've made more than 2000 commits and I've added, modified, and removed a lot of lines of code. Here are some things I have in mind as part of my offboarding process.

Backlog grooming

It's very likely that during your contribution period, your project's backlog accumulated several ideas, new features, bugs, investigation or technical debt tasks.

It could be very confusing if a team inherits a backlog with a bunch of incomprehensible tickets... I've been there!

  • Are there tickets no longer relevant? Let's delete those to avoid confusion!
  • Do the tickets have enough context? Ideally, anyone from the team should be able to read it and start working on it.
  • Are they well categorized? Using labels/issue types of epics depending on the case could help you find tasks faster.
  • Do they have a manageable size? Do they need to be broken down into smaller tickets?
  • Are there any technical notes you can leave as "hints" to tackle those tickets?

When in doubt, if we feel we're not ready to pick a ticket and nobody understands the context behind it, my suggestion is to remove that ticket because it can cause confusion. If it's important, it will appear again in the future.

Knowledge sharing sessions

Sometimes it is a good idea to just sit together and discuss a specific topic, with a main goal: for the leaving person, to share what they have learned, and for the rest of the audience, to learn as much as they can and ask a lot of questions.

I know that we used to call this a "knowledge transfer" session, but I think the word "sharing" sounds better and more human.

It does not need to be a super organized event, you can improvise if you don't have enough time, I wrote a post about that, in case you are looking for a first-hand experience 😬

Some pattern I follow for these type of presentations is the following:

  • A little bit of history and context about the thing you are presenting.
  • Architecture overview (if you have charts, this is the moment to show them).
  • Deep dive into the code. (this can be optional depending on how much time do you, and your colleagues have)
  • Resources (presentations, links to diagrams, relevant parts of the code, wiki pages).

A good idea is to also record those sessions so that people joining the team after you, can use them as onboarding material.

Cleanup code

Any time is a good time to think about unused code and getting rid of it. Especially if you are leaving the codebase and you know there are things that are deactivated or just unused. It can be an easy task but also challenging because you don't want anything else to break. Also, make sure you work on removing all the code that is unused. I recommend you reading this article I wrote some time ago called "Clean Code Cleanups" for more information about ways to safely delete code.

Document architecture and important parts of the code

A more "formal" way of doing a hand-off is leaving technical documents describing the most important areas of your project.

  • Don't go too low-level. Class and method names may change, technologies, and version numbers as well.
  • What are the system's interactions with other systems? Who are its users (people, other systems, both)?
  • Setup instructions

And if you are documenting multiple apps and services, make sure to have a centralized "discovery" page/document to access all the docs from a single place.

Setup slots for pairing and mobbing

Usually, your last days are not going to be working solo and/or being that key person of a long development.

This is a good opportunity to maximize your availability to pair with other people, letting them be the drivers of the sessions most of the time, and you playing a supporting role. Imagine what could happen if you are not there. Mob programming sessions are helpful as well, but always letting the rest of the people drive.

If you want to keep your agenda organized, you can block time for pairing preemptively. So your colleagues know when they can find you for pairing or for just some questions.

Make a plan

All the things considered before can be part of an offboarding plan.

How many days/weeks do you need to achieve that? Which people do you need to be involved with during the process?

Where would you leave all your deliverables? Like diagrams or documents or links to recorded sessions.

I recommend making a checklist and making sure all your items are done before you leave! And share this information with everyone so they can request things and see your progress and outputs.

In summary, I think this is one of the aspects that makes a developer more professional and kind about the code and the people you work with. I hope you find this information useful. If you have any other tips or ideas, let me know!

S

This is exceptionally informatics, fresh and clear. I feel that everything has been depicted in a deliberate way so peruser could get the greatest data and learn numerous things Escorts Service in Bangalore || Bangalore Escorts Service

S

I have been dazzled subsequent to perusing this in light of some quality work and useful contemplations. I simply need to express profound gratitude to the author and want you to enjoy all that life has to offer for coming! https://www.ritaescortsdelhi.com/Delhi/Escorts/Lipika.html https://www.ritaescortsdelhi.com/Delhi/Escorts/Heena.html https://www.ritaescortsdelhi.com/Delhi/Escorts/Kiara.html https://www.ritaescortsdelhi.com/Delhi/Escorts/Kubra.html https://www.ritaescortsdelhi.com/Delhi/Escorts/Meenu.html

S

I got what you mean, much obliged for posting. I'm glad to track down this site through google Observe women in Delhi for Incalls or Outcalls escort services call girls in Delhi. https://www.ritaescortsdelhi.com/Delhi/Escorts/Sital.html https://www.ritaescortsdelhi.com/Delhi/Escorts/Rosni.html https://www.ritaescortsdelhi.com/Delhi/Escorts/Sweety.html https://www.ritaescortsdelhi.com/Delhi/Escorts/Mayuri.html https://www.ritaescortsdelhi.com/Delhi/Escorts/Mia.html

S

Book youthful and amicable associates every minute of every day. A colossal decision of free and agency Escort calls girls in Delhi. https://www.ritaescortsdelhi.com/Delhi/Escorts/Priya.html https://www.ritaescortsdelhi.com/Delhi/Escorts/Muskan.html https://www.ritaescortsdelhi.com/Delhi/Escorts/Rakhi.html https://www.ritaescortsdelhi.com/Delhi/Escorts/Seema.html https://www.ritaescortsdelhi.com/Delhi/Escorts/Simar.html

S

All over Lohit there live more escort services offered online for simple access at whatever point wanted. In data, there are consequently more web-based escort service sites that one is gone on which one to choose. https://www.ritaescortsdelhi.com/Delhi/Escorts/Sloka.html https://www.ritaescortsdelhi.com/Delhi/Escorts/Sufi.html https://www.ritaescortsdelhi.com/Delhi/Escorts/Tina.html https://www.ritaescortsdelhi.com/Delhi/Escorts/Bhoomika.html https://www.ritaescortsdelhi.com/Delhi/Escorts/Madhuri.html

S

You can peruse more escort profiles and make your choice depending on what issue to you including by race, size, or even suggestive direction. https://www.ritaescortsdelhi.com/Delhi/Escorts/Karishma.html https://www.ritaescortsdelhi.com/Delhi/Escorts/Alina.html https://www.ritaescortsdelhi.com/Delhi/Escorts/Aliya.html https://www.ritaescortsdelhi.com/Delhi/Escorts/Ammy.html https://www.ritaescortsdelhi.com/Delhi/Escorts/Anjali.html

S

A large portion of the best escort sites will likewise make accessible insights concerning value, installment procedure, and the sort of services made accessible by the escorts. https://www.ritaescortsdelhi.com/Delhi/Escorts/Ankita.html https://www.ritaescortsdelhi.com/Delhi/Escorts/Dipika.html https://www.ritaescortsdelhi.com/Delhi/Escorts/Juhi.html https://www.ritaescortsdelhi.com/Delhi/Escorts/Kavya.html https://www.ritaescortsdelhi.com/Delhi/Escorts/Kritika.html https://www.ritaescortsdelhi.com/Delhi/Escorts/Mihika.html

S

This astonishing data has been shared by you, Thanks for setting aside the effort to examine this, I feel firm about it and love learning more on this point. If conceivable, as you gain skill, would you mind refreshing your blog with additional data? It is incredibly useful for me. https://www.ritaescortsdelhi.com/Delhi/Escorts/Roshni.html https://www.ritaescortsdelhi.com/Delhi/Escorts/Aditi.html https://www.ritaescortsdelhi.com/Delhi/Escorts/Amber.html https://www.ritaescortsdelhi.com/Delhi/Escorts/Angelika.html https://www.ritaescortsdelhi.com/Delhi/Escorts/Adira.html https://www.ritaescortsdelhi.com/Delhi/Escorts/Amme.html

S

I have a few escorts call girls who are for the most part exceptionally hot and are never going to neglect so you will come there and appreciate it with lavish full-call girls. https://www.ritaescortsdelhi.com/Delhi/Escorts/Dimpi.html https://www.ritaescortsdelhi.com/Delhi/Escorts/Nimmi.html https://www.ritaescortsdelhi.com/Delhi/Escorts/Ruhani.html https://www.ritaescortsdelhi.com/Delhi/Escorts/Sandra.html https://www.ritaescortsdelhi.com/Delhi/Escorts/Sagun.html https://www.ritaescortsdelhi.com/Delhi/Escorts/Suman.html

N

Great article! One thing I find important regarding architectural or design decisions is to document the "why" something was done, rather than what was done. There's a style of this documentation called ADR (Architectural Decision Records). Though I don't follow this diligently, writing down especially non-standard design decisions helps others a lot!

1
N

Great point Narayana! I like ADRs, though I have little experience with it so far. It's in my TODO list to try it on a big project!

M

great advices !

1

More from this blog

Healthy Software

12 posts

Thoughts of a passionate software developer. Maintenance, TDD, Object-Oriented Design, Leadership, Architecture and more