Hey Friends 👋
This last week has been one filled with emotions; from excitement and elation to anger and frustration. But, then isn't that the life of a software developer? 😂
On a more serious note, today marks the end of the month-long hackathon I've been taking part in. It's been one hell of a ride so with my entry officially submitted for judging I wanted to take this edition to share some of the lessons I've learned from the last month.
One of the biggest issues I experienced in the past month was "this would be cool to have" and "oh, let's just add this in" or to give its proper name, scope creep.
At the start of the month, I had a basic idea for a product that I thought would be cool and would be easily doable within the timeline of the hackathon. But, slowly and surely, the scope increased as I thought of new things I could add and new features I thought people would like.
Which in hindsight massively bit me in the behind, it distracted me from the core offerings of the product and made me rush the development of the project leading to sub-par code and practices being implemented, especially at the end when time got tight.
Given the opportunity to redo it, I would define the scope of the project so it solves the problem the MVP needs to and then only work on that and nothing else until the MVP is released to prevent scope creep from happening.
One of the biggest challenges to overcome with this project was planning, designing, and implementing the backend. In hindsight, this is something I didn't spend enough time on. My backend solution was rushed and far from ideal for the purpose it needed to fulfill due to my lack of planning.
I would go as far as saying the problems and issues I faced in the latter parts of the hackathon were due to the rushed and inadequate backend solution I implemented at the start.
In short, fail to prepare, prepare to fail...
I failed to prepare the backend for the challenges it needed to overcome and so it failed me when I needed it.
In future projects, I'll be spending more time planning the solution and less time winging it so hopefully, it prevent this from happening again. 😅
If you're interested in reading more about Squares and some of the more technical challenges I had to overcome, be sure to check out the announcement post here. If you want to check out Squares and sign up for a free account, you can here.
Thank you for reading as always.
Instead of just one takeaway for this edition, here are two inspired by the above.
- Define your project scope and stick to it. Don't let new "nice to have's" bloat your scope and delay your product.
- Planning the solution to a problem is just as important as implementing the solution.
- Thought: Being under pressure is good for learning. We learn better when we're in a situation where success depends on us learning something.
- Question: Have you ever taken part in a hackathon? How did you find the experience?
- Challenge: Find an upcoming hackathon that you're interested in and give it a shot. I promise it's an experience unlike anything else.
- Tech 💻: I recently purchased a new Kindle Paperwhite and have to say I'm really enjoying using it. I highly recommend one if you want to get into reading and don't want to read physical books.
- Book 📚: Speaking of reading, I've been loving The Productivity Project by Chris Bailey. I'm only a few chapters in but it's been filled to the brim with insights and tips that I'm eager to try out. 🔥
- Music 🎶: Recently, I've had a massive soft spot for film soundtracks and scores so I've been binging this playlist on Spotify.
If you have enjoyed this edition and want to see more of my content please consider checking out my various socials below:
If you have a question you'd like me to ask me then I'd ask you to consider publically tweeting me it so others may be able to learn from it. However, I understand not all questions are suitable for the public domain in which case you can email me at firstname.lastname@example.org