Skip to content

Latest commit

 

History

History
285 lines (197 loc) · 11.8 KB

development.md

File metadata and controls

285 lines (197 loc) · 11.8 KB

Development

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]
Loading

⭐ Associate Software Developer

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).

Experience

  • 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

Communication

  • 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

Project leadership & Stakeholder management

  • 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

Technical Skills

  • 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

Internal Contributions

  • Engage with the wider Team e.g. at lunch, playing games etc

⭐ Software Developer

I am confident working with stakeholders and can deliver value. I always strive to learn and improve in all aspects of my role.

Experience

  • I have graduated from university with a relevant Computer Science or equivalent degree

Communication

  • 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

Project leadership & Stakeholder management

  • 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

Technical Skills

  • 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

Internal Contributions

  • 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

⭐ Software Engineer I

I have demonstrated the ability to independently handle client PBIs and make issues visible to the Tech Lead and Product Owner.

Experience

  • 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

Communication

  • I provide effective feedback internally
  • I communicate directly with other developers to share good ideas or better practices
  • I am capable of documenting discoveries

Project leadership & Stakeholder management

  • I am comfortable with all facets of the Scrum process
  • 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

Technical Skills

  • 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

Internal Contributions

  • I send recommendations for updating SSW Rules
  • I propose new rule content for SSW Rules
  • I assist with SSW events

⭐ Software Engineer II

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.

Experience

  • 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

Communication

  • 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

Project leadership & Stakeholder management

  • 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

Technical Skills

  • 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

Internal Contributions

  • I create new rules
  • I take initiative to action important internal PBIs

⭐ Senior Software Engineer I

I have demonstrated experience confidently leading a team to success on a client project.

Experience

  • 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

Communication

  • 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

Project Leadership & Stakeholder management

  • 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

Technical Skills

  • 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

Internal Contributions

  • I use my learnings from clients to create new rules

⭐ Senior Software Engineer II

I have demonstrated experience confidently leading multiple teams to success on a client project across different industries and scales.

Experience

  • 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

Communication

  • 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

Project Leadership & Stakeholder management

  • 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

Technical Skills

  • 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

⭐ Delivery Lead

TODO

⭐ Solution Architect

TODO

⭐ Chief Architect

  • 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