NML

Developer Roles and responsibilities

The different developer roles along with the expectation from NML is presented in table format below.

✓ means that the described responsibility is expected from a person fulfilling the role and will form part of assessments.

⃞ means that the described responsibility is not expected from person fulfilling the role and will not form part of assessment.

Feedback

This document is currently open for questions and commentary. Please add your feedback to the Define roles with responsibilities/expectations for developers Trello card

Technical skills

ResponsibilityJunior DeveloperIntermediate DeveloperSenior DeveloperTechnical Team LeadArchitect
Display adequate proficiency in the required technology stack for your level of experience. Ensure identified gaps are added to your personal development plan.
Assist team members on technical implementation issues
Monitor technical implementation issues and take responsibility for ensuring resolutions
Monitor architectural issues and take responsibility for ensuring resolution
Ensure familiarity with the project reference architecture
Assist on defining a reference architecture for a project.
Define reference architecture for a project.
Identify gaps in the reference architecture and work with the team to update.
Transfer technical knowledge to team members

Day-to-day tasks

ResponsibilityJunior DeveloperIntermediate DeveloperSenior DeveloperTechnical Team LeadArchitect
Ensure that tickets are up to date and you move your tickets in terms of status and comment on the ticket where relevant.
Take ownership of stories, tasks and all related development activities to complete the assigned work. Manage assigned story and task statuses, comments and updates from start to finish.
Ensure pull requests are reviews and that the changes are applied to the test environment as expected.
Pro-actively follow up with QA to ensure you work is complete and that all bugs have been addressed in the current cycle.
Transfer agile process knowledge to team members

Code quality

ResponsibilityJunior DeveloperIntermediate DeveloperSenior DeveloperTechnical Team LeadArchitect
Adhere to good technical practices which include: unit testing, integration testing, dependency injection, monitoring and logging
Familiar with coding practices.
Identify practices that aren't effective and suggest changes
Ensure team members implement according to best coding practices according to the accepted standards
Ensure team members implement according to best architectural practices
Review pull requests as highest priority and participate by commenting and asking clarifications.
Ensure team members participate on pull requests with the required urgency.

Build and Releases

ResponsibilityJunior DeveloperIntermediate DeveloperSenior DeveloperTechnical Team LeadArchitect
Deploy approved changes to target environments.
Configure and manage builds and releases in the appropriate dev-ops platform, or document the build and release process.
Own the build and release configuration or process and ensure the team all understand and follow it.
Fix builds broken as a result of your pull requests
Communicate the release change list to PM and client.

Project solutions

ResponsibilityJunior DeveloperIntermediate DeveloperSenior DeveloperTechnical Team LeadArchitect
Execute development tasks in line with the Technical Lead / Architect' solution and the team's project planning activities.
Where required take responsibility for defining the solution for a specific feature.
Where required take responsibility for defining the solution for a features or work-stream.
Define the architectural solution for team members to implement.
Get approval from the technical team lead for all environment changes
Keep PM/CTO updated on all environment changes that can affect cost and client billing
Demo work to team or NML

Scrum ceremonies

ResponsibilityJunior DeveloperIntermediate DeveloperSenior DeveloperTechnical Team LeadArchitect
Contribute during sprint planning and backlog grooming meetings to define stories and the necessary tasks to address requirements.
Assist PM with technical leadership to define stories and the necessary tasks to address requirements in grooming and planning meetings
Attend and prepare for daily stand-up meetings. You will need to briefly describe what you did yesterday, what you will be doing today and what impediments you are experiencing.
Attend and contribute to retrospective meetings. You will need to describe what went well during the last sprint, what did not go well and what you feel the team can improve on.
Identify technical issues and/or solutions raised during retrospective that are applicable on a company level and should be communicated to the development manager or CTO

Check-ins

ResponsibilityJunior DeveloperIntermediate DeveloperSenior DeveloperTechnical Team LeadArchitect
When needed, request or accept, and prepare for check-ins with the Technical Team Lead, PM and/or Development Manager
Schedule regular (4-6 weeks) check-ins with all team members.

Reference architecture review

ResponsibilityJunior DeveloperIntermediate DeveloperSenior DeveloperTechnical Team LeadArchitect
Participate in reference architecture reviews
Schedule, plan and run reference architecture review

Communication

ResponsibilityJunior DeveloperIntermediate DeveloperSenior DeveloperTechnical Team LeadArchitect
Communicating progress and issues on development commitments to team and Project Manager.
Transfer communication best practice knowledge to team members
Ask for help in an appropriate time frame

Timekeeping

ResponsibilityJunior DeveloperIntermediate DeveloperSenior DeveloperTechnical Team LeadArchitect
Accurate daily logging of time.
Assisting PM in managing team time allocation versus estimates, managing change control and scope creep impacts of time on projects.

NML Wikis

ResponsibilityJunior DeveloperIntermediate DeveloperSenior DeveloperTechnical Team LeadArchitect
Update Project Wiki Page with the latest business logic from features worked on.
Contribute articles and posts to NML blog

Communicating with clients

ResponsibilityJunior DeveloperIntermediate DeveloperSenior DeveloperTechnical Team LeadArchitect
Professional communication with clients, and PM and Technical Lead are made aware (included) in communications.
Have ownership of technical communications.

Support

ResponsibilityJunior DeveloperIntermediate DeveloperSenior DeveloperTechnical Team LeadArchitect
Participate in the relevant project support structure.
Fulfill escalation role for support.

Skills development plan

ResponsibilityJunior DeveloperIntermediate DeveloperSenior DeveloperTechnical Team LeadArchitect
Formulate a plan with Technical Lead and/or Architect to address skills gaps. (Training material, Exams / Certifications, Target completion dates)
Assist team members with formulating plans