Opreto Blog

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

The Importance of Software Architects in Agile Development

The Importance of Software Architects in Agile Development

6 minute read

The role of the Architect in an agile delivery group is a crucial one that is often misunderstood, with its importance understated. But architecture is critical to the success of any software project, and even more so in an Agile software team, as the Architect has additional key roles there. Armed with technical expertise and the ability to provide direction, Architects ensure that projects are completed with high quality, efficiency, and the right tooling. In addition, architects manage technical risk, foster collaboration, and play a key role in driving innovation within the team and the organization. The combination of technical knowledge, leadership, and strategic thinking makes the Architect an indispensable member of any agile delivery team. In this article, we will examine the role of the Architect in greater detail, highlighting the essential responsibilities and the benefits of having one on your agile delivery team. Providing Technical Direction During an agile softwar...

When Everything is Excellent, Nothing is Excellent

When Everything is Excellent, Nothing is Excellent

5 minute read

The current crop of generative AI (ChatGPT, Dall-e 2, etc) may be a blessing for individuals, but they could prove a pestilence for our civilization in the short term. For every door they open, it seems to me they also threaten to wipe away whole towns of visual artists and copywriters. And as consumers of information, we are doomed to be overwhelmed, our attention span drowned in torrents of content. Our eyes and minds will be overfull. Our time will be drained away by too much being said too well, and sharing platforms that monopolize our attention too well. I am full of sadness for my ten year old daughter, who just discovered cartooning. It’s all she wants to do. Her room is littered with sheaves of paper covered with pirouetting sausage-limbed mannequin sketches, as she explores the dance in drawing; paper mountains of eye sketches (squinting eyes, glaring eyes, cute eyes, dragon eyes); piles of tortuously drawn hands, wrought by tiny hands and an ever growing collection of pe...

To Infinity and Beyond: The Efflorescence of SaaS

To Infinity and Beyond: The Efflorescence of SaaS

7 minute read

There are many software systems that can help your business grow and succeed; many of these have undergone capitalization and become well-known Software as a Service (SaaS) offerings, while some are open source software systems you can freely download, modify and host yourself. It is increasingly rare to commission and run software systems built to your specifications by software artisans. You might be asking yourself whether to pay the subscription costs for a SaaS product, or if you’re better off putting in some development and deployment work to host and support your own in-house systems. Well, there is a secret benefit to using SaaS solutions that makes it more appealing for nearly any use case, with one glaring exception where it makes more sense to run your own servers. All software systems cost money and time. The systems you choose to host yourself incur hosting fees, development and support costs, and often, at the small size of a boot-strapping startup, the time and energ...

Swiss Army Knives Are Agile

Swiss Army Knives Are Agile

4 minute read

Every discipline and every niche has a “Swiss Army knife of X”. Why are they so prevalent, and what makes them so valuable to engineers and software developers? In the summer of 2003, I acquired my first truly useful Swiss Army knife. I had been working my first term as an electrical engineering co-op on the floor of an automotive aluminum foundry. The facility was highly automated, particularly by foundry standards, and one of our suppliers, Güdel, one day brought branded Classic SD pocket knives in as promotional swag. My supervisor tossed one across the office to me, and it became one of a few lasting impacts he had on my life: two decades later, I still carry one with me everywhere I go (though I’m on my fourth or fifth now, thanks to encounters with airport regulations and nightclub bouncers over the years). The Classic SD is a small knife, 58 millimeters long and weighing 21 grams. It has seven tools: a blade, a screwdriver and nail file, scissors, tweezers, a toothpick, and...

How to Start New Agile Software Projects: Selecting An Architecture

How to Start New Agile Software Projects: Selecting An Architecture

3 minute read

In my last post, I described the initial phase of determining the trajectory for a greenfield softtware project. Once you have established your vision and created a roadmap, the next step is to decide how the software system is to be built. This involves finding a suitable architecture for the system and devising a macroscopic design of the different components and interactions involved. This post is part of a series. Check out the other posts in How to Start New Agile Software Projects. Identify Qualities, Constraints & Risks I usually rely on the following documents to accomplish this step: Architecture diagram In order to produce a useful architectural diagram of your solution, you need to spend some time thinking about how much architecture is actually required of the project. After all, every system has an architecture, whether it was planned or not. You could rely on a canned architecture that is tied to the infrastructure or framework you’ve decided to use, or you c...

How to Start New Agile Software Projects: Vision & Mapping

How to Start New Agile Software Projects: Vision & Mapping

3 minute read

If you’re a technical leader overseeing the development of a greenfield software project, then you know how crucial it is to get the design right. In this article and the next, we’ll explore how to approach the initial technical modeling of the system. We’ll look at some of the best practices for making critical decisions to establish an efficient development plan that will lead to maximum system quality and reliability. We’ll cover concepts such as the high-level characteristics of a system, user story maps, and what product roadmaps should look like. This post is part of a series. Check out the other posts in How to Start New Agile Software Projects. In a follow-up post later this week, we’ll also discuss how to evaluate risk and use that knowledge to plan the initial system architecture. Identify Requirements The path to an effective software solution is paved with untold perils, many of which are difficult to predict at the outset. The initial design phase allows us to iden...

Tools Startups Can Use in 2023

Tools Startups Can Use in 2023

10 minute read

Business startups face many different and complex challenges, and all of them threaten to slow down or break momentum during the challenging initial stages of business development. Luckily there are a variety of approaches, techniques, and tools available in 2023 to help you get started, bust through barriers, and break stalemates. From using services provided by others to adopting process changes that build good habits from within, here are the four biggest blockage-breakers we have used at Opreto in 2022 to keep our business moving forward. Tool 1: Adopt Opinionated Software Systems There are many software systems that can help your business grow and succeed; many of these have undergone capitalization and become well-known Software as a Service (SaaS) offerings. With comparatively small monthly costs, the subscription model used by these services offers a way to quickly deploy and test the various tools and determine their fit. Once you find one, an entire role can be augmente...