Refactoring

Share this post

Minimum viable testing, no-code agencies, surprising reviews 💡

refactoring.fm

Discover more from Refactoring

Weekly, practical advice on writing great software and working well with humans.
Over 50,000 subscribers
Continue reading
Sign in
💡 Monday Ideas

Minimum viable testing, no-code agencies, surprising reviews 💡

Monday Ideas – Edition #55

Luca Rossi
Jun 12, 2023
25
Share this post

Minimum viable testing, no-code agencies, surprising reviews 💡

refactoring.fm
1
Share
Article voiceover
1×
0:00
-5:12
Audio playback is not supported on your browser. Please upgrade.

Hey, Luca here! Welcome to the Monday Ideas 💡

Every Monday I will send you an email like this with 3 short ideas about making great software, working with humans, and personal growth.

You will also receive a long-form, original article on Thursday, like the last one:

  • How to Write Documentation 📑

To receive all the full articles and support Refactoring, consider subscribing if you haven’t already!

Get full access to Refactoring ✨

p.s. you can learn more about the benefits of the paid plan here.


💻 Typo — AI-driven engineering management

Typo is an intelligent AI-driven engineering management platform that enables modern software teams with visibility, insights & tools to code better, deploy faster & stay aligned with business goals.

By seamlessly integrating with your dev tool stack (Git, issue tracker, CI/CD, incident management, Slack), Typo connects the dots between engineering signals & developer experience to deliver the following:

  • 👑 For Leaders — align engineering with business goals & support teams to deliver their best with developer wellbeing insights.

  • 🎽 For Managers — identify delivery bottlenecks, predict release delays & drive continuous improvement with customized team goals & weekly progress reports.

  • 🔨 For Developers — measure the impact of their work on team goals & ship code faster with automated dev workflows in Slack.

As a Refactoring reader, you get 20% off any Typo plan!

Learn more about Typo ✨

Typo is a sponsor of Refactoring 🙏 here is how we run sponsorships transparently.

Back to this week’s ideas!


1) 🔍 Minimum Viable Testing

Many people ask me how to test software properly, what types of tests to focus on, how much they should care about coverage, etc.

Here is my preferred testing workflow:

  1. Use a statically typed language — Most languages today have statically typed versions you can adopt. My opinion is that this is a no-brainer for 99% of teams. Static typing catches a ton of bugs early, while also documenting the code thanks to types and annotations.

  2. Write unit tests when relevant — Unit tests are an important part of your testing investment. However, I am not adamant about coverage. Write them for whatever is non-trivial or subject to implementation changes in the future.

  3. Write plenty of integration tests — Integration tests are about testing execution paths that involve multiple functions / components. Figure out the most important ones for each area of your product, and test them in depth. To identify them, think about business paths, based on how your product is used. API endpoints are also good candidates for integration tests.

  4. Write just a few, critical end-to-end tests — End-to-end tests are expensive to develop and maintain. My rule of thumb is to invest in testing those parts that you would check manually otherwise. The main goal of end-to-end tests is to remove manual checks, so you can release faster.

  5. Avoid staging if you can — I wrote a full article about this. TL;DR is you can probably avoid using a staging env by implementing a combination of gradual rollouts (with feature flags) and live previews for PRs. The idea is: the less steps to production, the faster you release, the better feedback loop you have, which also helps stability because of faster recovery from mistakes.

Here is a cheatsheet about the ROI of the various types of tests 👇

Aaand here is the full, exhaustive article I wrote about testing software in 2023 👇

Refactoring
How to Test Software in 2023 🔍
Testing is an ever-controversial topic in software. You would be hard-pressed to find any engineer who doesn't believe that testing is crucial to their workflow. Despite this, many teams struggle and are not happy with it. Additionally, the general consensus…
Read more
6 months ago · 19 likes · Luca Rossi

2) ✨ Bootstrap no-code adoption with agencies

Sometimes, it might be scary to build a complex product with no-code tools, especially if your team hasn’t much experience with them.

In this case, you can bootstrap the process by working with a specialized agency. Here are the best ones I know of, based on recommendations by readers and reviews on Clutch (no affiliation):

  • 8020 — US-based. One of the first no-code agencies to appear in the market. They specialize in Webflow development.

  • 9x — Berlin-based agency that works with the likes of Bubble, Airtable, Zapier, and Retool. They also provide training to your people so they can maintain the product later, and build more in the future.

  • AirDev — the most trusted no-code agency on Clutch. They use primarily Bubble to build products for startups, and internal tools. They also run a bootcamp to educate people about developing with Bubble.

  • Codemap — a marketplace that connects companies with vetted no-code experts. A good solution if you are looking to hire someone for the long-term, rather than working with an agency.

I wrote a full article about how to build great software with no-code tools 👇

Refactoring
How to Build Anything with No-Code 🪄
Last week I wrote a piece covering the role of a CTO in early stage startups. At some point in the article, I recommended using no-code / low-code tools to build your product faster and reduce its cost of ownership. When I talk with startup founders, this is among the top 3 most frequent advice that I give. Likewise, the most frequent answer I receive is…
Read more
a year ago · 11 likes · 4 comments · Luca Rossi

3) 🏅 Performance reviews should be unsurprising

I believe performance reviews are mostly useful as a prime moment to act on feedback — by setting goals and priorities — rather than sharing it.

In fact, in healthy relationships, feedback is frequent and mainly shared 1) on the spot, and 2) in recurring venues like 1:1s. So, feedback in performance reviews should mostly ratify what has already been discussed privately.

As a rule of thumb, if people are surprised by your review, you did something wrong. You can find more ideas about performance reviews in this recent Refactoring essay 👇

Refactoring
Performance Reviews 🏅
In any company, you would be hard pressed to find any process that impacts people’s behavior more than performance reviews. People may ignore the company’s mission, principles, the supposed culture, but never ignore how their performance is evaluated. For this reason, reviews have the power to…
Read more
4 months ago · 12 likes · Luca Rossi

And that’s it for today! If you are finding this newsletter valuable, consider doing any of these:

1) ✉️ Subscribe to the newsletter — if you aren’t already, consider becoming a paid subscriber. You can learn more about the benefits of the paid plan here.

Get full access to Refactoring ✨

2) ❤️ Share it — Refactoring lives thanks to word of mouth. Share the article with your team or with someone to whom it might be useful!

Share

I wish you a great week! ☀️

Luca

25
Share this post

Minimum viable testing, no-code agencies, surprising reviews 💡

refactoring.fm
1
Share
1 Comment
Share this discussion

Minimum viable testing, no-code agencies, surprising reviews 💡

refactoring.fm
Dan the dev
Writes Learn Agile Practices
Jun 12

I don’t agree with the unit test suggestion. I would rather suggest using TDD instead, which is based on unit tests of course.

While it may be true that unit tests change often, especially in the important parts of the system, I’ve never face situations where this was a problem. On the reverse, working in TDD they become the first feedback of doing things right.

So I would definitely define the ROI of unit tests as HIGH. 🙂

Expand full comment
Reply
Share
Top
New
Community

No posts

Ready for more?

© 2023 Refactoring ETS
Privacy ∙ Terms ∙ Collection notice
Start WritingGet the app
Substack is the home for great writing