Programmer's Motivation for Beginners by Rajaraman Raghuraman - HTML preview

PLEASE NOTE: This is an HTML preview only and some elements such as links or page numbers may be incorrect.
Download the book in PDF, ePub, Kindle for a complete version.

 CHAPTER 7 TEAM WORK IN PROGRAMMING

Good programmers are good at their skill, i.e. Programming. But is that enough? Will their programming skills alone suffice to do the job. Unfortunately no. A programmer invariably is going to be part of a team, maybe small or large. So it is important for a programmer to understand the importance of team work especially in the context of programming. I am listing a few points that might help you in understanding its importance

 Good team is more powerful than individuals

Any programmer has to understand that the output of a team is going to be more than the sum of their individual outputs. That is why he should be more inclined to work as a team rather than an individual.

 Customer is in the team

One important thing to note here is that the team is not just filled with developers and testers, It actually contains the most important member of the team– The Customer. The Customer is the starting point of all requirements, so listening to him/her is the best thing a programmer can do. Many programmers tend to think of what’s more easier for themselves rather than thinking what makes it easier for customers. I have also been doing that, but luckily I changed those, once I started thinking from the customer’s perspective. Then I would think of the technical aspects such as feasibility. Remember, if Customer is happy you get more business, you have coding work to do for more time J

 Project manager is in the team  

 Another important member of the team probably is the project manager. A developer needs to be in good rapport with Project Managers. Developers often always feel that Project Managers are actually rogues who don’t care for employees. Most of the time, this feeling is true, but the point here is Project Managers are assigned a crucial task of getting the project delivered on time, on budget and with good quality. And generally they will get to choose only 2 of the 3. Project Managers tend to take tough decisions at times due to these constraints. Having a good relation with PM will go a long way in making him understand the technical feasibility, efforts, concepts of how quick fixes affect the quality, etc.

 Tester is in the team

Arguably the number one friend (Read Enemy J) for a developer/programmer is the Tester. Remember one thing, Developers and Testers work towards a common goal. That is to ship the product with high quality, and a tester ensures that you maintain the quality. So feedback from the testers should be highly valued and respected, because invariably they think from the end user or customer perspective. Maintaining a friendly relation with tester goes a long way in maintaining good team morale and thereby improves the overall quality of the product/software under development.

 Pair Programming provides instant feedback

Most of the people find it hard to do their work if someone is around. Even if it is their close friend. Everyone is inclined towards their privacy and freedom. That is good in a sense, but when it comes to coding, having 2 people develop the same code really helps in improving the code quality. This is called Pair Programming where 2 people sit together and they begin to solve the coding problem. If one person codes, the other person reviews, critiques and provides suggestions for improving the code, algorithm and everything thereby providing instant feedback. And they reverse roles after sometime. This is one of the proven methodologies that works in Software Development and beginners should understand its importance and should not consider it as a question to their skillsets, or as a threat. Rather they should think it as an opportunity to become better at their art.

 Listen to everybody

One of the most important traits is to listen to everybody, the customer, the project manager, the project lead, the testers, the Business Analyst and all the roles that the current project will contain. Everyone has some point to make from their perspective. You need not necessarily agree to each of those points. You are always open to debate, but you need to actively listen to them and then put forward your points.