Opreto Blog

Metrics as Beacons, Not Scorecards: My Take on Software Metrics

Metrics as Beacons, Not Scorecards: My Take on Software Metrics

1 minute read

Metrics in software development are like fire - handy but dangerous if not handled correctly. Let’s get into a topic that deserves a brighter spotlight: the Hawthorne Effect. This phenomenon describes how people change their behavior when they know they’re being observed. Knowing that metrics like sprint velocity, build frequency, test coverage, or codebase contributions are being scrutinized can shift the team’s focus from delivering value to gaming numbers. Why is the Hawthorne Effect so critical in modern software development? Imagine a development team keenly aware that sprint velocity is being monitored as a performance indicator. The team might be tempted to inflate story points or cut corners to complete tasks faster. Similarly, focusing on build frequency could lead to more frequent but less meaningful builds. And let’s not even get into how aiming for high test coverage could result in poorly designed tests that tick a box but don’t enhance code quality. Joel Spolsky warne...

DevOps for Robotics

DevOps for Robotics

6 minute read

DevOps, a set of practices designed to automate and integrate the processes between software development and IT operations, has transformed how we deliver cloud and web applications over the past decade. Although the language used to illustrate these practices in books and courses is rather particular to that technical domain, the principles can apply more broadly. The world of robotics—specifically, mobile robots like self-driving cars and autonomous mobile robots (AMRs)—is a domain the usual language of DevOps doesn’t immediately conjure, but where its concepts can nonetheless flourish. I worked as a research engineer and software developer in robotics through most of the history of the DevOps movement, first in self-driving cars and then in AMRs. As software developers aware of these developments, my colleagues and I were eager to apply DevOps to our field. It has consistently been a popular topic at ROSCon. As far back as 2014, researchers coined the term RobOps to refer to at ...

The Remote Agile Playbook: Tools for a Dispersed Team

The Remote Agile Playbook: Tools for a Dispersed Team

2 minute read

Having a robust tech stack is crucial for remote Agile teams. At Opreto, we’ve meticulously assembled a set of tools designed to foster productivity and enhance our Agile methodologies. We kick off our sprints with Parabol, a user-friendly platform tailored for sprint planning and retrospectives. The beauty of Parabol lies in its seamless integration with Jira. As our central hub for issue tracking and sprint management, Jira excels at aligning our team around critical tasks and objectives. These two tools work hand-in-hand to provide a cohesive planning and tracking environment. Google Workspace serves as our comprehensive solution for document management and more. We extensively use Google Docs for collaborative editing and Google Sheets for data analysis. Of course, Gmail remains an integral part of our communication framework, especially for external correspondence. The real-time collaboration features across these Google Workspace tools make them a natural extension of our pl...

Content Addressing: Marvels & Magic

Content Addressing: Marvels & Magic

4 minute read

The technology of Content Addressing is marvellous. It is, ex post facto, a simple and powerful concept, demonstrably elegant and the basis for many of the most interesting and powerful technologies of the past two decades. I have already written about Why I love the InterPlanetary File System, and touched on Content Addressing in my post about Installing and Running an IPFS node, but it is constantly remarkable to me that this approach underpins blockchain networks like Bitcoin, version control systems like Git, and file distribution networks like BitTorrent as well. Content Addressing has changed the way we interact with and share key data, but I don’t think it gets the recognition it deserves, as a seminal building material of the modern Internet. Luckily, there is one surefire way in 2023 to communicate just how cool something is - describing it in terms of a Dungeons & Dragons tabletop roleplaying game! Let’s imagine each of my favorite four modern software technologies,...

The Scaling Paradox

The Scaling Paradox

7 minute read

Companies like Google, X (Twitter), Spotify, and Atlassian have created very popular and brilliant product lines, and often embody Agile, DevOps, and software architecture best practices. Yet, the quality of their products has witnessed noticeable erosion. It’s called the Scaling Paradox, and a large degree of it is an unavoidable byproduct of scale and success, but some organizations handle it much better than others. In this post, I’ll discuss my barometer for software quality and briefly analyze companies that are failing and others that are succeeding at building good software. The Quality Barometer The Software Quality Barometer is fundamentally anchored in a feedback-driven approach, with customer sentiment as its core indicator. At its core, this barometer is not just a set of quantitative metrics; it’s a dynamic, adaptive framework that prioritizes understanding user needs and frustrations. From a user experience standpoint, the barometer mandates a clean, simple, and ef...

