1 - Agile

Agile teams optimise feedback.

1.1 - Agile meetings

Requirements

  • Plan sprints.
  • Review sprints retrospectively.
  • Refine the backlog.

Examples

See also

Teamwork

1.2 - Agile processes

Requirements

  • Choose a process for well-defined projects.
  • Choose a process for isolated tasks.
  • Choose a process for prioritising customer satisfaction.

Examples

See also

Management

Tech support

1.3 - Agile tools

Requirements

  • Represent tasks as tickets.
  • Implement code review.
  • Share idea with whiteboards.

Examples

See also

Communication software

Project management software

2 - APIs

APIs make communication easy.

2.1 - API design

Requirements

  • Map CRUD operations to HTTP methods.
  • Enforce idempotency.
  • Follow a naming style guide.

Examples

See also

API integrations

API security

Monitoring

2.2 - API documentation

Requirements

  • Generate documentation from the source code.
  • Adhere to a specification.
  • Provide examples.

Examples

See also

System documentation

2.3 - API implementation

Requirements

  • Define APIs.
  • Consume APIs.
  • Handle errors.

Examples

See also

API integrations

API security

Monitoring

3 - Assisting tools

Learn the tools of the trade.

3.1 - Communication software

Requirements

  • Chat with colleagues.
  • Interview via video conference.
  • Comment on code reviews.

Examples

See also

Agile tools

Teamwork

Tech support

3.2 - IDEs

Requirements

  • Improve productivity with plugins.
  • Debug code.
  • Integrate with version control.

Examples

See also

System administration

3.3 - Project management software

Requirements

  • Manage tasks.
  • Share documents.
  • Collaborate via virtual whiteboards.

Examples

See also

Agile tools

Management

4 - Cloud services

Cloud services facilitate resource management.

4.1 - Cloud deployment

Requirements

  • Define infrastructure as code.
  • Automate cloud deployment.
  • Orchestrate on the cloud.

Examples

See also

CI/CD

Containerisation

System administration

4.2 - Cloud management

Requirements

  • Manage virtual machines.
  • Scale application instances.
  • Perform command-line interactions.

Examples

See also

CI/CD

Containerisation

System administration

4.3 - Cloud storage

Requirements

  • Store unstructured data.
  • Store relational data.
  • Store documents.

Examples

See also

Graph databases

NoSQL

SQL

5 - Data

Data forms a system’s foundation.

5.1 - Graph databases

Requirements

  • Define the graph model.
  • Perform CRUD operations.
  • Optimise performance with indexes.

Examples

See also

Cloud storage

Data integrations

Data security

Database frameworks

5.2 - NoSQL

Requirements

  • Define document structures.
  • Perform CRUD operations.
  • Optimise performance with indexes.

Examples

See also

Cloud storage

Data integrations

Data security

Database frameworks

5.3 - SQL

Requirements

  • Define relational tables.
  • Perform CRUD operations.
  • Optimise performance with indexes.

Examples

See also

Cloud storage

Data integrations

Data security

Database frameworks

6 - Design

Elegant designs clarify system behaviour.

6.1 - Architecture

Requirements

  • Choose a suitable overarching design.
  • Enforce system-wide consistency with domain-driven design.
  • Define components.

Examples

See also

API design

API integrations

Data integrations

Messaging systems

6.2 - Design patterns

Requirements

  • Implement features with Gang of Four design patterns.
  • Integrate components with integration patterns.
  • Apply SOLID principles.

Examples

See also

API design

API integrations

Data integrations

Messaging systems

6.3 - System documentation

Requirements

  • Illustrate components with a modelling tool.
  • Document interface contracts.
  • Provide a dedicated website for documentation.

Examples

See also

API documentation

7 - DevOps

Streamline deployments with DevOps.

7.1 - CI/CD

Requirements

  • Choose a CI/CI tool.
  • Implement infrastructure as code.
  • Deploy to multiple environments.

Examples

See also

Cloud deployment

Cloud management

7.2 - Containerisation

Requirements

  • Containerise applications.
  • Orchestrate containers.
  • Manage containerisation.

Examples

See also

Cloud deployment

Cloud management

7.3 - System administration

