These roles aim to provide a guideline for the expectations of different positions in the company.
As a developer, the role you fit into is based on several factors including:
- The characteristics of the role that you meet and are building towards
- The consistency and rate of improvement over time
- Annual Goals
- Contribution to the overall growth of the development team and success of the business
- Relationships with internal stakeholders, team members and clients (pretty much having a good relationship with everyone!)
%%{
init: {
'theme': 'base',
'themeVariables': {
'primaryColor': '#CC4141',
'primaryTextColor': '#fff',
'lineColor': '#CC4141',
'secondaryColor': '#AAAAAA',
'tertiaryColor': '#797979',
'noteBkgColor': '#333333',
'noteTextColor': '#fff',
'sequenceNumberColor': '#333333'
}
}
}%%
graph TD;
A[Software Developer] --> B[Software Engineer I]
B --> C[Software Engineer II]
C --> D[Senior Software Engineer I]
D --> E[Senior Software Engineer II]
E --> F[Solution Architect]
E --> G[Delivery Lead]
I am new to Software Development and I am building my skills through internal training courses so that I would be able to attempt the employment challenge at the conclusion of the course (and get hired).
- I am new to Software Development
- I may be just out of university and/or still studying a relevant Computer Science or equivalent degree
- I may have just finished an internship
- I learn quickly
- I am open to receiving feedback and incorporating it into my work
- I am building confidence in providing constructive feedback to peers
- I can follow directions
- I am learning how to work as a member of a Scrum team
- I am willing to work collaboratively with team members and contribute to project progress
- I understand the fundamentals of:
- Software Development
- Databases
- Object Oriented Programming
- C# and .NET
- TypeScript / JavaScript
- I am comfortable being guided by other developers
- I am comfortable having my code reviewed by other developers
- Engage with the wider Team e.g. at lunch, playing games etc
I am confident working with stakeholders and can deliver value. I always strive to learn and improve in all aspects of my role.
- I have graduated from university with a relevant Computer Science or equivalent degree
- I can communicate when I notice requirements are unclear to me while developing e.g. in PBIs
- Try and solve problems before asking for help right away, but also make sure not to remain blocked for a significant amount of time
- I am comfortable talking 1-1 with clients
- I am comfortable with the Scrum process
- I can talk about my work in a Daily Scrum
- I provide suggestions in Sprint Reviews and Retrospectives
- I can confidently deliver PBIs for clients
- I can interpret a PBI from the backlog
- I can break the PBI down into smaller workable tasks
- I can estimate the effort required to complete the tasks
- I can complete the tasks and confidently demonstrate them
- I am confident in:
- Software Development
- Databases
- Object Oriented Programming
- C# and .NET
- TypeScript / JavaScript
- Angular or React
- I am comfortable pair programming with other developers
- I am comfortable providing some feedback to developers on their code
- I am aware of what is happening in my internal Scrum Team and/or personal backlog
- I am familiar with the top rules at SSW introduced in onboarding
- I am available to help with reviewing new rules, user group presentations, and other communications
- I attend community events
I have demonstrated the ability to independently handle client PBIs and make issues visible to the Tech Lead and Product Owner.
- I have at least 1 year of experience in software development
- I continually improve the code I am working with if I find a better approach
- I provide effective feedback internally
- I communicate directly with other developers to share good ideas or better practices
- I am capable of documenting discoveries
- I am comfortable with all facets of the Scrum process
- I can define the scope of a PBI and provide Acceptance Criteria
- I can estimate PBIs to be done with confidence while being mindful to not under estimate and fail the expectations of the team or Product Owner
- I help the Product Owner and Scrum Master proactively i.e. give suggestions/recommendations) outside of the regular ceremonies
- Upselling - I can identify new opportunities with clients and flag them internally
- I am able to learn and use new technologies effectively
- I am comfortable providing actionable feedback in a Pull Request and approving it (aka taking ownership)
- I initiate pair programming with other developers
- I send recommendations for updating SSW Rules
- I propose new rule content for SSW Rules
- I assist with SSW events
I support and mentor my teammates to ensure they are following best practices. I can take the lead on a project for a short period of time.
- I have at least 3 years of experience
- I am starting to demonstrate my experience using one or more of the following methods:
- I can articulate the value I have delivered on shipped projects
- I have published articles/blog posts
- I have sample projects or other best practices visible on GitHub
- I have recordings demonstrating value I have delivered to stakeholders
- I communicate directly with stakeholders to share good ideas or better practices
- I make it clear when I don't understand a PBI in Sprint Planning
- I can build/gather requirements from client conversations
- I can act as a Scribe for Specification Reviews and Initial Meetings
- I can assist on Specification Reviews to research valuable topics in the background
- I know how to ensure PBIs are clear before they are added to a Sprint
- Write PBIs that meet the Definition of Ready and Acceptance Criteria
- I am able to confidently identify when I need outside technical advice instead of when I can learn it myself
- I am comfortable reviewing an unfamiliar code base and figuring out how components fit together
- I create new rules
- I take initiative to action important internal PBIs
I have demonstrated experience confidently leading a team to success on a client project.
- I have at least 5 years of experience
- I can demonstrate my substantial experience using one or more of the following methods:
- I can articulate the value I have delivered on shipped projects
- I have published articles/blog posts
- I have sample projects or other best practices visible on GitHub
- I have recordings demonstrating value I have delivered to stakeholders
- I am comfortable coordinating and leading meetings with Stakeholders and Developers
- I can translate how technical ideas deliver business value in a way the client will understand
- I am comfortable with running Scrum ceremonies i.e. I can act as Scrum Master
- I can estimate higher-level pieces of work
- I can break large PBIs down into smaller PBIs e.g. Migrating the MVC invoicing page to the latest version of Angular
- Upselling - I can identify new opportunities with clients and help them understand the value and advise on next steps.
- I am aware of the project budget, scheduling, and bookings.
- I can identify resourcing problems and inform the Account Manager and Product Owner
- I develop awesome documentation for all my solutions
- I can lead a project day to day (Tech Lead)
- I can help design a new code base, including the patterns, middleware, and structure of the project
- I am comfortable taking on a mentoring role with another developer
- I use my learnings from clients to create new rules
I have demonstrated experience confidently leading multiple teams to success on a client project across different industries and scales.
- I have at least 7 years of experience
- I have done work on large-scale enterprise systems
- I have a deep understanding of the SDLC
- I have a wealth of experience collaborating with stakeholders in different industries
- I can translate client functional and non-functional requirements into a tangible plan of action e.g. a Product Backlog
- I am comfortable being involved in conversations with Executive level leadership e.g. Client CEO, COO, CFO etc
- I take the initiative to scope out and develop solutions to meet project requirements and convey the value as well as priority to the Product Owner
- I take Ownership
- I demonstrate the ability to plan, track, and deliver tasks - either by my own efforts or by delegating to team members and following up
- Even if I delegated a task, I make sure to follow up. Don't fire and forget!
- I am proactive and willing to go the extra mile
- I make sure that my team has everything they need to avoid being blocked
- If someone does get blocked, I step in to help resolve the blocking issue
- I can spot issues in the code or product that may not have been reported yet, and raise the issues with the team and Product Owner
- I flag documentation that may be missing with the team and raise PBIs to get it fixed
- I can make technical decisions and can raise with the Solution Architects when the options are difficult to separate e.g. Choose the right service or Choosing the right database
- I can identify and reduce Technical Debt
- I know when to take a shortcut and how to pay it back later as per our SSW rules
- I can analyze a PBI's impact on a new/existing solution
- I can lead the design of a new code base, including the patterns, middleware, and structure of the project
TODO
TODO
- Respected leader both inside & outside of the company
- Builds communities and grows culture within the business
- Works for the company to build and improve it
- Steering the technical direction of the business