Solve It In Software

Solve It In Software

3 minute read

The philosopher Bill Rapaport identifies four great insights of computer science, culminating with the Church-Turing thesis, which says that any real-world computation can be translated into an equivalent Turing machine program. The idea of universal hardware is incredibly powerful. It substantially decouples the work of building computers, and of iterating on their efficiency, from the work of doing computations. Once the computer is built, provided it is fast enough, whatever your problem is, we can solve it in software. In her notes on Charles Babbage’s Analytical Engine, Ada Lovelace famously saw beyond number crunching and imagined computers doing all sorts of things for people, provided the right data representations and algorithms. Of course, this has turned out to overwhelmingly be the rule: the vast majority of what computers do today is difficult to mentally map back onto operations in the ALU. I have understood the machine down to its semiconductor physics, and yet even ...

Building Trust in Remote Agile Teams: Best Practices from Opreto

Building Trust in Remote Agile Teams: Best Practices from Opreto

4 minute read

The heartbeat of an Agile team is its people, and trust is the rhythm that binds them. It isn’t just about believing in each other’s capabilities but about fostering a shared vision and mutual respect. At Opreto, we’ve recognized that trust is the bedrock of every successful Agile team. Whether our teams work in person or are separated by thousands of kilometers, this trust remains pivotal. Through our journey, we’ve discovered practices that nurture this bond, ensuring cohesion and drive, regardless of distance. We’re excited to share the methods that have solidified trust within our teams, leading to consistent excellence. Trust isn’t merely a byproduct in the Agile framework—it’s foundational. The very principles and values that underpin Agile emphasize transparency, respect, and collaboration. Trust is the channel that brings these principles to life, influencing every interaction, decision, and outcome. When trust is present, teams are empowered to perform at their peak, leadi...

Agile Software Development is a Horse

Agile Software Development is a Horse

8 minute read

As part of the struggle of being the founding partner of a new company in the 2020s, there is the everpresent looming question of how to market yourself. This is true both of yourself as an individual - as an executive you should embody and represent at least some slice of the value of my company’s meta on LinkedIn and the whole shebang; and you need to know how to position your company in order to attract new clients and feed yourself reliably over the long term. The sales must flow. We have a special marketing problem at Opreto that we share with any agile software development agency trying to work in the agile way: the customer’s expectations for what they are purchasing are rarely aligned with the way we work, and we often need to communicate a paradigm change before our value becomes truly apparent. In order for us to be ultimately salable, we must bring them somehow completely onside before working together, changing hearts and minds as part of a larger sales process. In orde...

The confluence of UX and DX for API Design

The confluence of UX and DX for API Design

7 minute read

Do you know what happens when a group of people connect to a Chromecast device through Spotify? Nobody knows. The outcome is evenly distributed between wiping your queue, playing something random from your device, connecting only a subset of the group to the device, moving a random group member’s queue onto your device, or establishing a group connection as expected. It’s a big User Experience (UX) problem because it breaks the Principle Of Least Astonishment (POLA), among other things. In fact, I’ve taken the liberty to mock up a revamped Spotify user interface for Chromecast group sessions, free of charge: The new UI does nothing to fix the broken functionality but improves the UX by making it clear to the user that anything could happen if any UI element is interacted with once the session begins. It also makes it clear that the connection may or may not be established at all. You’ll sometimes even hear the familiar “ding” on the target device, and the app will tell you it’s ...

Software Bloat: The Red Queen's Race

Software Bloat: The Red Queen’s Race

6 minute read

For decades, computers have been growing in power at a meteoric pace, and the army of programmers writing software for them is now twenty-eight million strong. So why does it feel like the applications we use every day—not even the brand new, bleeding-edge stuff, just basic things we’ve had forever, like word processors and e-mail clients—are slower and clunkier than ever? “Well, in our country,” said Alice, still panting a little, “you’d generally get to somewhere else—if you run very fast for a long time, as we’ve been doing.” “A slow sort of country!” said the Queen. “Now, here, you see, it takes all the running you can do, to keep in the same place. If you want to get somewhere else, you must run at least twice as fast as that!” By 1987, the distinction between microcomputers and their larger cousins was beginning to blur, as the micros became increasingly capable. Geoffrey Welsh opined in the Toronto PET Users Group newsletter that the line could be drawn at the new ge...