OPRETO BLOG

Metrics & How To Measure Success in Agile Software Team Delivery

Metrics & How To Measure Success in Agile Software Team Delivery

4 minute read

At Opreto, client success is our absolute priority. We optimize our teams by focusing on five critical goals, with client-selected Key Performance Indicators topping the list. In addition to the client’s chosen metrics we also measure Cycle Time, Planned-to-Done Ratio, Escaped Defect Rate, and the Happiness Metric. We base our overall approach on the power of partnership. Measuring the five critical goals is vital to fostering successful client collaboration. This close relationship is the cornerstone of our strategy, with each goal designed to strengthen that bond with the client, reinforce confidence in our work, and help us to work in sync. Let’s explore these metrics in the following sections so we can see how our hand-in-hand approach allows us to adapt swiftly to any changes in the client’s needs, and keeps our agile teams in sync with their evolving objectives. Key Performance Indicators KPIs are the compass guiding our agile teams to reach clients’ goals, and it establis...

Why are modern software applications so terrible?

Why are modern software applications so terrible?

2 minute read

A lot of modern software is really quite bad. You know what I’m talking about. It’s most true of the software you interface with directly as a human—applications. Modern applications are buggy, and lock up or crash all the time; the time since your last incident can probably be measured in hours. They are also enormous and slow. The hardware they run on is dramatically more powerful than it was a quarter century ago, yet for the most part, we see apps consuming similar percentages of CPU cycles and RAM, and feeling more or less as sluggish as ever. How did we get here? Two things sell software to Jane Q. Public: being available now, and having all the features she needs. Stability and efficiency, arguably at least as vital to a good user experience, are simply lower priorities in the slightly irrational mind of the consumer. The industry focuses accordingly. To get to market faster, we lower the bar for what constitutes a minimum viable product to the point where many products a...

Pair Programming forced me out of my comfort zone

Pair Programming forced me out of my comfort zone

2 minute read

As a software architect and developer, I’ve always enjoyed working independently. There’s something satisfying about diving deep into lines of code, tackling complex problems on my own, and working uninterrupted for hours on end. So when my boss suggested trying pair programming, I was immediately skeptical. The Struggle is Real The idea of spending all day working closely with someone else, sharing a (virtual) keyboard, and communicating constantly seemed like a nightmare to my introverted self. But my boss was convinced that it would help improve code quality, catch bugs earlier, and foster better collaboration among our team. So, we gave it a try. The first few sessions were tough. I found it hard to make small talk with my partner, and the shared keyboard made me feel anxious and exposed. I was constantly worried about making mistakes in front of someone else and second-guessing my decisions. At times, I found myself longing for my quiet solitude so I could focus without any ...

AI-assisted web design is good for everyone

AI-assisted web design is good for everyone

9 minute read

I have some good news for artists. There are some interesting and genuinely useful things that Generative AI art can do for a website developer today, and they will prove to be deeply empowering for artists. This may seem countintertuitive, but I promise there is a light at the end of the tunnel. Many of us have lately been too focused on the immediate threat posed by generative AIs to their livelihood, but this time of rapid change may be one of the best things - economically - that has ever happened to the artist caste (and perhaps for everyone else as well). Let me explain how. I’ve been exploring the liminal dreamscape realm of Generative AI models, checking their fit, observing the war. Some of the things I’ve found have been deeply moving, some inspiring, some terrifying or disturbing. This is part of a series about my journey and the best practices (and anti-practices) I find for these new tools. Any sphere of industry that leans on highly structured generated text as the m...

Recapturing Water Cooler Moments, Online

Recapturing Water Cooler Moments, Online

2 minute read

For just over a decade, I’ve been working entirely remotely. Some key personal benefits have been the lack of an hour-long drive to the office and back, plenty of cost savings due to that lack of a commute, reduced distractions, and an improved work-life balance. I’ve worked with colleagues and clients from across the world, exposing me to diverse perspectives and opportunities for professional growth. For the majority of that time, one thing has been missing in implementing remote work: those key watercooler moments that spark creative ideas and solutions to problems. But no longer. Rubber duck debugging is excellent, but bouncing ideas off a colleague without needing to schedule a meeting can be invaluable. Plenty of teams do all-hands sessions, but certain personality types dominate the discussion in those meetings. Pixar’s building was famously designed with an open floor plan and common areas, such as a central atrium, a cafe, and a screening room, intended to encourage chanc...

