Montag, 21. September 2009

Some things i came across in india... best practices for the rest of us

Some things i came across in india... best practices for the rest of us

Some things i came across:







  • Do not double-assign tasks to different people 
  • Do not switch task assignment when first one is 90% done - second person will start from zero again 
  • Do provide clear and precise bug reports.

    • Actions to follow when reproducing behaviour
    • Rerence to testcase if applicable
    • Expexted result
    • Actual result
    • Log files, error messages, etc.


  • Provide tracebility requirement->testcase->bugs/status 
  • Do not put date/version tags to the file names when using svn. Use svn mechanismn (copy to version) instead! 
  • Do not produce multiple copies of documents in different folders
  • If you change something (code, config, etc), send precise and complete information
  • Use same logins (username,password) on every environment 
  • Don't change them 
  • Provide public list of these logins (put on wall!). 
  • Do project/task planning in one location only. Do not mix MSProject, Excel, Whiteboard, Resultspace. This will become a maintenance nightmare! 
  • Plan activities or results, not fluff like "Anything else?" or "Multiple CDP porlets on same page leads to multilple calls to Content fetch" 
  • Intregrate specialists early in the project, especially in the design. It does not really help to do a bad design, than get lot's of experts to help implementing this.
  • Get experienced people and leverage them properly. Do not let them do trivial things... They are too expensive and get pissed off easily.
  • Do not start project with tons of rookies... 
  • Assure they know the basics upfront. You cannot easily teach a 4 years old how to drive a Ferrari... 
  • Have Arch decisions double checked by someone else. They may be wrong...
  • Go for simple approaches, do not plan to future proof everything. 
  • Watch performance impact early. After 96% completion, it becomes harder to change. 
  • If you identify potential problems, clear them immediately, even if LOE seems to high. Later they will catch you again... (e.g. logger - my fault not to escalate it...) 
  • Enforce some discipline (be on time, read and answer email, check your own stuff, inform properly and precise, provide ALL necessary information,...) 
  • Setup process for environment replication early (ghost images, vmware, etc.). See this: 50 developers spend minimum 2 days on setup and also need help from others => Minimum waisted time= 100 person days = ??Euro?? 
  • Setup monitoring and notification early. How often did we have the case of not running servers and following research? 
  • Environment down => 2-50 people playing pocket billiard... 
  • Provide a valid build process early. In the 39th week of implementation you don't want build problems any more...
  • Start vertical slices of complex functionality early. Release working software often, with minimum functionality. E.g. implementation for CDP as a very important part of the solution might have started much earlier. And you always want to be able see something... 
  • Setup continuous integration - at least for common parts like framework or portal_commons, etc.
  • Watch dependencies and 3rd party library usage!! We currently seem to include every open source lib in the world... 
  • Provide reasonable hardware. 100€ (even 1000!) for Ram is nothing compared to people being unproductive. 
  • Have QA people who know their job. Rookies will not give you any benefit here! Only if you want a "delivery assurance" instead of "quality assurance". But, this will get you later...
  • Value/productivity of really good people compared to rookies can be 1:10!! So, get the best and let them do what they can do best! 
  • Roles of senior developers/techies needed! There currently is a gap. 

Keine Kommentare:

Kommentar veröffentlichen