Category Archives: Architecture and Agile

Russ Miller on Engineering Velocity: Continuous Delivery at Netflix, Dianne Marsh, SATURN 2014 Keynote

by Russell Miller
Vice President of Technology Services at Impulse.com
Co-host of Architectural Concepts podcast

At SATURN 2014 there were a number of excellent sessions on DevOps and Continuous Delivery; one of those was Dianne Marsh’s keynote entitled, “Engineering Velocity: Continuous Delivery at Netflix.” Dianne is the director of engineering tools at Netflix, a company that has led the way in terms of continuous delivery. Dianne’s main objective for the talk was to share details and philosophy from Netflix that the audience could consider for application in their organizations as a means to improve their velocity. She did a great job achieving that objective.

Continue reading

Link Roundup, July 23, 2014: Agile-Related

Agile-Related Links

There’s No Room for Deadlines: Allen Holub at Dr. Dobbs explains why a “culture of deadlines” can defeat an Agile team how the Agile Manifesto principle of working at a constant pace can produce better results.

Slow Down to Speed Up – It’s All About Delivery: In this video, Matt Anderson of the Cerner Corporation recommends using Lean concepts so that Agile teams can deliver more with less effort.

The Hacker Way Meets Agile Architecture: Jason Bloomberg at DevXtra’s Agile Architecture Revolution contrasts “the Hacker Way” with The Enterprise and discusses how Agile architecture can bring them together.

What Every Company Should Know About Agile Software Development: Eric Wittman MIT Technology Review’s View from the Marketplace urges organizations that want to maintain a competitive edge to adopt agile software development practices.

SATURN 2014 DevOps and Delivery Session (notes)

Notes by Scott Shipp, edited by Tamara Marshall-Keim

Impact of Architecture on Continuous Delivery
Russell Miller, SunView Software, Inc.

First, context: This was a greenfield, from-scratch project for a nontrivial social-monitoring tool. It was also their first attempt at the native cloud. It was a pilot for a truly agile project. Go to http://livepulse.co to see a beta version.

Miller uses the term “continuous delivery” (CD) as defined in Jez Humble’s book Continuous Delivery. It leverages continuous integration, automated testing, and automated deployment. Releases are frequent, small, and predictable.

For example, take Amazon drone delivery. It eliminates waste, and customers do not have time to cancel the order. It also provides quicker feedback from the customer. So CD vs. the traditional release model is similar to drone delivery vs. freight train delivery. “This is a good metaphor for lean vs. legacy.”

Continue reading

SATURN 2014 Line-up of Tutorials

by Neil Ernst, SATURN 2014 Tutorials Chair

We have a great tutorial line-up this year that I would like to share. Since tutorials at SATURN are half-day sessions, they provide the presenters time for an in-depth exploration. I think attendees of SATURN 2014 will be particularly impressed by the breadth and depth of our program.

On Tuesday, May 6, we have five tutorials scheduled.

  • George Fairbanks, Google, and author of Just Enough Software Architecture, will cover “Architecture Hoisting” (T1), techniques for moving responsibility from the code to the architecture.
  • Stephany Bellomo and Rick Kazman, from the Software Engineering Institute, in Tutorial T2, will introduce deployability and DevOps techniques, then discuss architectural approaches and patterns to reduce build time and shorten the feedback cycle.
  • In the afternoon sessions, Len Bass, of Australia’s National IT Research Centre, will discuss the implications of DevOps on system design (T3). For example, how does moving to a continuous-deployment approach change how the architecture is designed and implemented? This makes a nice complement to the earlier tutorial from Bellomo and Kazman for those desiring a full menu of deployability fare.
  • Pradyumn Sharma (@PradyumnSharma) of Pragati Software will cover NoSQL databases (T4). If you’ve been hearing this term for a few years now and need to really get a good sense for the landscape, Pradyumn will cover the fundamentals for you, basing the session on real-world examples.
  • Finally on Tuesday, Eltjo Poort (@eltjopoort) of CGI will cover the CGI Risk and Cost-Driven Architecture approach (RCDA) in T5. He will discuss how CGI has used RCDA to implement lean and agile architectures in their global software business. RCDA is a recognized architecture method in The Open Group’s architect certification program.

Continue reading

Joe Justice, Founder of Team WIKISPEED, to keynote at SATURN 2014

Joe Justice, of Scrum Inc., and Team Wikispeed, which built a 100+ mpg car in less than three months for the X-Prize using Agile, Lean, and Scrum, will discuss this project in a keynote address at SATURN 2014 on Wednesday, May 7.

Joe JusticeJoe is a consultant at Scrum, Inc., TEDx speaker, and coach for agile hardware and manufacturing teams around the world. He is the founder of Team WIKISPEED, an all Scrum, volunteer-based, green automotive-prototyping company, with a goal to change the world for the better. Justice consults and coaches teams and companies on implementing Scrum at all levels of their organization, in software and physical manufacturing.

UPDATE: Joe provided us with the title and abstract for his talk.

Title: For Maximum Awesome

Continue reading

The Importance of Software Architecture in Big Data Systems

Many types of software systems, including big data applications, lend them themselves to highly incremental and iterative development approaches. In essence, system requirements are addressed in small batches, enabling the delivery of functional releases of the system at the end of every increment, typically once a month. The advantages of this approach are many and varied. Perhaps foremost is the fact that it constantly forces the validation of requirements and designs before too much progress is made in inappropriate directions. Ambiguity and change in requirements, as well as uncertainty in design approaches, can be rapidly explored through working software systems, not simply models and documents. Necessary modifications can be carried out efficiently and cost-effectively through refactoring before code becomes too “baked” and complex to easily change. This blog post at the SEI Blog by Ian Gorton of the SEI, the second in a series addressing the software engineering challenges of big data, explores how the nature of building highly scalable, long-lived big data applications influences iterative and incremental design approaches.

Using Scenario-Based Architecture Analysis to Inform Code Quality Metrics

As the pace of software delivery increases, organizations need guidance on how to deliver high-quality software rapidly, while simultaneously meeting demands related to time to market, cost, productivity, and quality. In practice, demands for adding new features or fixing defects often take priority. However, when software developers are guided solely by project-management measures, such as progress on requirements and defect counts, they ignore the impact of architectural dependencies, which can impede the progress of a project if not properly managed.

This blog post at the SEI blog by Rod Nord and Ipek Ozkaya of the SEI describes a first step toward an approach they developed that aims to use qualitative architectural measures to better inform quantitative code-quality metrics.

Best of SATURN: A Curated Selection from Jeromy Carriere (Google)

Jeromy Carriere of Google, member of the SATURN 2014 Program Committee and previously featured speaker at SATURN, dug through presentations from previous years at SATURN and put together a list of some he found valuable:

Invited talk: Games Software Architects Play (Phillippe Kruchten)
“The life of a software architect is a long (and sometimes painful) succession of suboptimal decisions made partially in the dark.” Phillippe takes us on a tour of some of the ways that we make bad decisions: cognitive biases, reasoning fallacies, political games. Sadly, each example resonates with me, and not just because I’ve seen them in other people. Architects have to rely on intuition, but we also need to know when and how it fails us.

Continue reading

Webinar: Architecture Practices for Agile at Scale: Managing Technical Debt to Improve System Quality

Architecture Practices for Agile at Scale: Strategically Managing Technical Debt to Improve System Quality

The Cyber Security and Information Systems Information Analysis Center (CSIAC) invites you to attend this webinar. This event requires registration.

Presenter: Robert L. Nord
Date and Time: Wednesday, December 11th, 2013; 12-1 pm EDT
Registration Required

Practices designed to expedite system delivery, such as prototyping or agile development, can paradoxically lead to unexpected rework costs that ultimately slow down later deliverables and degrade value over time, especially as the scale of the system grows. The term “technical debt” describes an aspect of this tradeoff between short-term and long-term value in the software development cycle.

Continue reading

Workshop on Managing Technical Debt at ESEIW 2013

Fifth International Workshop on Managing Technical Debt
Co-located with Empirical Software Engineering International Week (ESEIW 2013)
Baltimore, Maryland
October 9, 2013
http://www.sei.cmu.edu/community/td2013esem/

The technical debt metaphor is gaining significant traction in the development community as a way to understand and communicate the issues surrounding the delivery of increasingly complex software-reliant systems that demands better ways to manage the long-term effects of short-term expedients. However,

“…there is a plethora of attention-grabbing pronouncements in cyberspace that have not been evaluated before they were published, often reflecting the authors’ guesses and experience on the subject of Technical Debt.” – Spinola et al. 2013

Continue reading