CabForward Traits

Society of Rugged Developers

We all trust software with our daily lives, finances, safety, government, communication, business, and general happiness. But, how far should that trust extend? The Society of Rugged Developers is wading into the topic of ruggedness, because when it comes to software, it needs to be so much more than just secure. It has to be ruggedly reliable and defensible against attack. Software ruggedness is going to become increasingly important to applications, and enterprise systems, in the future.

CabForward bulb 2014The Society has a podcast initiative hosted by James Wickett and Lance Vaughn, Austin software developers, to define and refine the concept of Rugged as it applies to software. In the series of podcasts, they explore application security and the various attributes of rugged. In Episode 5 they chatted with Jeff Williams, co-author of the Rugged Manifesto. Jeff explained that “Rugged” came about as a result of his interactions with Josh Corman and David Rice, all of whom were frustrated that Application Security was not improving in an organic manner, and that they wanted to make a difference in that sector.

In setting the groundwork for discussion in the podcasts, James and Lance began exploring how to clearly define “Rugged Software,” and how the Rugged concept can be applied to the Minimum Viable Product with the Rugged Manifesto in mind. DevOps is also going to be very important in the future of  ruggedness. Once the foundation has been established, and the MVP can be built ruggedly, the rugged attributes will naturally scale as the product grows in scope.

While security of the software is at the heart of the rugged discussion, there are other factors to consider. The security industry has a lot of very good, proven, rules, but they tend to be too broad; they need to be distilled down into software security principles and practices. Rugged organizations operate as cross functional teams that value collaboration, seek out threats and build processes to protect themselves. The same principles need to be applied to software in the future.

What is Rugged?

Here is how James and Lance have posited the attributes of Rugged Software:

Attributes of Rugged Software

Security Reliability Maintainability
Defensibility Availability Longevity
Sensibility Recoverability Portability
Survivability Observability
Predictability Controllability

How would you define “Rugged Software?” Any suggestions you have are very welcome. The podcast website is currently undergoing development, and it will become the location for ongoing discussion of everything rugged when launched. In the meantime, we invite your comments, suggestions, and other thoughts in the response section below.