Passing and Teaching your Software Project to another developer

in software •  5 years ago 

Passing and Teaching your Software Project to another developer.

I am very sure lots of junior developers that started growing professionally within a company have experienced this. There is a time where you must to teach someone else the functionality of a project that you developed almost by yourself. This sort of situations arises when you change of project or you start working in another Company. I have experienced both. Is hard to teach someone else in a small period of time what took you months or years of development. This is my experience.

My first experience with this kind of situations was in Ecuador in a Software Company called Bayteq. I got an opportunity to study my Master in Computer Science in Canada so I quit my job. Quickly my managers started to prepare everything for my departure. By that time I was already involved in several projects but there was one in specific, a retail mobile application, that I pretty much developed by myself. Since no one else worked with me in this project I needed to prepare the project to transfer the knowledge to other junior developers. At that point, I could have been considered already a senior developer after working one year and a half in that software company. I was happy and the work was hard by I felt empowered when I was the main developer in the center of the room while other developers were listening to me.

My second experience was a little easier. It was in Canada in a non-profit project for the Indigenous Council of First Nations in Saskatoon Canada. It was a mobile and web app for tracking jobs statistical data and I was the one in charge of the front-end development. In this case, I did a presentation in powerpoint that was more general, and didnt include too much code. Was smooth and more manageable. Although the improvement was that I was directly interacting with the client. It gave me more confidence in the presentation of projects.

My lastly and more important experience in these kinds of situations recently happened in Victoria British Columbia Canada. I was working on a Blockchain project for one year already and finally, I needed to transfer the knowledge to another developer so I can step out and start other projects. Consequently, I realized the patterns of my previous experiences and I had a plan to save time and be more efficient when passing and transferring these sort of huge projects to another person.

It gave me great satisfaction to have a plan in motion and later on I concluded what is important in these kinds of situations:

  • *The report.- *Usually use to be required by the company of the client, the owner of the product. Therefore, you must teach all the possible diagrams, features of the product, important questions to be answered, the architecture of the code, explanation of the main files, mockups, algorithm workflows, research references, unit tests, etc. All depends on your project

  • **Teach by letting them do.- **You should teach the other developer or developers how to operate the main files. For example in the project I delivered, I taught the other developer how to introduce new examples of execution in the Unit Test file for testing the back end. Also, I taught him how to deal with compilation problems and how to find a way to solve it since most of the times the other developer will be the one that will support the project later on. Ultimately, I had to teach him the main algorithms on the whiteboard and run some examples that needed to be drawn in the whiteboard as well. These sort of practices beneficiates us both, for you as a teacher and for him as a student.

  • **Tutorial of initial settings.- **Especially in research projects, the Tutorial is different from the Report. The Report contains the explanation of the architecture, the requirements, all the client needs to now(the same as I mentioned before). The Report could be understood by someone that not necessarily is a developer. Although the Tutorial is a quick step by step error handling documents that possibly includes commands or code and more specific for the technical side.

  • Proper attitude.- It's not like you want to be their closest friend but always is good to have a positive mood and willingness to talk formally or informally about anything in order to not have uncomfortable silences and just overall to gain confidence and trust. As you all know very well, in this Industry as in any other Industry, your contacts sometimes are more important than the actual job.

I find that these experiences make you grow as a professional, as a developer and most important as a person. These skills are important in any field when you are trying to communicate your thoughts of any project you have finished. Moreover, it helps you develop your soft skills so you can apply it in your daily life, either your professional or personal life.

I hope this post was useful for you and if you liked it please thumbs up and share it. Thanks too much!!

Calgary Airport, Saskatchewan, Canada, December 21, 2018.

Authors get paid when people like you upvote their post.
If you enjoyed what you read here, create your account today and start earning FREE STEEM!
Sort Order:  

The most important thing here is to leave a company or a project without any technical debt. So for any software engineer, it is a must to write a code in a way that would be clear and understandable to anyone else that comes to work with the same project after him.