AI Artists Have No Idea What a Head Is, or How Arms or Hands Work

AI Artists Have No Idea What a Head Is, or How Arms or Hands Work

4 minute read

As marvelous as some of the images generated by the current crop of Stable Diffusion Generative AI models may be, there are subjects that it cannot render well. In this post, I will be visiting some of the nightmare fuel that Stable Diffusion can inadvertently produce. Specifically, I will be examining its inability to comprehend and generate bodies, heads, and hands. These are things that still need authorship by a human artist (at least for now). I’ve been exploring the liminal dreamscape realm of Generative AI models, checking their fit, observing the war. Some of the things I’ve found have been deeply moving, some inspiring, some terrifying or disturbing. This is part of a series about my journey and the best practices (and anti-practices) I find for these new tools. I asked Midjourney for a yellow snake, and it gave me this: In the generative model for Stable Diffusion, the algorithms at play are determining the pixels that live next door in a probabilistic way, having bee...

Stable Diffusion As a Tool: The New Generative Genie

Stable Diffusion As a Tool: The New Generative Genie

4 minute read

ChatGPT, Dall-e2, and Midjourney (and ilk) are having a moment. Their user growth is explosive, news coverage is fawning, mind share is off the charts. Their generated text and images are everywhere. There is no doubt that the Stable Diffusion Generative AI models that underpin these systems are a powerful tool for communication. But this efflorescence of Generative AI models trained on large datasets has also led to at least one interesting orthogonal experience as well. I refer to the special evolution of the hyper-modern and fascinating “generative genie” shared user experience in Midjourney. I’ve been exploring the liminal dreamscape realm of Generative AI models, checking their fit, observing the war. Some of the things I’ve found have been deeply moving, some inspiring, some terrifying or disturbing. This is part of a series about my journey and the best practices (and anti-practices) I find for these new tools. First, a disclosure: I love Midjourney. I am a Midjourney user ...

How to Start New Agile Software Projects: Building Healthy Teams

How to Start New Agile Software Projects: Building Healthy Teams

6 minute read

Building a good new agile team for a software development project requires more than just finding the right skills for a cross-functional team; it also needs governance, security, and an immune response cycle to maintain the wellness of team dynamics over time. What are the vulnerabilities for working teams, and how should you structure agile teams from the outset to promote and persist their healthy operation, and allow them to thrive over time? This post is part of a series. Check out the other posts in How to Start New Agile Software Projects. The Architect role At Opreto, we include an architect position in every team. The architect role has evolved over the past decades, from delivering front-loaded technical design, systems integration and initiative planning to one that also focuses on empowering teams, strengthening communication, and facilitating healthy teamwork. Team dynamics Software Architects lead the way when it comes to establishing communication guidelines and ...

How to Start New Agile Software Projects: Building Good Teams

How to Start New Agile Software Projects: Building Good Teams

5 minute read

The software team; that diverse mix of personalities, knowledge, skills, and experiences, is at the center of every project. It’s the stuff that makes your project tick. It’s more important than a great requirements document, more important than a perfect software architecture, and more important than funding. Well… maybe not that last one, but without an effective team, you probably won’t be able to deliver on the vision that got you the funding in the first place. This post is part of a series. Check out the other posts in How to Start New Agile Software Projects. Today, we’ll explore key topics essential for building a high-performing software team, including starting points for recruiting, and creating a “whole team”. We will discuss team dynamics, and the importance of psychological safety in a post next week. It’s worth noting that building and leading high performance teams is a complex problem space with many factors that have a direct impact on the outcome. There are sev...

Should It Always Be Agile?

Should It Always Be Agile?

4 minute read

Agile methodology was largely organized as a reaction to the perceived disadvantages of the Waterfall model of project management, and the various kinds of impact (personal, professional) it had on software developers. But the landscape at the time was complicated, and the reaction has been an overreaction. Agile software development is really great, and it has become a necessary component for the industry, and we write about it a great deal here on this blog. But there is more to be said about the systems that came before, and the ways they might be blended with agile, the New Kid on the Block, to achieve even greater things. In engineering complex systems, the best designs can usually be achieved by considering and manipulating the properties of the system as a whole, rather than focusing only on smaller components and their interfaces. John Carmack gave a 2017 tech talk at UMKC with some excellent and detailed practical examples. The field studying this level of design is known ...