Metrics |
Junior |
Medior |
Senior |
Definition |
A junior developer can write code in one or more programming languages but he/ she is not really involved in the whole Software Development Lifecycle |
A medior developer is proficient in one or more programming languages. He/ she shoulder more liabilities and engaged in the whole product development process, from the idea conceptualization to testing then optimization. |
A senior developer can create a complete and complex solution by using a scientific method in a specific context, no matter what technology or programming language behind it. He/ she solves every business and technical demand in a rational way. |
Technology Understanding |
- Have a broad grasp of information technology, from a both software (main) and hardware (secondary) standpoint.
- Not fully aware of best practices in the technology industry for producing code
|
- Have knowledge of best practices in the industry with an inclination to apply them
- Incomplete understanding of the significance of the software’s functional components
|
- Be an expert in software development and technology
|
Programming Capability |
- Have knowledge of fundamental programming concepts
- Can produce simple program code by using at least one programming language
|
- Proficient in a variety of programming languages and technologies
- Can write programming code independently if the business case with detailed software development requirements is provided and explained to them.
- Can complete some basic DevOps responsibilities in addition to software development
|
- Fluent in coding and choosing the most appropriate technology solutions for the project
- Have a deep understanding and ability to complete many DevOps tasks
|
Quality of Code |
- May produce inefficient and hard-to-read codes
- High level of inaccuracy in producing code
|
- Codes must constantly be examined and verified
- Lack of attention on the readability and structure of software codes
|
- Clean quality of code, in alignment with structure and help improve the system efficiency
|
Debugging Skill |
- Have limited debugging skills
|
- Able to build basic unit tests
- Have insufficient debugging skills to resolve issues outside their expertise
|
- Proficient to write complex tests
|
Test Case Building |
- Unable to build test cases
|
- Able to build basic unit tests
|
- Expert in building test cases
|
Communication with Business Stakeholder |
- Weak and unable to fully explain the software development process in business language
|
- Good at communicate directly with business people to clarify minor details related to the assigned task
|
- Excellent at communication and explaining complex processes to business people
|
Business Context Understanding |
- Have limited understanding of business problems and situations
|
- Have an appropriate understanding but he/she is lack of flexibility in applying technology theories in solving the business needs
|
- Good at creating and applying theories and practices for the software project in alignment with business context and the structure of architecture
- Able to analyze and convert business processes into programming codes
|
Level of Responsibility |
- Level of responsibility: Follow and Apply the guidance
- Work under supervision and direction
- Need training and excessive quality control
|
- Level of responsibility : Enable, ensure and advise for the best result
- Sometimes show low level of responsibility when going out of his/ her expertise
- Have an incomplete understanding of the importance of the tasks
- Slightly willing to lead complex tasks on their own
|
- Level of responsibility : Automate, initiate, influence
- Totally lead and control their assigned responsibilities
- Have high level of initiatives to solve client needs outside their scope of work
|
|
Self Learning/ Improvement |
|
- Slightly enthusiast in acquiring new or additional knowledge – some may be content with the status quo for a lengthy period of time or permanently
|
- Have a strong enthusiasm for self-learning and improvement. He/ she always keeps himself/herself updated on the latest technology trends.
|
Continuous Improvement Attitude |
|
- Conduct continuous improvement to improve the legacy codes when requested
|
- Maintain a strong commitment to continuous improvement of the quality and structure of the legacy codes
|