Tuesday, June 28, 2011

Things that i want from my Team

We have seen so many articles on ideal team or how be a good leader etc. To be a good team player there are few areas where we need to overlook and judge. long term goal, effective team work,decision making approach and use it consistently etc there are so many things on that we can discuss. As per my role , as a software development team, i am looking on following aspects from my team.

  1. Hire smart, fast, flexible engineers who are willing to do any type of work, and are excited to learn new technologies. do not need "architects".If you design something, your code it, and if you code it you test it. Engineers who do not like to go outside their comfort zone, or who feel certain work is "beneath" them will simply get in the way.
  2. It is better to deliver 20 projects with 10 bugs and miss 5 projects by two days than to deliver 10 projects that are all perfect and on time. 
  3. Everyone who works, will make a number of mistakes the first few months, and will continue to occasionally do so over time. The important thing is how much you have learned and to not make the same mistakes over and over again.
  4. Keep designs simple and focused on the near term business needs - do not design too far ahead.
  5. When one person owns everything (CSS, JS, PHP, SQL, scripting), there is no waiting, bottlenecks, scheduling conflicts, management overhead, or distribution of "ownership". More projects/people can be added in a modular way without affecting everyone else.  
  6. The programmer is supposed to deliver the product with a reasonable quality.reasonable quality being a term that should be defined when taking the job.at last , you should work to get the software in good enough shape to be delivered.
  7. No software is bug-free.The developer himself is never the best tester. That is why steps of QA are always necessary. The testers that blame you should be happy to have found the defects before a end customer did. Of course there is still poor programming or poor design but also poor testing... The world is not perfect but we have to cope with all these things in an appropriate way. Using even tighter software development processes if the software you develop is used in a medical or military environment for example. If all tools for software quality were used i.e. Design,Static code checking, peer code reviews, unit testing, component testing, system tests etc ... nobody should be blamed.

TODO:- Still in draft state. Please put your valuable comments so that i can complete it :-)