In today's fast-paced software development world, supporting a large organisation with a lean team resource requires a strategic approach. Our Tools & Process team - NPD Software within Dyson RDD regularly explores how a lean DevOps team can effectively manage the software development lifecycle (SDLC) for approx. 100 scrum teams building software for our amazing world class Dyson machines in addition to over 3k engineers of multiple disciplines globally who also use some of the applications we manage.
We'll delve into tools, techniques, and strategies to maximise efficiency while fostering a culture of automation and self-sufficiency.
The Challenge: Scaling Support Without Sacrificing Agility
Supporting 100 Scrum teams translating innovative ideas into cutting-edge software presents a unique challenge. Here's what our DevOps team needs to juggle:
- Atlassian Tech Stack: Efficiently managing the applications and environments supporting Jira boards, Confluence wikis, Bitbucket repositories, Bamboo build jobs & TestRail for seamless project planning, collaboration, version control & CI/CD.
- Static Code Analysis: Integrating SonarQube to identify code vulnerabilities and maintain high-quality software.
- Open-Source Security: Utilising BlackDuck to scan dependencies for security risks and ensure compliance with industry standards.
- Test Case Management: Ensuring efficient test case creation, execution, and management using TestRail to guarantee comprehensive software quality.
- Binary Repository Management: Leveraging Artifactory to securely store, manage, and distribute software artefacts like libraries and binaries.
- Support Requests: Addressing multiple queries daily and resolving issues related to the above tools and workflows to keep development teams on track.
- Automation Deployment: Implementing automation solutions to streamline repetitive tasks and free up human resources for higher-level activities.
The Lean and Agile Approach
Here's how our DevOps team can overcome these challenges by embracing an agile methodology:
- Standardisation and Centralisation: Define standardised configurations and best practices for the Atlassian suite, SonarQube, BlackDuck, TestRail and Artifactory. This ensures consistency across projects and reduces troubleshooting time.
- Self-Service Resources: Establish comprehensive documentation, tutorials, and FAQs on the chosen tools. Empower teams to find answers and troubleshoot basic issues independently.
- Knowledge Sharing and Collaboration: Foster a culture of knowledge sharing within the organisation. Organise workshops, KT sessions, or an internal knowledge base to equip teams with the skills they need.
- Shift-Left Security: Integrate SonarQube and BlackDuck early in the development process to identify and address security issues and vulnerabilities as early as possible.
- Infrastructure as Code (IaC): Utilise IaC tools like Terraform or Ansible to automate infrastructure provisioning and configuration for the SDLC tools. This reduces manual effort and ensures consistency across deployments.
- Focus on Automation: Prioritise automating repetitive tasks like user provisioning in all applications, security scans in BlackDuck, and artefact deployments in Artifactory. This frees up valuable time for teams to focus on high-impact tasks.
Tools and Technologies for Success
Here are some specific tools and technologies that empower our DevOps team:
- Workflow Management Tools: Utilise tools like Jira Service Desk & Confluence to manage and track support requests efficiently.
- Configuration Management Tools: Leverage tools like Ansible to automate infrastructure and configuration management for the SDLC tools & build agents.
- Continuous Integration/Continuous Delivery (CI/CD) Pipelines: Implement automated pipelines to streamline code building, testing, deployment, and security scanning throughout the development lifecycle.
- Monitoring and Alerting Tools: Utilise tools like Prometheus or Grafana to monitor the health and performance of the SDLC tools & build pipelines, proactively identifying and resolving potential issues.
Building a Culture of Ownership
While automation is crucial, it's equally important to foster a culture of ownership among the Scrum teams. This can be achieved by:
- Empowering Teams: Provide regular training and support to help teams understand and utilise the SDLC tools effectively.
- Incentivise Self-Sufficiency: Encourage teams to take ownership of their development process and utilise self-service resources and automation tools.
- Promote Collaboration: Foster open communication between the lean DevOps team and the Scrum teams. Encourage feedback to continuously improve the SDLC processes. We hold monthly sync sessions with each of our Agile Release Trains to gather insights into their goals and objectives and align.
Conclusion: Scaling Efficiency for Success
By adopting a lean and agile approach, our DevOps team can effectively support thousands of engineers, even with a team of just 15 talented people. Standardising workflows, automating tasks, and fostering a culture of self-sufficiency are key to maximising efficiency. Through continuous improvement and collaboration, our DevOps team plays a pivotal role in ensuring the smooth delivery of high-quality software for the next generation of Dyson machines.
Remember: This framework is just the beginning. Continuously assess the organisation's needs, adapt strategies, and leverage new technologies to stay ahead of the curve. By embracing a culture of learning and innovation, the DevOps team can become a driving force for success within the software development organisation & wider engineering teams.
Sounds like an exciting and productive time for collaboration! Keep up the great work!