0% found this document useful (0 votes)
19 views3 pages

Understanding the Silo’d Approach in DevOps

The document discusses the 'Silo’d' approach to software development, highlighting its isolation of teams and the resulting communication gaps, while noting that Product Owners and Business Analysts can mitigate some issues. It emphasizes the need for a DevOps approach to improve collaboration between development and operations, streamline deployment processes, and enhance software delivery. Additionally, it outlines the development-delivery-deployment pipeline phases, tools for implementing DevOps, and the importance of integrating Build Engineers into the Scrum process.

Uploaded by

nirthisingh58
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
19 views3 pages

Understanding the Silo’d Approach in DevOps

The document discusses the 'Silo’d' approach to software development, highlighting its isolation of teams and the resulting communication gaps, while noting that Product Owners and Business Analysts can mitigate some issues. It emphasizes the need for a DevOps approach to improve collaboration between development and operations, streamline deployment processes, and enhance software delivery. Additionally, it outlines the development-delivery-deployment pipeline phases, tools for implementing DevOps, and the importance of integrating Build Engineers into the Scrum process.

Uploaded by

nirthisingh58
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

SOFTWARE ENGINEERING TUTORIAL 3

1. Explain the “Silo’d” approach to software development


The “Silo’d” approach refers to a traditional software development structure where distinct
teams (Business, Development, QA, and Operations) work in isolation. Each team functions
independently, leading to a lack of communication and collaboration between them.

2. Why is the “Silo’d” effect not so detrimental to the software development process?
Although the silo approach has flaws, it's not entirely harmful. Product Owners (POs) and
Business Analysts (BAs) help bridge the gap between Business and Development, and
developers often collaborate closely with testers, sometimes even sharing responsibilities
such as unit testing.

3. What is the main adverse outcome of the “Silo’d” approach? Make a reference to the
problematic definition of “done”.
The main adverse outcome is the lack of collaboration between Development and
Operations. Software marked as “done” is often only verified internally and not truly
production-ready. It is handed over to operations late in the process, leading to deployment
issues and delays, as the development team is often no longer involved.

4. Explain the need for a DevOps approach.


DevOps is needed to eliminate the disconnect between development and operations. It
promotes continuous collaboration, automation, and early involvement of all stakeholders to
improve deployment speed, stability, and delivery of business value.

5. What is software “operations” all about? In your answer make a reference to the
complexities inherent in Build Engineering (BE).
Operations focus on deploying and maintaining software in production. Build Engineering (BE)
involves converting code into deployable formats. It is complex due to runtime dependencies,
compatibility issues, lack of documentation, and differences between development and
production environments. BE must often intervene in development to resolve these issues.

6. Provide a viable definition for the concept/strategy/principle referred to as DevOps.


DevOps is a cultural and technical approach that integrates development and operations to
enable continuous, stable, and fast delivery of software. It emphasizes collaboration,
automation, and shared responsibilities to improve quality and time-to-market.
7. Provide a detailed explanation of the phases involved in the development-delivery-
deployment pipeline by making reference to:
a. Continuous Integration (CI):
Developers frequently commit code to a shared repository. A CI server detects changes, runs
automated tests, and alerts developers to issues. This keeps the system stable and reduces
integration issues.
b. Continuous Delivery:
Software that passes CI is always in a deployable state. Although not released automatically, it
is production-ready and can be deployed with minimal effort.
c. Continuous Deployment:
Every code change that passes automated tests is immediately deployed to production. This
process is controlled to avoid overwhelming users and align with business priorities.

8. Make use of a UML sequence diagram to illustrate CI as an integral component of Scrum


software development methodology.

9. Explain the main problem with current software development methodology.


The main issue is the lack of continuity between development and operations. CI is often not
integrated into Scrum, and the term “done” usually refers to development completion rather
than production readiness. This causes deployment delays and reduces business value.

10. Provide a discussion of some of the main tools that are used to implement a DevOps
approach to software development.
Version Control: Git, Bitbucket
Build Tools: Maven, Ant
CI/CD Tools: Jenkins, GitHub Actions
Containerization: Docker
Configuration Management: Ansible, Chef, Puppet
Monitoring: Prometheus, Nagios, Datadog
Logging: ELK Stack, Logstash

