search menu icon-carat-right cmu-wordmark

Posts by C. Aaron Cois

DevOps Case Study: Netflix and the Chaos Monkey

DevOps Case Study: Netflix and the Chaos Monkey

• Blog
C. Aaron Cois

DevOps can be succinctly defined as a mindset of molding your process and organizational structures to promote business value software quality attributes most important to your organization continuous improvement As I have discussed in previous posts on DevOps at Amazon and software quality in DevOps, while DevOps is often approached through practices such as Agile development, automation, and continuous delivery, the spirit of DevOps can be applied in many ways. In this blog post, I...

Read More
Continuous Integration in DevOps

Continuous Integration in DevOps

• Blog
C. Aaron Cois

When Agile software development models were first envisioned, a core tenet was to iterate more quickly on software changes and determine the correct path via exploration--essentially, striving to "fail fast" and iterate to correctness as a fundamental project goal. The reason for this process was a belief that developers lacked the necessary information to correctly define long-term project requirements at the onset of a project, due to an inadequate understanding of the customer and an...

Read More
DevOps Case Study: Amazon AWS

DevOps Case Study: Amazon AWS

• Blog
C. Aaron Cois

Regular readers of this blog will recognize a recurring theme in this series: DevOps is fundamentally about reinforcing desired quality attributes through carefully constructed organizational process, communication, and workflow. When teaching software engineering to graduate students in Carnegie Mellon University's Heinz College, I often spend time discussing well known tech companies and their techniques for managing software engineering and sustainment. These discussions serve as valuable real-world examples for software engineering approaches and associated outcomes, and...

Read More
Continuous Integration in DevOps

Continuous Integration in DevOps

• Blog
C. Aaron Cois

When Agile software development models were first envisioned, a core tenet was to iterate more quickly on software changes and determine the correct path via exploration--essentially, striving to "fail fast" and iterate to correctness as a fundamental project goal. The reason for this process was a belief that developers lacked the necessary information to correctly define long-term project requirements at the onset of a project, due to an inadequate understanding of the customer and an...

Read More
DevOps and Your Organization: Where to Begin

DevOps and Your Organization: Where to Begin

• Blog
C. Aaron Cois

On the surface, DevOps sounds great. Automation, collaboration, efficiency--all things you want for your team and organization. But where do you begin? DevOps promises high return on investment in exchange for a significant shift in culture, process, and technology. Substantially changing any one of those things in an established organization can feel like a superhuman feat. So, how can you start your organization on the path to DevOps without compromising your existing business goals and...

Read More
DevOps and Agile

DevOps and Agile

• Blog
C. Aaron Cois

Melvin Conway, an eminent computer scientist and programmer, created Conway's Law, which states: Organizations that design systems are constrained to produce designs which are copies of the communication structures of these organizations. Thus, a company with frontend, backend, and database teams might lean heavily towards three-tier architectures. The structure of the application developed will be determined, in large part, by the communication structure of the organization developing it. In short, form is a product of...

Read More
DevOps Enhances Software Quality

DevOps Enhances Software Quality

• Blog
C. Aaron Cois

A DevOps approach must be specifically tailored to an organization, team, and project to reflect the business needs of the organization and the goals of the project. Software developers focus on topics such as programming, architecture, and implementation of product features. The operations team, conversely, focuses on hosting, deployment, and system sustainment. All professionals naturally consider their area of expertise first and foremost when discussing a topic. For example, when discussing a new feature a...

Read More
A New Weekly Blog Series to Help Organizations Adopt & Implement DevOps

A New Weekly Blog Series to Help Organizations Adopt & Implement DevOps

• Blog
C. Aaron Cois

DevOps is a software development approach that brings development and operations staff (IT) together. The approach unites previously siloed organizations that tend to cooperate only when their interests converge, resulting in an inefficient and expensive struggle to release a product. DevOps is exactly what the founders of the Agile Manifesto envisioned: a nimble, streamlined process for developing and deploying software while continuously integrating feedback and new requirements. Since 2011, the number of organizations adopting DevOps...

Read More
A Generalized Model for Automated DevOps

A Generalized Model for Automated DevOps

• Blog
C. Aaron Cois

To maintain a competitive edge, software organizations should be early adopters of innovation. To achieve this edge, organizations from Flickr and IBM to small tech startups are increasingly adopting an environment of deep collaboration between development and operations (DevOps) teams and technologies, which historically have been two disjointed groups responsible for information technology development. "The value of DevOps can be illustrated as an innovation and delivery lifecycle, with a continuous feedback loop to learn and...

Read More
An Introduction to DevOps

An Introduction to DevOps

• Blog
C. Aaron Cois

At Flickr, the video- and photo-sharing website, the live software platform is updated at least 10 times a day. Flickr accomplishes this through an automated testing cycle that includes comprehensive unit testing and integration testing at all levels of the software stack in a realistic staging environment. If the code passes, it is then tagged, released, built, and pushed into production....

Read More

Contact the Author

C. Aaron Cois