Wednesday, 24 June 2009

(Off Topic) How to measure the performance of your application development team

If you ever end up working for a company that implements Key Performance Indicators, the below objectives, actions and KPIs (measures) may be useful for defining your role as an Analyst Programmer:

Objective 1: Design Simple Solutions That Meet Requirements

Actions:
  • Keep the design simple
  • Use known design patterns where appropriate
  • Split design into comprehensive components
  • Focus on deliverables during design phase
  • Maintain a high degree of discussion between developers
  • Maintain communication with business owners
  • Maintain communication with domain experts
  • Seek feedback from business owners early
  • Use mock-ups where appropriate to convey concepts clearly
Measures:
  • Perceived visibility to design process
  • Discuss effectiveness of design in post-release meeting

Objective 2: Efficiently Implement Maintainable & Reliable Solutions

Actions:
  • Write unit tests
  • Comment code (where appropriate; do not add useless comments)
  • Document APIs
  • Think carefully when naming classes, methods, properties etc
  • Use the Issue Tracker
  • Split work into smaller tasks
  • Plan all work (do not skip the design phase)
  • Conduct peer review
  • Communicate with other developers
  • Ensure testing processes are followed
  • Do not over-engineer implementations (KISS: Keep It Simple, Stupid)
  • Produce efficient applications (optimisation, high performance, scalability, lower hardware costs)
Measures:
  • Assess code readability and documentation
  • Unit test coverage reports
  • Feedback from peer review
  • Assess difficulty in refactoring
  • Assess perceived regression (in relation to scope) that is the result of not following process
  • Assess actual regression (in relation to scope) that is the result of not following process
  • Assess responsiveness and scalability of applications
  • Assess Issue Tracker usage and organisation skills

Objective 3: Effectively Deliver & Coordinate Projects According to Schedule

Actions:
  • Produce reliable time-estimates
  • Maintain high-visibility with a Gantt chart
  • Split work into comprehensive tasks
  • Be organised
  • Hold meetings
  • Communicate with business owners
  • Do not accept changes without a formal change request
  • Any changes to the design must be reflected in the schedule
  • Plan releases and patches
Measures:
  • Actual adherence to schedule
  • Perceived adherence to schedule (visibility)
  • Assess scope creep

Objective 4: Maintain Reliability of Deployed Systems

Actions:
  • Apply risk management discipline
  • Opt for low-risk, pragmatic solutions
  • Investigate alternative (“proper”) solutions regularly
  • Triage new bugs
  • Reduce key-person dependencies by sharing knowledge and using documentation
  • Develop maintainable solutions
  • Develop reliable solutions
Measures:
  • Assess actual regression from patches
  • Assess perceived regression from patches
  • Assess difficulty in understanding code
  • Assess difficulty in refactoring and making changes to code
  • Assess the Bus factor.
  • Assess issue resolution handling

Objective 5: Foster Positive Customer Relationships

Actions:
  • Manage meetings effectively
  • Communicate with customers via a Technical Portal
  • Triage issues and maintain communication
Measures:
  • Customer feedback

Objective 6: Self Development

Actions:
  • Seek feedback from other developers
  • Approach new roles within the team
  • Further your own understanding
  • Raise questions and/or suggestions at weekly meetings
  • Demonstrate initiative (improve process, etc)
Measures:
  • Peer review
  • Team meetings
  • Assess initiatives undertaken
  • Assess courses undertaken that were relevant to the business

Objective 7: OH&S

Actions:
  • Use ergonomic human interface devices to avoid RSI
  • Maintain a healthy posture
  • Take frequent breaks away from the computer (split up your work day)
  • Avoid exposure to noisy hardware
  • Avoid eye strain

No comments:

Post a Comment