Choose a category.
This is the multi-page printable view of this section. Click here to print.
Articles
- 1: Agile
- 1.1: Agile meetings
- 1.2: Agile processes
- 1.3: Agile tools
- 2: APIs
- 2.1: API design
- 2.2: API documentation
- 2.3: API implementation
- 3: Assisting tools
- 3.1: Communication software
- 3.2: IDEs
- 3.3: Project management software
- 4: Cloud services
- 4.1: Cloud deployment
- 4.2: Cloud management
- 4.3: Cloud storage
- 5: Data
- 5.1: Graph databases
- 5.2: NoSQL
- 5.3: SQL
- 6: Design
- 6.1: Architecture
- 6.2: Design patterns
- 6.3: System documentation
- 7: DevOps
- 7.1: CI/CD
- 7.2: Containerisation
- 7.3: System administration
- 8: Frameworks
- 8.1: Application frameworks
- 8.2: Database frameworks
- 8.3: Frontend frameworks
- 9: Integrations
- 9.1: API integrations
- 9.2: Data integrations
- 9.3: Messaging systems
- 10: Languages
- 10.1: Core languages
- 10.2: Full stack development
- 10.3: Supplementary languages
- 11: Security
- 11.1: API security
- 11.2: Data security
- 11.3: Network security
- 12: Soft skills
- 12.1: Management
- 12.2: Teamwork
- 12.3: Tech support
- 13: Testing
- 13.1: Test frameworks
- 13.2: Test principles
- 13.3: Testing tools
- 14: Visualisation
- 14.1: Logging
- 14.2: Monitoring
- 14.3: Reporting
1 - Agile
Agile teams optimise feedback.
1.1 - Agile meetings
Requirements
- Plan sprints.
- Review sprints retrospectively.
- Refine the backlog.
Examples
See also
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
- Defined projects:
- Isolated tasks:
- Customer satisfaction:
See also
1.3 - Agile tools
Requirements
- Represent tasks as tickets.
- Implement code review.
- Share idea with whiteboards.
Examples
- Tickets:
- Code review:
- Whiteboards:
See also
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
- CRUD:
- Idempotency:
- Style guide:
See also
2.2 - API documentation
Requirements
- Generate documentation from the source code.
- Adhere to a specification.
- Provide examples.
Examples
- Generated documentation:
- Specification:
- Examples:
See also
2.3 - API implementation
Requirements
- Define APIs.
- Consume APIs.
- Handle errors.
Examples
- Definition:
- Consumption:
- Errors:
See also
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
- Chat:
- Video conferencing:
- Code review comments:
See also
3.2 - IDEs
Requirements
- Improve productivity with plugins.
- Debug code.
- Integrate with version control.
Examples
- Plugins:
- Debugging:
- Version control:
See also
3.3 - Project management software
Requirements
- Manage tasks.
- Share documents.
- Collaborate via virtual whiteboards.
Examples
- Tasks:
- Documents:
- Collaboration:
See also
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
- Infrastructure as code:
- Cloud deployment:
- Orchestration:
See also
4.2 - Cloud management
Requirements
- Manage virtual machines.
- Scale application instances.
- Perform command-line interactions.
Examples
- Virtual machines:
- Scaling:
- Command-line interface:
See also
4.3 - Cloud storage
Requirements
- Store unstructured data.
- Store relational data.
- Store documents.
Examples
- Unstructured data:
- Relational data:
- Documents:
See also
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
- Graph model:
- CRUD operations:
- Optimisation:
See also
5.2 - NoSQL
Requirements
- Define document structures.
- Perform CRUD operations.
- Optimise performance with indexes.
Examples
See also
5.3 - SQL
Requirements
- Define relational tables.
- Perform CRUD operations.
- Optimise performance with indexes.
Examples
See also
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
- Overarching design:
- Domain-driven design:
- Components:
See also
6.2 - Design patterns
Requirements
- Implement features with Gang of Four design patterns.
- Integrate components with integration patterns.
- Apply SOLID principles.
Examples
- Gang of Four patterns:
- Integration patterns:
- SOLID principles:
See also
6.3 - System documentation
Requirements
- Illustrate components with a modelling tool.
- Document interface contracts.
- Provide a dedicated website for documentation.
Examples
- Modelling tool:
- Interface contracts:
- Dedicated website:
See also
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
- CI/CD tool:
- Infrastructure as code:
- Multiple environments:
See also
7.2 - Containerisation
Requirements
- Containerise applications.
- Orchestrate containers.
- Manage containerisation.
Examples
- Containerise:
- Orchestrate:
- Manage:
See also
7.3 - System administration
Requirements
- Issue commands.
- Write scripts.
- Manage code.
Examples
- Commands:
- Scripts:
- Code:
See also
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
8.2 - Database frameworks
Requirements
- Map tables to objects.
- Simplify database queries.
- Manage query caching.
Examples
- Map tables:
- Database queries:
- Query caching:
See also
8.3 - Frontend frameworks
Requirements
- Simplify frontend development.
- Link the frontend to the backend.
- Incorporate UI widgets.
Examples
- Simplify development:
- Linkage to backend:
- UI widgets:
See also
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
- Frontend to backend:
- Internal backends:
- Third party APIs:
See also
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
- Relocate reporting data:
- Load data:
- Replication:
See also
9.3 - Messaging systems
Requirements
- Decouple components with topics and queues.
- Introduce resilient connections.
- Scale components independently.
Examples
- Decoupling:
- Resilience:
- Scaling:
See also
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
- Expert level study:
- Advanced concepts:
- Language inner workings:
See also
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
- Adeptness at frontend and backend:
- Full stack development:
- Specialists:
See also
10.3 - Supplementary languages
Requirements
- Configure applications.
- Promote reuse with templating engines.
- Present data.
Examples
See also
11 - Security
Security is an essential safety measure.
11.1 - API security
Requirements
- Authenticate users.
- Authorise users.
- Protect externally facing APIs.
Examples
- Authentication:
- Authorisation:
- API access:
See also
11.2 - Data security
Requirements
- Encrypt passwords.
- Store credentials safely.
- Restrict all access.
Examples
- Encryption:
- Credential storage:
- Restrict access:
See also
11.3 - Network security
Requirements
- Secure remote access.
- Implement packet capture.
- Protect resources with firewalls.
Examples
- Remote access:
- Packet capture:
- Firewalls:
See also
12 - Soft skills
Strengthen working relationships.
12.1 - Management
Requirements
- Mentor junior colleagues.
- Prioritise tasks.
- Judge time estimates.
Examples
- Mentoring:
- Prioritisation:
- Time estimates:
See also
12.2 - Teamwork
Requirements
- Facilitate knowledge transfer.
- Deliver presentations.
- Write code together.
Examples
- Knowledge transfer:
- Presentations:
- Coding:
See also
12.3 - Tech support
Requirements
- Communicate with customers.
- Log incidents.
- Undergo training.
Examples
- Communication:
- Incidents:
- Training:
See also
13 - Testing
Extensive testing raises system quality.
13.1 - Test frameworks
Requirements
- Implement unit testing.
- Implement mocks.
- Implement frontend testing.
Examples
See also
13.2 - Test principles
Requirements
- Practise test-driven development.
- Practise behaviour-driven development.
- Implement a test strategy.
Examples
- Test-driven development:
- Behaviour-driven development:
- Test strategy:
See also
13.3 - Testing tools
Requirements
- Measure code coverage.
- Automate testing.
- Deploy to test environments.
Examples
See also
14 - Visualisation
Visualisation improves insight.
14.1 - Logging
Requirements
- Visualise logs.
- Log within the code.
- Implement distributed tracing.
Examples
- Visualisation:
- Log statements:
- Distributed tracing:
See also
14.2 - Monitoring
Requirements
- Record application metrics.
- Expose metrics via an API.
- Monitor application health.
Examples
- Record metrics:
- Expose metrics:
- Monitor health:
See also
14.3 - Reporting
Requirements
- Report via an SDK.
- Report via a customer relationship management tool.
- Run custom reports.
Examples
- SDK:
- Customer relationship management:
- Custom reports: