Defining Rugged


(of ground or terrain): Having a broken, rocky, uneven surface.
“That is arugged mountain face.”

Synonyms: rough, bumpy, stony, ragged, craggy, uneven, chiseled.

(of a manufactured object i.e. a machine): Strongly made and capable of withstanding extra rough use or handling.
“Military gear is built to be rugged in all types of environments.”

Synonyms: strong, tough, sturdy, durable, military grade.

(of toughness and determination): Able to withstand and recover from physical and mental stress.
“Professional athletes have to be rugged and resilient in mind and body.”

Synonyms: tough, exacting, rigorous, onerous, hardened.

(of computer software): Secure, Reliable and Maintainable.
“Software has to be rugged to survive and recover from malicious attacks.”

Synonyms: durable, defensive, self-healing, predictive

Rugged rock climbing

Why Rugged?

Today’s modern digital products are becoming much more advanced. Hackers are advancing, too. Organized crime is working continually to break into secure systems. That’s why software has to be rugged – able to withstand the security issues that continually arise as hackers and software become more sophisticated. Just as military forces require ruggedized equipment, software developers have to be continually focused on ruggedizing their applications. Bad software is terribly wasteful! It wastes both time and money, and can permit devastating malicious attacks.

Being rugged is the fabric of our culture and understanding at CabForward℠. We continue to train our developers to write quality and security into their code as they write it, instead of as thinking of security/ruggedness as a retroactive practice. This is accomplished by writing more quality code that has been tested for all of the attributes of ruggedness:

Rugged Software

Rugged Security

Secure: Able to secure data and transactions from unauthorized access.
Defensible: Able to defend oneself; aware of and able to mitigate risks and vulnerabilities.
Sensible: Able to detect and report malicious activity; responds with prudence and measured force.

Rugged Reliability

Reliable: Able to perform in all circumstances.
Agile: Able to adjust quickly and easily.
Durable: Able to withstand the test of time.
Available: Able to respond to all requests without interruption or delay; scalable.
Recoverable: Able to recover from internal failure or attack; self-healing.
Survivable: Able to survive and perform critical operations when external dependencies fail.

Rugged Maintainability

Maintainable: Able to be maintained easily and at a low cost.
Predictable: Able to be easily understood; exudes predictable behavior; follows convention.
Portable: Able to be migrated between environments with little effort and configuration.
Observable: Able to be inspected and evaluated; has a dashboard.
Controllable: Able to be managed and configured without requiring an update; has settings.

Our Rugged Value Proposition

Rugged is NOT a technology, process model, or organizational structure. It’s not even a noun. But, Rugged describes the resolve to stay ahead of threats over time. Rugged organizations create secure code as a byproduct of their culture. We don’t view Rugged as a burden or cost. In fact, this approach will yield time and money savings, while reducing risk.

In practice, we do this by building out our development operations (DevOps) to support software that is automatically documented, automatically desk tested each time our developers save to disk, automatically compiled and tested through continuous integration builds at code commit. We take the build, intentionally break it, fix it, and re-build it and are actively seeking ways to help us harden our finished product. And, still, we can make the site attractive and functional. Read more about how we make websites and mobile apps Beautiful and Rugged.

We are active contributors to the ongoing discussion to define and refine how to be Rugged as developers and as organizations. Click here for a listing of podcasts by the Society of Rugged Developers, where you can join the discussion.

Call us at 512/693-4142 for more insight, or click the button below to request more information.