Skip to content

Engineering Career Development

Work in progress

A general view of roles and career progression in software engineering and technical leadership.

Draft section: sharing initial thoughts

The Career development section is continually evolving and the thoughts shared and structure of this section may greatly change.

Ownership verses Responsibility

Engineers have collective ownership of all source code and should feel encouraged to contribute to any aspect of the code (e.g. creating and reviewing Pull Requests)

A team may have responsibility for specific components and services, ensuring their design goals are realised and maintained. The team should guide other engineers in their use and contributions to the parts of source code they are responsible for.

NOTE: From a legal perspective, the company you work for usually owns the code you write (explicitly defined in employment contracts).

Engineers

An engineer is a decision maker.

To be effective, an engineer needs correct and clear information upon which to make decisions.

A 'perfect' system is always preferable, but rarely is it cost-effective to attain perfection. Changes happen and what was once perfect has become less relevant over time.

High Performing Teams

Management roles balance the needs and expectations of the organisation with the engineering teams ability to deliver.

An essential starting point to create a high performing team is to correctly understand the critical path for delivery.

Effectively alleviating the next impactful constraint on that path increases a teams ability to perform.

Constraints on an engineering teams ability to deliver are numerous. Addressing all these constraints up front is rarely viable. The team should consider the benefits of alleviating a constraint with the time and resources required to do so.

Retrospective: Turn a million papercuts into valuable actions

A team may experience so many papercuts that its hard to know which to address first.

Team retrospectives focused on ways of working elicits a shared priority for addressing papercuts based on impact.

Leadership

Everyone should be encouraged to demonstrate leadership, taking responsibility for their thoughts and actions.

Leadership has little to do with positional power.

Those in a management role should emote a strong sense of leadership, owning the responsibility of the team.

Manager roles encourage and support everyone else to show leadership, especially in the areas each person is invested in (or wishes to invest time in).