Skip to content

Commit

Permalink
Add page on the GovPress Apprentice Developer plan
Browse files Browse the repository at this point in the history
  • Loading branch information
snim2 committed Nov 9, 2023
1 parent c90a7ca commit cc07e2d
Showing 1 changed file with 159 additions and 0 deletions.
159 changes: 159 additions & 0 deletions src/govpress-unit/apprentice-developer-plan.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,159 @@
---
title: Apprentice developer development plan
last_reviewed_at: ""
---

## High level principles and goals

When we hire an apprentice, of course we want you to add value to dxw and our clients,
but we also know that this is a crucial time for your own professional development.
With that in mind, we want to structure your apprenticeship with these principles in mind:

* Over your time with dxw you will spend time on every aspect of our work. You may not know exactly what area of the tech industry would fit you best, so we want to leave you with enough knowledge of the industry to make good decisions about your next steps.
* By the end of your apprenticeship, if you have done well, you should have enough evidence to apply for progression to a Junior Developer role or a similar role.
* You will be a full member of the GovPress team and have the same benefits and responsibilities as your colleagues.

During your apprenticeship, we will ensure that you have the following experiences:

* You will meet some of our clients, in a variety of contexts, and learn about how we work with them.
* When we have new projects starting, you will assist with requirements gathering.
* You will work with delivery colleagues to schedule our client work,
* You will work with colleagues from Op, to understand how deployment and systems maintenance works.
* You will contribute to our regular meetings, where we coordinate our work (e.g. planning, stand-ups, retrospectives) and other team rituals.
* You will shadow colleagues who are reviewing code, to learn how we assure the quality of our code changes.
* You will work on support, responding to client requests and resolving tickets.
* You will work with our developers, to implement internal tools and client sites. Your work here will become increasingly independent over time, and some of your code will go into a production deployment for some of our client sites.

## Who will support you

As an Apprentice Developer, you have the following direct support:

* a mentor for each of your ‘rotations’ (for help and guidance related to your immediate work).
* a helper (for dxw / ways of working related help and guidance).
* a line manager (for both of those things and everything else).

You are also supported by the GovPress team and the technology team as a whole.

## Rotations

Your apprenticeship will be structured around a number of 'rotations' where you will
experience different aspects of our work. Each rotation will be different. Sometimes
you will mainly be shadowing more experienced colleagues, sometimes you will be making
a more direct contribution to the work. At the end of your apprenticeship you will take
on a small piece of work that you will plan and deliver largely by yourself.

In each rotation, a mentor will work with you. Where you are working directly on tasks,
your mentor will guide you in choosing work that is suitable for your level of experience.
If you feel overwhelmed at any time, or if you feel we are not challenging you enough,
please speak to your mentor, or line manager, and we will make adjustments. At every
stage, please ask lots of questions as you go. You won’t be expected to understand
everything at once and your colleagues will be ready to help you learn.

Occasionally, we may have a piece of work that would be useful for you to shadow,
that might not fit into your current rotation. If this happens, then you will spend
a day or two away from your main focus, with the agreement of your mentor and line
manager. This might happen when we schedule a kick-off workshop, for example. If
there are particular parts of GovPress that you are especially keen to be involved
in, you should discuss this with your line manager.

## Review points

During your apprenticeship there will be two or three "review points" where we will
assess your progress over your rotations. These will be scheduled to fit in at
sensible points in your apprenticeship, for example at the end of rotations. The
exact form of each review point will be communicated to you nearer the time, but
we would expect you to reflect on your own work, and to get feedback from the colleagues
you have worked with directly.

Where you have review meetings with an apprenticeship provider, or your end of
probation meetings, we will use these as review points, rather than duplicating
the number of meetings you need to prepare for.

## A typical apprenticeship

Every experience will depend on the individual developer and the workload the
GovPress team are handling at the time, but a 15 month apprenticeship might
look like this:

### Month 1: Induction rotation

Your first month will be spent going through our standard induction process, setting
up your laptop and environment for development work, learning any parts of our tech
stack that are unfamiliar to you, and working through the
[dxw curriculum](https://drive.google.com/drive/u/0/folders/1F3845eOMK84DpQ00qRtFUbP4NQzWaZ6l).
To guide your learning, you will work on a personal project, which will be similar
to GovPress client projects, but much smaller. Some of your work will be done in
"pairing" sessions where you will work closely with your line manager, or another
developer. You will also spend some time with our Delivery colleagues, understanding
how we schedule and coordinate our work.

During this month, you will also go through the final parts of our induction process.
This will involve meeting with every member of GovPress and some dxw staff outside
your team, to get to know each other and understand how the wider company works.

### Months 2-4: Sprinting team rotation (1)

In this rotation, you will work with a team that is sprinting on a larger client
project. You will begin by shadowing more experienced developers, and start to
make contributions of your own as your skills and confidence grow.

Your focus here will be on the specific challenges of implementing and testing
websites, including dealing with security concerns and accessibility.

### Months 5-6: Sprinting team rotation (2)

In this rotation, you will work with teams that are sprinting on much smaller client
projects. In this rotation you will learn to work on shorter
timescales

As with the other development rotations, you will begin by shadowing
more experienced developers, and start to make contributions of your own as your
skills and confidence grow.

### Months 7-9: Support and maintenance rotation

In this rotation, you will work with the Support and Maintenance team, who deliver
our internal projects and some smaller pieces of client work. You will contribute
to the tools that we use to implement and test client projects. At the start of this
rotation you will shadow your mentor and work with other developers in pair-programming.
As you grow in confidence, you will take on small development tasks of your own. Your
mentor will help you to choose tasks with the right level of complexity for you.

### Months 10-11: Support rotation

We believe that it’s important for all developers to understand the challenges
involved in running live services, so you will spend at least one rotation shadowing
and working with the client support team. During this time, you’ll help triage
tickets that come in, carry out maintenance tasks, and solve issues that come up.
You will do this with the support of members of that team.

### Months 12-13: Ops and delivery rotation

It is important for all developers to understand what happens to code once it is
deployed to a live environment, and the challenges involved in securing deployments,
so you’ll spend one rotation working with the Ops team. This rotation will be slightly
different to the others, as our Ops Engineers work more reactively than other parts of
the company. You will usually join the team in "mobbing", where the whole team will
work together to resolve a problem. You will largely be observing the work of the
mob and asking questions.

Whilst the Ops team is waiting for work to come in, you will also work with
colleagues in delivery and operations. Here, you will help to plan the delivery
of our existing projects, and any new work that comes in.

### Months 14-15: Self-directed rotation

In this rotation, you will work on a piece of software development work that you
will agree with your line manager and the Tech Leads, but plan and deliver yourself.
This work can be from any of our squads, but must be agreed in advance.

Good candidate projects will:

* have clear, well-defined user needs
* not be needed urgently by a client, although they may have some time constraints
* have full test coverage for existing features, and a high accessibility rating (if relevant)
* have both front and back end components
* be small enough to produce something useful for users in 6 or 8 weeks by an apprentice developer

If you are required to write a report as part of your apprenticeship, you should
schedule two weeks at the end of month 15 to do this.

0 comments on commit cc07e2d

Please sign in to comment.