Three Tips for Faster and Higher-Quality Software Development

Photo by David Travis on Unsplash

Tip #1: Rapid Prototyping and Avoiding Perfectionism (except for security)

Turning your ideas into code as fast as possible is perhaps the single most important thing you can do as a developer.

Tip #2: Frequent Refactoring

Rewriting code and restructuring when things don’t feel right is essential to achieving optimal agility and control of your codebase. Without this, technical debt can very sometimes build up and your codebase can start to control you.

Caveats

1) There is a point of diminishing returns if you keep rewriting the same thing over too many times

Tip #3: Not Wasting Cycles on Unnecessary Pre-Optimization

There are many ways that this can happen but here are a couple:

Trying to reuse code too often or too early

This means avoiding building components for every little thing. The idea here is to write code in one file until you see a pattern (i.e. building the same few things ~4–5 times) then it makes sense to start componentizing. If we’re talking about building user interfaces, there are so many fantastic UI libraries out there to help you skip the need for building out your own fundamental components for simple elements like buttons. I recommend trying out either BlueprintJS or Chakra UI depending on the scale of your project.

Using unnecessary or overly complex frameworks or tools

I admit. When I first started getting into frontend development with ReactJS, I hopped on the Redux train and went full steam ahead. I did one project for a client and quickly realized that Redux has its place among large teams however, in my opinion, using Redux gets very cumbersome, very quickly when working alone or on small teams. On paper, these sorts of frameworks look very appealing for their theoretical value such as the allure of “doing what Facebook is doing”. In reality, it’s a valid reason to consider a framework or tool when you have as team as large and skilled as they do to maintain the code. The tech giants have open-sourced tons of fascinating and exciting toys to play with but, it’s important to consider if those toys were intended for your size and use case before fully adopting them.

Self-Employed Full-stack Engineer and DevOps Professional, proficient in Cloud-based web development. Interested in React, AWS (Terraform), Docker/Vagrant