Basic Needs
What does any team, regardless of age and stage, need to build an application and deploy changes to it?
From People and purpose to Computing and a Backlog, all software projects need fundamental things in place for the team to succeed. The more the group meets these needs in a self-service experience, the more successful the outcome.
People & Purpose π
Enough team members to meet the ownership and delivery expectations on them.
π Benefit: The project's vision and objectives are clearly communicated, creating a sense of shared purpose, motivation and cohesion among team members and leadership.
πΆ Signal(s): I feel connected to the purpose and goals of the project I am working on.
Technical capability π
The team's technical capabilities align well with the requirements of the project. Team members can complete daily activities confidently.
π Benefit: Increased independence and confidence. A solid understanding of the technologies, frameworks and tools that are utilised, allowing them to design and develop robust solutions efficiently.
πΆ Signal(s): Most people can pick up most work on the team. They regularly pair-program to help with productivity and building experience.
Environment Management π
Ability to test and debug changes in a prod-like environment, infrastructure-as-code, data sets/data generation, dependency management and configuration, mocks, data generation, short-lived environments.
π Benefit: Real dependencies, similar/same technically to production. Composable environments. Setting up and managing different environments for my project is efficient and cheap.
πΆ Signal(s): An environment for every change.
Work Backlog π
With a well-maintained backlog, the project team can effectively plan, estimate, and track progress, ensuring a steady flow of value delivery.
π Benefit: Prioritization reflects a balance of business, value, customer value, team productivity and service performance.
πΆ Signal(s): The work backlog for my project is well-organized and prioritized. The backlog items are appropriately sized, ensuring efficient planning and task allocation.
Data & Storage π
Familiar, fit-for-purpose data storage solutions are available to suit the organisation's obligations.
π Benefit: Opinionated self-service data solutions are available for the teams across SQL, NoSQL, Blob/Bucket and Caching. Guidance and defaults are in place for performance, reliability, and data durability.
πΆ Signal(s): The mean-time-to-restore is known for its primary services. Sharding or partitioning policies support the scale and regional context of the services. The team can independently manage Data migrations and schema changes. There is up-to-date documentation of schemas and associated privacy or security classifications.
Version Control π
New repositories, teams and projects and permissions are created in a consistent way.
π Benefit: Clear guidance on branching strategies implemented at the organisation level. It is easy to track changes and support concurrent development and rollback changes. Clear association between repository, team and any deployed assets and overall project status.
πΆ Signal(s): There is guidance and examples on creation of repositories for internal only, internal + trusted partners, and open source use cases. The removal of permissions for ex employees and contractors is automated.
Production Environments π
Trusted combined state of configuration, deployed artifact(s), infrastructure, runtimes, dependencies and access control.
π Benefit: Production Environment ensures a seamless user experience and customer satisfaction by providing a reliable software deployment platform.
πΆ Signal(s): Optimised and managed for high performance, scalability and availability. The team can quickly access production log files and data to assist with troubleshooting issues.
Observability π
Ability to debug, troubleshoot and monitor normal and abnormal system behaviour. Curated patterns and tooling for the collection, storage, querying and aggregation of system data
π Benefit: It provides comprehensive visibility into the system's health, performance, and logs, allowing for timely detection and resolution of issues.
πΆ Signal(s): An opinionated operational health dashboard familiar to the team.
Operating Rhythms π
The routines used by the team to manage delivery and operations. Planning on a daily, weekly and quarterly basis. Open communication for timely updates, issue resolution, and knowledge sharing.
π Benefit: Regular team meetings, stand-ups, and planning sessions foster a shared understanding of priorities and facilitate the coordination of tasks. Achievements are celebrated, learnings are sought, and the team is empowered to balance capacity investment across new feature delivery, maintaining quality of service and improving efficiencies. There is Organisation level visibility on past and planned investments across new feature delivery, maintaining quality of service and improving productivity.
πΆ Signal(s): Familiar and effective ceremonies. There is Clear visibility on past and planned investments across new feature delivery, maintaining quality of service and improving productivity.
Permissions & Identity π
The ability to create and manage accounts, credentials, roles and permissions for end users of the product or service the team is responsible for.
π Benefit: Support for social logins, single sign-on, account verification and suspension. Multi-factor authentication flows.
πΆ Signal(s): The ability to script user generation or resets to help with integration test automation.
Local Dev + IDE π
Highly automated opinionated setup process gives developers a consistent baseline setup to support build, test and run activities for the primary services they work on. Service-specific local setup (e.g. install dependencies, mocks, test data). Related to environment management.
π Benefit: Provides a smooth and productive coding experience, with the necessary tools, libraries, frameworks and associated licenses are readily available.
πΆ Signal(s): IDE is setup consistent for new team members. Agreed coding conventions are codified in 'dot files' at machine or repository level.
Compute π
The allocated computational resources sufficiently meet the demands of my project, ensuring optimal performance and scalability without hindering productivity.
π Benefit: Self-service compute solutions available for the teams across VMs, containers, FaaS and edge workloads with opinionated sensible defaults. Clear options to support minimum capacity, elastic scaling, burst scaling and serverless. Guidance and defaults in place for performance, reliability and availability of compute platforms.
πΆ Signal(s): Running instances, configured containers younger than ([)two) weeks to improve patching compliance and avoid stateful dependencies. Proactive management of minimum OS and runtime versions to avoid running non supported versions of dependencies in production.
Cloud Accounts & IO π
Fast automated creation and deletion of cloud accounts with consistent and compliant Identity and Access Management inherited from a centralised control pane. Accounts created with consistent virtual networks for deployed assets and across accounts.
π Benefit: Higher team independence and compliance management.
πΆ Signal(s): Common resource types are created in highly compliant configuration. Accounts created with consistent virtual networks for deployed assets and across accounts.
Gateways & Web Delivery π
The api gateways and web delivery mechanisms (e.g. CDNs) employed in my project ensure efficient and reliable communication between various services for internal and external traffic.
π Benefit: These gateways provide a unified entry point, handle routing and load balancing, and ensure secure and optimised data transmission. With robust web delivery mechanisms, the project team can achieve high availability, scalability, and fault tolerance, delivering a seamless user experience and enabling effective integration with external systems.
πΆ Signal(s): Patterns and running examples are familiar to the team for API Gateways, content delivery and caching management (e.g. Azure API Management, Cloudflare, Fastly, Akamai, Cloudfront, Kong, NGINX).