Requirements

  • Issue commands.
  • Write scripts.
  • Manage code.

Examples

See also

IDEs

8 - Frameworks

Frameworks simplify development.

8.1 - Application frameworks

Requirements

  • Decouple dependencies with inversion of control.
  • Simplify API development.
  • Simplify web applications.

Examples

See also

API implementation

8.2 - Database frameworks

Requirements

  • Map tables to objects.
  • Simplify database queries.
  • Manage query caching.

Examples

See also

Graph databases

NoSQL

SQL

8.3 - Frontend frameworks

Requirements

  • Simplify frontend development.
  • Link the frontend to the backend.
  • Incorporate UI widgets.

Examples

See also

Full stack development

9 - Integrations

Integrate internal components and external systems.

9.1 - API integrations

Requirements

  • Call the backend from the frontend.
  • Link internal backends.
  • Call third party APIs.

Examples

See also

API design

API implementation

API security

9.2 - Data integrations

Requirements

  • Relocate reporting data to a dedicated database.
  • Load data from other databases.
  • Replicate data to a performant read-only database.

Examples

See also

Graph databases

NoSQL

SQL

9.3 - Messaging systems

Requirements

  • Decouple components with topics and queues.
  • Introduce resilient connections.
  • Scale components independently.

Examples

See also

Architecture

10 - Languages

Language skill is fundamental to software engineering.

10.1 - Core languages

Requirements

  • Study core languages at expert level.
  • Implement advanced concepts where appropriate.
  • Understand language inner workings.

Examples

See also

Design patterns

10.2 - Full stack development

Requirements

  • Be adept with both frontend and backend languages.
  • Write features across the full stack.
  • Work with specialist developers.

Examples

See also

Frontend frameworks

10.3 - Supplementary languages

Requirements

  • Configure applications.
  • Promote reuse with templating engines.
  • Present data.

Examples

See also

System documentation

11 - Security

Security is an essential safety measure.

11.1 - API security

Requirements

  • Authenticate users.
  • Authorise users.
  • Protect externally facing APIs.

Examples

See also

API design

API implementation

API integrations

11.2 - Data security

Requirements

  • Encrypt passwords.
  • Store credentials safely.
  • Restrict all access.

Examples

See also

Data integrations

Graph databases

NoSQL

SQL

11.3 - Network security

Requirements

  • Secure remote access.
  • Implement packet capture.
  • Protect resources with firewalls.

Examples

See also

Cloud management

12 - Soft skills

Strengthen working relationships.

12.1 - Management

Requirements

  • Mentor junior colleagues.
  • Prioritise tasks.
  • Judge time estimates.

Examples

See also

Agile processes

Agile meetings

Project management software

12.2 - Teamwork

Requirements

  • Facilitate knowledge transfer.
  • Deliver presentations.
  • Write code together.

Examples

See also

Agile processes

Agile meetings

12.3 - Tech support

Requirements

  • Communicate with customers.
  • Log incidents.
  • Undergo training.

Examples

See also

Agile processes

Logging

13 - Testing

Extensive testing raises system quality.

13.1 - Test frameworks

Requirements

  • Implement unit testing.
  • Implement mocks.
  • Implement frontend testing.

Examples

See also

Application frameworks

Database frameworks

Frontend frameworks

Full stack development

13.2 - Test principles

Requirements

  • Practise test-driven development.
  • Practise behaviour-driven development.
  • Implement a test strategy.

Examples

See also

Agile processes

13.3 - Testing tools

Requirements

  • Measure code coverage.
  • Automate testing.
  • Deploy to test environments.

Examples

See also

CI/CD

Cloud deployment

14 - Visualisation

Visualisation improves insight.

14.1 - Logging

Requirements

  • Visualise logs.
  • Log within the code.
  • Implement distributed tracing.

Examples

See also

Tech support

14.2 - Monitoring

Requirements

  • Record application metrics.
  • Expose metrics via an API.
  • Monitor application health.

Examples

See also

API integrations

14.3 - Reporting

Requirements

  • Report via an SDK.
  • Report via a customer relationship management tool.
  • Run custom reports.

Examples

See also

Data integrations

Tech support