Cliento Logo
Blog
Services
Valerie Tremblay

Valerie Tremblay

Introducing The No-Pizza Team For Startups

Cover Image for Introducing The No-Pizza Team For Startups

Computers won’t replace programmers anytime soon! Even with the recent layoffs at giants like Shopify or Netflix, a lot of positions are open for humans in tech. A quick LinkedIn search for “Software Engineer in Canada” yielded 24k results.

Phew! I may live to code another day!

Meanwhile recruiting is concerning for executives and startup founders alike. 73% of respondents to a spring 2022 survey from Quebec Technology Association (AQT) said that they struggle with attracting new talents.

The good news is, there are chances you don’t need more developers.

No matter how great the talent or efforts, some things just take time. You can’t produce a baby in one month by getting nine women pregnant. — Warren Buffett

Time-to-market is important. Today more than ever, it can be achieved with a small set of highly skilled and motivated individuals. All they require is the right combination of technology, process and culture.

A Brief History of Software Development Trends

This list summarizes the main ideologies that influence today’s engineering practices. It includes a mix of technology, process and culture shifts, three pillars that shape the way we build and deliver software.

Brief History of Software Development Trends, from Waterfall to Serverless

If you don’t know where you’ve come from, you don’t know where you’re going. — Maya Angelou

Lean comes from the manufacturing industry, more precisely from the Toyota Production System (TPS). It was invented in Japan and evolved through trial and error from 1948 to 1975.

A key notion of lean process thinking is waste removal. In Japanese it’s called “muda” and refers to the squandering of time and resources. Improving efficiency is at the heart of many movements listed above. Mary Poppendieck first applied the methodology to the creation of software in her 2003 Lean Software Development book.

It’s difficult to know which ideas will fade and which will impact our ways of doing things for years to come. But interestingly, the lean way of removing non-value-added differentiators has appeared in the very nouns that we use to describe recent concepts. For example, “no” and “less” are present in words like NoOps and Serverless.

“No, Less, Low” Guidelines

Any founder dreams about efficiency, producing value with minimum resources. When structuring, choosing technologies and architectures, remember these easy words: No, Less, Low.

The No-Pizza Team

Amazon introduced the idea of a two-pizza team. A group small enough that it can be fed with 2 pizzas. Typically, a squad would be composed of 10 developers, but given the labor shortage, we’re down to a one-pizza team of 5 people maximum.

Paying for office space in a post-pandemic world is also muda, a waste of money. People can work remotely and take care of their lunch, so let’s call this the no-pizza team.

Such a group of people share these values:

Motivation: Team members are passionate individuals that do what they love and love what they do. They are intrinsically motivated to provide results they are proud of.

Expertise: The majority of engineers are intermediate or senior. It shall be a priority to level up all players and foster a fail-safe learning environment.

Respect, Trust and Autonomy: Self-driven experts shall be trusted, respected and given full autonomy over their work. Nobody pushes them around or tells them how to do their jobs.

Serverless first

Developers make architectural and technical decisions, as long as they adhere to a simple principle: don’t reinvent the wheel.

In that matter, we expect engineers to adopt a serverless, cloud-native architecture to take advantage of existing capacities. Amazon Web Services (AWS) has 200+ services. Chances are, some will spare writing and maintaining thousands of lines of code.

Serverless also saves money thanks to a different pricing model. Instead of running servers 24/7 no matter the load, we only pay when resources are utilized.

Low Coupling

Low-coupling means that each part of a system should be as independent as possible. It makes it easier to test and deploy changes without impacting something else. It’s often paired with highly cohesive modules that have a single, well-defined purpose. Microservices and event-driven architecture helps reduce these interdependencies whilst defining fine-grained domain boundaries, as educated by domain driven design. Also, with this approach, different teams can work on separate features at the same time, thus decreasing bottlenecks in the process.

In opposition, tight coupling is often attributed to monolithic software. Deploying a whole system when only one part has changed is muda, a waste of resources. Also, maintaining a clear mental model of a bloated application is harder than with one composed of smaller pieces.

Any organization that designs a system (defined broadly) will produce a design whose structure is a copy of the organization’s communication structure. — Melvin E. Conway

NoOps (or as-low-as-possible ops!)

With traditional DevOps, Devs write applications and Ops manage infrastructure. With “NoOps” we’re getting rid of this handover, one of the 8 wastes as identified in Lean Software Development. Programmers become accountable for smooth working code in all environments, all the way to production.

With more responsibilities on their shoulders, developers need good tools to automate repetitive tasks like testing, deploying and to abstract the underlying infrastructure.

A proper pipeline (CI/CD) with automated tests is mandatory, from day one. Bugs are waste proven to be significantly more costly when found in production. Testing early and often decreases the number of defects and increases the quality of the code.

Infrastructure as Code (IaC) is the managing and provisioning of infrastructure with code instead of through manual processes. IaC tools such as AWS CDK (Cloud Development Kit) reduce the cognitive load needed by allowing engineers to use languages they master to configure infra.

Constructs are the basic building blocks of the CDK. They’re abstractions of cloud components and allow us to remove some duplication associated with provisioning resources. It can represent a single element, such as an Amazon Simple Storage Service (Amazon S3) bucket, or it can be a higher-level abstraction consisting of multiple parts.

I Don’t Want DevOps. I Want NoOps. — Mike Gualtieri, VP, Principal Analyst at Forrester

Conclusion

These ideas aren’t new. Most have been around for years. But still, so many organizations struggle to get to this high-performing nirvana.

Perhaps remembering the “No, Less, Low” guidelines will help leaders see clearly what needs to be removed instead of added; therefore they can accelerate production with minimum resources.

If you are a startup founder and want to learn more about Serverless or Lean software engineering, I would love to discuss it with you!

Let's concretize your idea

valerie@cliento.ca


quebec city outlined
©2019-2023 Cliento inc. All Rights Reserved.