11. What are the core elements of aligning database solutions with a DevOps approach?
Aligning databases with DevOps includes using version control for schemas (e.g., Liquibase),
automating migrations, including database changes in CI/CD pipelines, and testing database
integration alongside application builds.
12a. Where should the Build Engineer (BE) be incorporated into the Scrum process?
The BE should be involved from the Sprint Planning phase to understand requirements and
configure environments. The BE also plays a key role during Product Increment Reviews,
Sprint Reviews, and build/test setups, ensuring production readiness and compatibility.
12b. Discuss the main elements of the Scrum-DevOps model illustrated.
The Scrum-DevOps model integrates the BE throughout the Scrum cycle.
Key Elements:
• Sprint Planning: Involves PO, Dev Team, and BE. BE prepares environments early.
• Dev & QA: Developers commit code regularly. CI server builds and tests the code.
• Build & Test: BE ensures a production-like test environment using containerization.
• Product Increment Review: BE, QA, and stakeholders validate the system’s readiness.
• Sprint Review: Involves user feedback and BE input on performance and deployment.
Containerization:
BE uses tools like Docker to create portable, consistent environments across development,
testing, and production. Containers bundle code with dependencies, eliminating environment
conflicts and enabling "write once, run anywhere" functionality.

Common questions

Powered by AI

DevOps is a cultural and technical approach aimed at integrating development and operations teams to facilitate continuous, stable, and expedited delivery of software. The methodology emphasizes collaboration, automation of processes, and shared responsibilities, with the goal of improving software quality and decreasing time-to-market for features and updates. The fusion of these practices results in increased productivity and efficiency across the software lifecycle .

The build engineer plays a crucial role from the Sprint Planning phase to the Product Increment Review in the Scrum process. They prepare environments early to ensure compatibility and configure them for development, testing, and production using tools like Docker to create consistent environments. During the Sprint Review, the build engineer helps validate performance and deployment, ensuring production readiness. Their involvement helps align with DevOps principles by tackling build engineering complexities and reducing integration issues within Scrum .

The primary disadvantage of the "Silo’d" approach is the lack of collaboration between Development and Operations, which results in software that is marked as "done" being only internally verified and not truly production-ready. This disconnect leads to deployment issues and delays, as the development team is often no longer involved once the software is handed over to operations .

Key tools that facilitate the implementation of DevOps practices include version control systems like Git and Bitbucket, build tools like Maven and Ant, and CI/CD tools like Jenkins and GitHub Actions. Containerization platforms such as Docker play a critical role, alongside configuration management tools like Ansible, Chef, and Puppet, which automate system configurations. For monitoring and logging, tools like Prometheus, Nagios, Datadog, and the ELK Stack ensure systems are running efficiently, allowing quick identification and resolution of issues .

Failing to integrate Continuous Integration (CI) into Scrum results in a disconnect between development and operations, where „done‟ refers to the completion of development phases rather than being production-ready. This oversight leads to deployment delays and reduces business value, as it causes dependency on manual testing and prolonged cycles of bug resolution after development, ultimately disrupting a smoothly automated DevOps pipeline .

In a Scrum-DevOps model, containerization enhances environment consistency by using tools like Docker to bundle application code with all its dependencies, creating portable and uniform environments. This 'write once, run anywhere' functionality allows consistent development, testing, and production environments, reducing conflicts and discrepancies caused by differing environments. Such consistency enables smooth transitions between stages of the software lifecycle and supports continuous delivery pipelines, ensuring reliable deployment processes .

Traditional Build Engineering tasks expose complexities in software operations through activities such as converting code into deployable forms, handling runtime dependencies, compatibility issues, and resolving documentation gaps. BE faces distinct challenges when aligning development and production environments, often requiring intervention in development cycles to ensure smooth operation and deployment, showcasing the intricate nature of transitioning code bases to production-ready states .

The DevOps approach integrates development and operations by promoting continuous collaboration, automation, and early involvement of stakeholders. This methodology improves deployment speed, stability, and delivery of business value by reducing the gap between development and operations. DevOps emphasizes parallel workflows and shared responsibilities, preventing the delays and issues seen in traditional siloed practices .

Continuous Integration (CI) is significant in software development as it ensures code changes are frequently integrated into a shared repository. CI servers detect changes, execute automated tests, and notify developers of issues early, maintaining system stability and reducing integration challenges. When integrated properly, CI ensures that software remains in a deployable state throughout the development cycle, supporting fast, reliable iterations aligned with modern development methodologies like Scrum and DevOps .

Aligning database solutions with a DevOps strategy involves using version control for database schemas, automating database migrations, and incorporating database changes directly into CI/CD pipelines. It is essential to test database integration alongside application builds to detect and resolve potential issues early, ensuring a smooth and reliable merging of app and database updates and mitigating operational disruptions .

You might also like