August 18th: A customer requested an application, one week before my Brazil 🇧🇷 journey, getting to know the family of my girlfriend. I wanted to deliver before I left. While delivering as few bugs as possible, to enjoy the time there with as few calls as possible. Here's what I did!
... was built for a pest control company, that needs to share reports with the building insurance companies.
Those reports contain images, and addresses of the invoice receiver and the damaged person (may be the same person).
The app's current scope contains
creating the report, talked earlier about and
the easy extension of fully customizable report templates for other types of companies (yes this was requested by the customer)
What I did to deliver fast ⚡️
Use a BaaS - Backend as a Service
There are tons of options: Firebase, Supabase, Appwrite. I decided to stick to the last one since I created another application with it beforehand: The Dojo Manager.
Using a BaaS will save you a lot of time since you do not have to invest time in:
Choosing the backend stack
Struggling with the Dockerfile
Searching for a hosting solution
Thinking about uptime
For smaller scale applications BaaS's are a blessing. But if for some reason the application grows, I split the appwrite code into a separate package. If I were to use another self-written backend I could just write a frontend adapter for it.
Focus on implementing the happy path
Don't waste time on implementing every feature thoroughly. My motto was: If it isn't perfect, but it's working, it will be fine.
I did not implement special features that the user might not need within the first weeks of usage.
Reuse a lot of code from other devs.
You don't have to reinvent the wheel and I simply didn't have the time to do so. Using dependencies, such as
react-native-bottom-sheet saved me hours for implementing and fixing bugs.
Release as soon as possible
Gathering feedback in the development process is crucial. In my case, the creation flow for reports wasn't clear at the beginning and needed POCs to figure it out.
Releasing daily, or even hourly, even if it's just a small video demonstrating the flow, will be enough to make progress.
Do not ignore code design
Small projects with dangerous deadlines tend to have
shitty code. Not all, but the majority I've seen (and I've written too).
Take your time to think about splitting the code in the right packages and do not violate SRP.
I know some people, who won't agree to this point, since they think they will refactor it at some point. But getting the foundation right is crucial for the later development of the project IMO.
I hope this gave you a rough impression of what to do when you need to leave the country ASAP and want to finish a project beforehand. If so, share this post and tell me what you're doing on your vacation. 🌴