Skip to content

Commit

Permalink
refs #148: wip on the ridefinition of career ladder for devs.
Browse files Browse the repository at this point in the history
  • Loading branch information
stickgrinder committed Apr 27, 2023
1 parent aaf8bcd commit b605779
Show file tree
Hide file tree
Showing 3 changed files with 212 additions and 35 deletions.
59 changes: 46 additions & 13 deletions content/organization/operations.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,32 +3,65 @@ Description: Operational roles and functions in SparkFabrik
Sort: 10
*/

In SparkFabrik the term _developer_ is used generally to identify employees that deliver solutions to the customer.
It doesn't matter if your job is to write code, design a new interface or take care of the operations on a cloud appliance. Your job is still to _develop_ things: be it from scratch or to improve them.
Operational roles apply to employees that deliver solutions to customers.
We are talking about the people who write code, design new interfaces or take care of the operations on a cloud appliance.

## Careers

Operational career paths expand vertically (_Growth_) and horizontally (_Specialities_).
Operational career paths expand [vertically](#seniority-levels). As you work in SparkFabrik, learn new skills and take over more responsibilities, you will climb the seniority ladder and be rewarded accordingly.

### Growth
During your career though, you may take different roles on different projects. This may happen because your team considers you the best one to cover that role, or because you want to learn if it is your cup of tea.
Or maybe because nobody else is available at that very moment, and you have to bite the bullet.

We recognize four levels of professional skills, depending on seniority and level of proficiency. Each level has its salary bracket, mission and clear expectations. Developers [progress over this career path](/working-at-sparkfabrik/career-advancement.md) by their length of service, their results and by nurturing their technical and non-technical skills.
Moving [horizontally](#project-roles) on different aspects of a project may be a challenge, but is an incredible accelerator for your professional growth and for becoming a key person in the company.

* **Junior developer**: this is the level where duly graduated people or developers already experienced in other technologies start. We expect people to quickly step up to the next level, ideally in 12 to 36 months of employment.
* **Senior developer**: this is the level that composes the big part of our company and that we heavily rely upon. People at this level are skilled and proficient with both our technology and our methodology. They can mentor juniors and are autonomous in their work.
* **Lead developer**: those are the people that lead teams and projects in SparkFabrik. Those people have a senior-level background on top of which they developed the soft skills necessary to govern the social, technical and organizational complexity of our work.
* **Professional**: this is the highest operational role in SparkFabrik. Professionals are the people that embody a speciality, can work with one or multiple teams at once, represent SparkFabrik at important tables, provide training and mentorships, etc. Professionals may occasionally lead a team, but they are supposed to work cross-teams as reference key people.
## Seniority levels

Learn more about each [role accountabilities](/organization/roles-accountabilities).
Each unit in the company has different seniority ladders, depending on the level of proficiency and experience.
Each level has its salary bracket, mission, and clear expectations.

### Specialities
### Software Developers

We explained that SparkFabrik only employs _developers_. Sure there are differences and each person has their own natural or acquired inclination. We broadly recognize four _Specialities_ that qualify you as a developer and do our best to make you shine in accordance with your nature. During your career, you will probably cover more than a single speciality, even at the same time.
Developers [progress over this career path](/working-at-sparkfabrik/career-advancement.md) by their length of service, their adaptability, their attitude, their outcomes, and by nurturing their technical and non-technical skills.

#### Junior Developer

To qualify as a junior developer you need some degree of experience with the basics and, no denying, a diploma or graduation in Computer Science or Engineering helps a lot.
The main duties of a Junior developer are contributing clean work, building solid relations with the team, and learning daily.

#### Mid-Level Developer

When you get the hang of the [core skills](#) and have 18 months to 2 years of work on real projects under your belt, you are right on track to be called a senior developer.
At this point producing working software in a mostly autonomous should be your daily routine. Your place and relations with the team and with the company should be clear and established.

Stepping to the next level is a matter of widening your technical knowledge as well as understanding how a project unfolds, and experience how it is to work in certain [roles](#project-roles).

#### Senior Developer

Seniority is about managing relations and processes as it is about technical proficiency.

This title is for developers with three or more years of expertise in the field, who know their toolchains in and out, can learn new technologies with ease, shape the delivery processes with their team, support and mentor their younger colleagues, and probably cover one or more [roles](#project-roles)](#project-roles) on their projects.

#### Professional developers

This is the career pinnacle for developers in SparkFabrik and it's not for everyone. Those we call Professional Developers are the people that embody our culture, can work with one or multiple teams at once, represent SparkFabrik at important tables, provide training and mentorships and proactively contribute to the success of our mission.

Professional Developers may still cover any [role](#project-roles) on a specific project, but they may as well work cross-team or be appointed as reference key people.

### Cloud Engineers

#### TBD

### Solution Designers

## Project Roles

We broadly recognize four _Specialities_ that qualify you as a developer and do our best to make you shine following your nature. During your career, you will probably cover more than a single speciality, even at the same time.

* **Team Leader**: Managers make things work. They coach, measure, plan, steer and ultimately support people to give their best, remove obstacles, and improve their processes and procedures. In SparkFabrik people are never managed -- work is. So managers govern but never rule.
* **Analyst**: Analysts are great when it comes to mapping a domain, fathoming complexity and expressing it in a clear, rational, understandable form. Analysts may not always have a solution at hand but for sure they know when a need is fulfilled or a problem is solved. Analysts' skills make for great Product Owners.
* **Architect**: Architects describe the best possible solution to a framed problem. They are great decision makers, understand the long-term implications of technical choices, know how to quickly probe, understand and adapt and always grasp the big picture.
* **Specialist**: Specialists are vertically experts in a discipline or area: be it writing software, cloud operations, Agile or UX design. Those are the keenest to work in pair with project teams in the long run when there are critical challenges.
* **Manager**: Managers make things work. They coach, measure, plan, steer and ultimately support people to give their best, remove obstacles, and improve their processes and procedures. In SparkFabrik people are never managed -- work is. So managers govern but never rule.

## How to advance

Expand Down
33 changes: 11 additions & 22 deletions content/resources/role-iac-junior-developer.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,12 +15,11 @@ Sort: 50

## Mission

* To realize technical solutions that satisfy customers' needs.
* To follow the direction of your team lead in doing so.
* To work following our agreed procedures and matching our quality standards.
* To build skills and knowledge by working on projects under the guidance of more experienced developers.
* To follow our procedures and match our quality standards.
* To value collaboration and critiques as the building blocks for trust with colleagues and customers.
* To value continuous improvement, seek out opportunities to learn and live by the principles of the Agile manifesto.
* To seek assistance every time you are in the need, not trying to shine by self-love or obstinacy.
* To seek assistance when the need is, not trying to shine by self-love or obstinacy.
* To deliver software solutions to our customers by completing assigned tasks.

## Values

Expand All @@ -44,9 +43,9 @@ You share your goals with your mates and work with them, never playing the hero

</span>

#### Self-organization
#### Respect

Your schedule and workload balance is your responsibility. You have clear what's expected of you each iteration (week, sprint, milestone) and step up to discuss conflicting priorities and possible bottlenecks with the management.
Your duties, schedule, and assignments have a reason to be and you respect this. You can - and must - be curious about the reasons behind our choices and it's always ok to ask for clarifications. When giving you the whole context is not possible, respect your more experienced colleagues, trust their judgment, and observe how things unfold.

<span class='score only-print'>

Expand All @@ -58,7 +57,7 @@ Your schedule and workload balance is your responsibility. You have clear what's

#### Lucidity

You have clear what's expected from you and what you have to do to match the expectation. When you feel like you lost your goals, you speak up and do your best to have them clear.
You have a clear idea of what's expected from you and what you have to do to match the expectation. When you feel like you lost your goals, you speak up and do your best to have them clarified.

<span class='score only-print'>

Expand Down Expand Up @@ -94,7 +93,7 @@ You speak your mind and sustain your ideas with words and facts, but you are ope

## Business impacts

* You define implementative details of solutions that fulfill business goals, matching our high quality standards.
* You realize solutions that fulfill business goals, matching our high-quality standards, as defined together with your team.

<span class='score only-print'>

Expand All @@ -104,7 +103,7 @@ You speak your mind and sustain your ideas with words and facts, but you are ope

</span>

* You realize solutions that fulfill business goals, matching our high quality standards, as defined with your team.
* You learn new, useful skills, taking advantage of any opportunity but discussing possible negative impacts on your duties with your team mates.

<span class='score only-print'>

Expand All @@ -114,17 +113,7 @@ You speak your mind and sustain your ideas with words and facts, but you are ope

</span>

* You learn new, useful skills, taking advantage of any opportunity, balancing possible negative impacts on your duties.

<span class='score only-print'>

- [ ] **I still can't match the expectation** _(Why? Take notes!)_
- [ ] **I deliver what's expected**
- [ ] **I exceed this expectation** _(Why? Take notes!)_

</span>

* You help improve internal projects (even if just with bug fixes or documentation) based on your skills, aspirations and training goals.
* You help improve internal projects (even if just with bug fixes or documentation) based on your skills, aspirations, and training goals.

<span class='score only-print'>

Expand All @@ -146,7 +135,7 @@ You speak your mind and sustain your ideas with words and facts, but you are ope

</span>

* You deliver contributions (bug fixes, documentation, translations) to community projects based on your skills, aspirations and training goals.
* You deliver contributions (bug fixes, documentation, translations) to community projects based on your skills, aspirations, and training goals.

<span class='score only-print'>

Expand Down
155 changes: 155 additions & 0 deletions content/resources/role-iac-mid-developer.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,155 @@
/*
Title: Impact Assessment Card - Junior Developer
Description: Junior Developer role in SparkFabrik
Sort: 50
*/
<span class='no-print'>
<div class="row justify-content align-items-center">
<div class="col mb-3 mb-lg-0">
<p class="quote font-italic">Print this page! The printed version of this page will be formatted to allow you to compile the IAC.</p>
</div>
<div class="col-lg-auto">
<button class='btn btn--print' type="button" onclick="window.print();"><img class="icon-print" src="/images/icon_print.svg" alt="Pint">Print this IAC</button>
</div>
</div>

## Mission

* To build skills and knowledge by working on projects under the guidance of more experienced developers.
* To follow our procedures and match our quality standards.
* To value collaboration and critiques as the building blocks for trust with colleagues and customers.
* To seek assistance when the need is, not trying to shine by self-love or obstinacy.

## Values

* Passion
* Curiosity
* Communication

</span>

## Attitude

#### Teamwork

You share your goals with your mates and work with them, never playing the hero or being a team of one. You speak your voice clearly, even when it's difficult, without holding relevant information for fear or stubbornness. When being frank makes you uncomfortable, you still strive to be polite and cheerful so you can make your point.

<span class='score only-print'>

- [ ] **I still can't match the expectation** _(Why? Take notes!)_
- [ ] **I deliver what's expected**
- [ ] **I exceed this expectation** _(Why? Take notes!)_

</span>

#### Self-organization

Your schedule and workload balance is your responsibility. You have clear what's expected of you each iteration (week, sprint, milestone) and step up to discuss conflicting priorities and possible bottlenecks with the management.

<span class='score only-print'>

- [ ] **I still can't match the expectation** _(Why? Take notes!)_
- [ ] **I deliver what's expected**
- [ ] **I exceed this expectation** _(Why? Take notes!)_

</span>

#### Lucidity

You have clear what's expected from you and what you have to do to match the expectation. When you feel like you lost your goals, you speak up and do your best to have them clear.

<span class='score only-print'>

- [ ] **I still can't match the expectation** _(Why? Take notes!)_
- [ ] **I deliver what's expected**
- [ ] **I exceed this expectation** _(Why? Take notes!)_

</span>

#### Awareness

You perceive the overall impacts of your day-to-day choices and know when to ask for validation. You face challenges proactively, don't wait for others to solve problems for you, but know when to stop and ask for help to avoid wasting time or losing your mind on things bigger than you.

<span class='score only-print'>

- [ ] **I still can't match the expectation** _(Why? Take notes!)_
- [ ] **I deliver what's expected**
- [ ] **I exceed this expectation** _(Why? Take notes!)_

</span>

#### Strong opinions, lightly held

You speak your mind and sustain your ideas with words and facts, but you are open to criticism and listen with open ears.

<span class='score only-print'>

- [ ] **I still can't match the expectation** _(Why? Take notes!)_
- [ ] **I deliver what's expected**
- [ ] **I exceed this expectation** _(Why? Take notes!)_

</span>

## Business impacts

* You define implementative details of solutions that fulfill business goals, matching our high quality standards.

<span class='score only-print'>

- [ ] **I still can't match the expectation** _(Why? Take notes!)_
- [ ] **I deliver what's expected**
- [ ] **I exceed this expectation** _(Why? Take notes!)_

</span>

* You realize solutions that fulfill business goals, matching our high quality standards, as defined with your team.

<span class='score only-print'>

- [ ] **I still can't match the expectation** _(Why? Take notes!)_
- [ ] **I deliver what's expected**
- [ ] **I exceed this expectation** _(Why? Take notes!)_

</span>

* You learn new, useful skills, taking advantage of any opportunity, balancing possible negative impacts on your duties.

<span class='score only-print'>

- [ ] **I still can't match the expectation** _(Why? Take notes!)_
- [ ] **I deliver what's expected**
- [ ] **I exceed this expectation** _(Why? Take notes!)_

</span>

* You help improve internal projects (even if just with bug fixes or documentation) based on your skills, aspirations and training goals.

<span class='score only-print'>

- [ ] **I still can't match the expectation** _(Why? Take notes!)_
- [ ] **I deliver what's expected**
- [ ] **I exceed this expectation** _(Why? Take notes!)_

</span>

## Contributions

* You seize all opportunities to contribute to SparkFabrik's internal projects or media, even with things as small as dependencies updates or typo corrections.

<span class='score only-print'>

- [ ] **I still can't match the expectation** _(Why? Take notes!)_
- [ ] **I deliver what's expected**
- [ ] **I exceed this expectation** _(Why? Take notes!)_

</span>

* You deliver contributions (bug fixes, documentation, translations) to community projects based on your skills, aspirations and training goals.

<span class='score only-print'>

- [ ] **I still can't match the expectation** _(Why? Take notes!)_
- [ ] **I deliver what's expected**
- [ ] **I exceed this expectation** _(Why? Take notes!)_

</span>

0 comments on commit b605779

Please sign in to comment.