Rootstrap Blog

DevOps — are your servers pets, cows or ants?

Evolving software platforms and their service needs can be compared to three types of animals that have increasing levels of autonomy and self-care.

The software platforms you create need a level of effort from you that changes as they become more complex. If you follow the agile process and make them increasingly automated, your platforms require less work as they evolve from one server, to many, to a server farm. To create a broad, relatable picture of what that changing effort looks like, this article compares the needs of each platform development level to three types of animals: pets, cows, and ant colonies.

Continue Reading

Build and grow cross-company knowledge

Culture is the way a company does things, its processes and values, and how it generates outcomes. It’s never easy to build, share, and promote knowledge across a medium-sized organization. That task requires leadership, rules, a strong culture, and having effective systems in place.

I’ve always been passionate about how knowledge sharing has a multiplier effect on the quality of what each person can deliver. I’ve seen junior developers, after a just few weeks, deliver higher quality work than what I could have produced years ago — even in a nonchallenging environment and even after years of experience.

Continue Reading

Ruby doesn’t scale

Why you should stop blaming a programming language for your low quality work.

I’ve heard too many times that Ruby on Rails (also called RoR) doesn’t scale. Guess what? Java doesn’t scale, .NET doesn’t scale, PHP doesn’t scale, and Node.js doesn’t scale. No programming language scales if you build terrible software with it.

In this article, I focus on Ruby, but the information is valid for almost any programming language. If you typically benchmark Ruby against other languages like Python or C++, it’s probably slower in most contexts.

The real question is not how long it takes or how many resources it consumes to run some algorithms like regex redux, binary tree searches, or reading DNA sequences.

Continue Reading

Improve data quality by using the pandas library and Python

Data quality is a broad concept with multiple dimensions. I detail that information in another introductory article. This tutorial explores a real-life example. We identify what we want to improve, create the code to achieve our goals, and wrap up with some comments about things that can happen in real-life situations. To follow along, you need a basic understanding of Python.

Python Data Analysis Library (pandas) is an open-source, BSD-licensed library that provides high-performance, easy-to-use data structures and data analysis tools for the Python programming language.

You can install pandas by entering this code in a command line: python3 -m pip install — upgrade pandas.

Continue Reading

Software development is agile, not transactional

The dangers of considering software development as a transactional and commoditized business.

In today’s world, we usually exchange money for solid, tangible goods or well-defined services. That’s how material transactions work. As an example, we might buy a t-shirt for $50. That means you give someone $50, and they immediately give you the t-shirt. Or you pay a plumber $15 and hour. Then the plumber spends some time fixing your leak. In this case, there’s a high level of certainty that the problem will be solved.

Continue Reading

Your idea is only a rounding error

Don’t kill the messenger, I’m only delivering the bad news.

As a tech services company, we see lots of clients who are in love with their idea. They try to protect it from disclosure with NDAs or by revealing only partial information about it to us. I’ll always remember when a prospective client in New York City made me manually sign an NDA before he would have breakfast with me. He didn’t trust electronic NDAs.

In court, NDAs usually aren’t worth the paper (or PDF) they’re printed on. That’s because ideas usually aren’t unique. The world is full of ideas. If you have one, about a million people probably have almost the exact same idea. About 50,000 people might have tried to execute it to some degree. About 5,000 people might have made an organized effort at developing it. And about 300 or 400 people might already have some results from a variation of your idea. It’s hard to prove in court that someone stole your idea if many people already use it.

Continue Reading

Data Visualization and The Truthful Art

An amazing book about data visualization that I can’t recommend enough is The Truthful Art by Alberto Cairo.

In The Truthful Art, Cairo explains the principles of good data visualization. He describes five qualities that should be your foundation when you work with data visualization: truthful, functional, beautiful, insightful, and enlightening. Cairo also gives some great examples of biased and dishonest visualization.

Before I dive into the “Five Qualities of Great Visualizations,” there’s another related concept that I want to cover: data-ink ratio, introduced by Edward Tufte in The Visual Display of Quantitative Information.

Continue Reading

Code audits

An in-depth analysis of your system’s health.

For many projects, clients hire us to only run code audits. In other cases, we inherit legacy code, and going through a code audit is a requirement for working with us.

With time and repeated experience, we refined and strategized our audit process. It’s now a distinct work product that we offer to clients on its own.

As said, we often get projects that were created by other teams — sometimes in-house techs and sometimes offshore providers. In these cases, clients ask us to just take over the work or to only fix the problems. But we don’t work like that.

Continue Reading

The Value Pyramid

A mental framework to identify at which level your organization is generating value to your clients.

The value pyramid is based on the business value chain developed by Michael Porter in 1985. Porter’s detailed version charted the actions and capabilities of a business provides in steps that progress from basic to advanced.

Our tech service pyramid shows the four main levels of the value chain specific to computer service providers: skills, processes, strategy, and vision. Your company might be positioned on any of these levels, depending on your capabilities and your customers’ requirements.

Where value is delivered
Delivering value can be done at a single level or rise to include multiple levels on the pyramid. For example, your client might require the application of your skills to build a software platform as well as a process to achieve the production and integration of the software. But they might not require an advanced strategy or vision from you.

Continue Reading

Data Demystified — Data Quality

Explaining conceptually what it really means, and why it matters.

This article outlines a mental framework to organize our work around Data Quality. Referencing the well-known DIKW Pyramid, data quality is the enabler that allows us to take raw data and use it to generate information, starting from raw data.

In this piece, we’ll go over a few common scenarios, review some theory, and finally outline some advice for anyone facing this increasingly common issue.

The amount of data being generated every second is almost impossible to comprehend. Current estimates say that 294 billion emails and 65 billion WhatsApp messages are sent every single day, and all of it leaves a data trail. The world economic forum estimates that the digital universe is expected to reach 44 zettabytes by 2020. To give you an idea of what that means, take a look at the byte prefixes and remember that each one multiplies by 1000: kilo, mega, giga, tera, peta, exa, zetta.

Continue Reading
Bitnami