1. Analytical- the ideal programmer can understand the problem, translate and express ideas in clear and readable code, has an analytical and logical mind
2. Personality – the personality type that perfectly describes the ideal programmer is the melancholy, due to his perfectionist and detail-oriented personality. Some element of the choleric can also be seen in the perfect programmer, i.e. his enterprising and usually independent nature.
3. Expertise - knowledge and experience for solving client’s problems in the specific context with chosen technologies
4. Motivation - cares about work, shows enthusiasm, interest and love for programming, he is not just working for money, but he loves to implement interesting ideas in spare time without pay.
5. Maturity – knows and uses sound software development principles, practices and approaches as agile, design and architecture patterns, domain-driven design, unit testing, re-factoring
6. Realistic – the ideal programmer must be realistic and understands what is possible, loves simplicity and avoids over-engineering; understands business goals, keeps touch with reality and focus on what should be done.
7. Synergy - listens, accepts that other people could have better ideas, supports team goals without hidden agenda, shares ideas and knowledge and coach others
- Communication - effectively communicates and exchanges ideas, supports knowledge and decisions about the system with clear explanations, justifications and answers
- Constantly improving - has professional goals, good learning skills, curiosity, adaptability and performs constant self correction
- Visionary –the ideal programmer sees the big picture, understands context, trends and people, aligns actions with team and company implicit goals, contributes into building shared vision for the software system.