Opreto Blog

Cognitive Biases in Agile Estimations and How to Avoid Them

Cognitive Biases in Agile Estimations and How to Avoid Them

7 minute read

Cognitive biases, often unconscious influences on human judgment and decision-making, can significantly distort the accuracy of Agile estimations. These biases, like invisible bugs in our mental software, can lead to errors that affect the outcomes of project planning. Whether it’s anchoring to the first piece of information heard or overly optimistic predictions about project timelines, they can subtly undermine the efficiency of even the most experienced Agile teams. In Agile software development, estimation is a critical process that determines project timelines, resource allocation, and, ultimately, the success of a project. The accuracy of these estimations is important but frequently jeopardized by the human propensity to cognitive biases. As teams increasingly implement “Sprint Poker,” a blind team-based estimation game for gauging task complexity, recognizing and addressing these biases becomes crucial. Let’s move from theory to practice and see how these biases play out d...

Agile Software is an Immortal Jellyfish

Agile Software is an Immortal Jellyfish

4 minute read

Anyone who has ever purchased software is aware that it must be updated occasionally to a new release, with new features and security and performance updates. And anyone with a huge reliance on the work facilitated by that software is acquainted with reading changelogs to stay current with changes that have been made, as the changes may often impact the end user and how they use the tool. Software should never stop moving or be allowed to become static. The moment a codebase stops changing, it becomes vulnerable to software rot; a gradual decline in responsivity and updates with respect to the changing environment in which it resides. As the digital world becomes more complicated, and attack vectors become more nuanced and intricate, software needs to stay abreast of changes or it falls behind and develops new vulnerabilities. This is easily understood from a naturalistic viewpoint as being analogous to rot, although it is in fact standing still and not changing at the same rate as ...

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...