Becoming a Lead Programmer and Journey towards an Aspiring Architect : Checklist

Its appraisal cycle in most of the companies. Suddenly there is a need to talk about technology (Appraisal Cycle gives us an opportunity to talk about technology once in 6 months).

When I was managing the CP Team, we created a checklist for team members who had the aspiration to become an architect.

If you are a Techie (aspiring to grow in the technical line) you can use this checklist and do an honest evaluation of where you stand. Your individual development plan can be decided based on that.

If you are a Manager managing Technical resources, you can use this as a checklist to evaluate your resources and help them define their development plan.

Working with Customer Day to Day Interactions
Requirements Discussions Negotiate Scope
Estimates Discussion
Technology Discussions
Architecture, Design and Development Infrastructure Operating Systems, Hardware, Networks etc.
Software
  1. 3rd Party Software/Controls
  2. Knowledge of available Open Source Tools/Software
  3. Knowledge of libraries, databases, frameworks etc.
  4. Load balancers
Design Principles
  1. UML (Create and Interpret Use cases, Class Diagrams and Sequence Diagrams, Able to convert them into code)
  2. Understand the Fundamentals of Domain modeling
  3. Object Orientation
  4. Cohesion/Coupling
  5. Programming by Intention
  6. Program to Interfaces
  7. SRP, OCP, LSP etc…
  8. IOC, AOP, DI
  9. Knowledge of POUT, TDD and BDD
  10. Knowledge of Design Patterns (GOF/GRASP/Microsoft .NET Patterns/Implementation Patterns/Integration Patterns/J2EE Patterns) – Able to co-relate a problem with a pattern
  11. DSLs
  12. Layers/Tiers (N-Tier/Multi-Tier Architecture)
  13. SOA
  14. Any other ….
Cloud Computing
  1. SaaS
  2. PaaS (Azure)
  3. IaaS (Amazon Web Services)
Software Development Methodologies
  1. Agile (XP/Scrum/Kanban)
  2. Waterfall
Writing Solid Code
  1. Unit Testing (POUT/TDD/BDD)
  2. Acceptance Test Driven Development
  3. Refactoring
    1. Code Smells
Debugging
  1. Working with Legacy code
  2. Identifying the core of the problem by simulating environment, scenarios
7-ities Usability, Maintainability (Flexibility/Testability), Scalability, Availability (Reliability), Extensibility, Security and Portability.
Knowledge of how to code for these.
Estimation Knowledge of FPA, Use Case Points, Wide band Delphi, Planning Poker
Technology Coping up with the trend Any technology for that matter. As of today (ASP.NET 4.0, ASP.NET MVC, ASP.NET Ajax, WPF, WCF, WF, SharePoint 2010, SQL Server 2008 R2, Azure, Dynamics CRM 5.0, DLR, Development using Dynamic Languages, Mobile Application Development)
Working with Team Interpersonal Skills
Influencing Others
Coaching Junior members
  1. Pair Programming
  2. Pairing with Junior members from design to development
Deliver on time / Meeting Commitments
Personal Skills Positive Attitude Can do things
Commitment Disagree and commit
Manage Conflicts
Constructive Confrontation
Presentation Skills
Communication Skills Written, Verbal, Listening
Value Adds Contribution to the Hiring process
  1. Understand how to filter resumes
  2. Technical Interviewing
  3. Behavioral Interviewing
  4. Deciding whether somebody will be a cultural fit to the organization
Contribute to Community
  1. Blogs/Articles/Reviews
Knowledge Sharing
  1. Trainings
  2. Knowledge Sharing Sessions

If you are serious about your technical career, use this throughout the year and not use them only during appraisal cycles.

Happy Learning!!!

Advertisements

4 thoughts on “Becoming a Lead Programmer and Journey towards an Aspiring Architect : Checklist

  1. A exhaustive post Prakash. Thanks from the developer who lives inside me. i would think developers(interested) should take a print out of the above and stick on their desks

  2. Pingback: Thoughts on Automation as a Career : Role, Responsibilities and Career Progression « Managing Software Development

  3. Pingback: Quora

Leave a Reply

Please log in using one of these methods to post your comment:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s