Tuesday, January 30, 2018

I am a new joiner? How should I deal with challenges? How can I make that first impression?

I'm a new joiner. How do I get started faster, and make that first impression.


Being in IT world, being a developer, QA or project manager, it's not uncommon to land in a situation, where you have just joined a project and you have no idea where to start. How to start contributing most effectively. How to make that first impression. So here I'm outlining few ways you can deal with the situation.


Knowledge Transfer(a.k.a. KT)

          Knowledge transfer means people who have spent some time in the project help a new joiner to get started with the understanding of the project. However, there are very less organisations, projects where this happens properly. Several times there is friction between vendors and employees in the company. So they hesitate to share, fearing they would loose their job, if they transfer their knowledge to someone else. They want to create and keep the dependency on them so that they can keep their job for a longer term. However, this is one of the harmful things for an organisation. As just like money, knowledge should flow through the system, so it will be of most use.

       So in short, to give your best shot, you may not expect any knowledge sharing and assume that you are on your own in this treasure hunt game. So what is the next thing you should look forward to?


Project documents

      In organisations these days it's a legal binding to keep things documented. So there is a great chance that things are documented. Only thing is you need to find out what documents you should look for. For a software project, mainly documents are the artefacts generated at various stages of software development. Just to list a few, Architecture diagrams, Requirement Specifications, Functional Requirement Documents, Business Requirement Documents, Technical design documents, Unit test documents, flow charts, Test Cases, Release notes, Implementation plans, Support manuals, User manuals, help documents, ER Diagrams, Schema diagrams etc.

   You need to sceman through all these documents whichever available and connect the dots.


Database Schema


     To increase your understanding of the project at a faster pace, best thing you can do is try understanding the database schema and see how different entities in the system are related to each other. Where you can look for information. How data is organised. Try to understand the way tables are named. How they are related to UI if any.

User Interface

If your system has User Interface, then it is a good idea to run through some or the most possible modules of the system. Relate these modules to database schema. Try to understand how authentication happens. How many tiers system is having. Are their any UI patterns used. Patterns help understand the system faster.

Run through code

Scanning through code and relating it to UI and DB schema is also one of the most helpful ways to understand a system. 

Keep your notes

You can use text files, doc files or excel sheet to keep your mostly needed information handy. The information can be frequently needed team contacts, team delivery list/groups, server names, todo items, frequently needed queries etc.

Setup a debug environment

Most systems can be setup on developer's machine. If you have this at your disposal, please set it up. This is the most effective way to understand the system's internal workings. Get help of a colleague who has already done it. Debug the system by setting up debug points at various places and try to understand the data flow.

Understanding processes

There could be different ways projects are run, budgeted. Various ways new deliverables are handled. So get yourself familiarised with your organisations' ways. What systems are used for tracking? How deadlines are tracked? What project cycles are followed? etc.

I will keep on adding to this post. However, if you have any other ideas, please do post them in the comment. Also, mention if there are any books on this topic. One I can think most related is Clean Coder. That explains most effectively what is expected out of a coder.

No comments:

Post a Comment

Calculating Server Capacity: A Comprehensive Tutorial

 In this tutorial we will explore the process of calculating server capacity. Let's get started. Understanding Server Capacity Identifyi...