Get the latest AI workflows to boost your productivity and business performance, delivered weekly by expert consultants. Enjoy step-by-step guides, weekly Q&A sessions, and full access to our AI workflow archive.
Summary
Building seemingly simple web apps can be surprisingly challenging, as discussed by Tom Gregory Tech. He shares his personal experience and insights into why small features often take longer than expected, the pitfalls of being a perfectionist, and the psychological barriers developers face. From dealing with framework complexities and learning new features to setting realistic deadlines and learning from mistakes, Gregory emphasizes embracing the development process and the inevitability of encountering and overcoming obstacles when creating a web app.
Highlights
Big companies seem to churn out features rapidly, while small web app development can feel slow and tedious 🐢
Perfectionist tendencies can lead to over-researching and getting sidetracked 🐇
Opt for a 'quick-and-dirty' prototype approach to speed up development 🛠️
Framing features as complex may discourage development; tackling them head-on can reveal simplicity 🚀
Framework usage often pushes towards specific conventions, creating challenges for custom solutions 🔄
Successful websites come with invisible histories of trial, error, and learning 🌐
Missed release dates aren't the end; they foster productive work habits ⏰
Past project errors are valuable learning opportunities and shouldn’t be dwelled on 📈
Incorporating emerging tech, such as AI, can ease and improve the coding workflow 🤖
Embrace each development hiccup as part of the journey; introspection aids growth 🧠
Key Takeaways
Big companies’ rapid feature development can make small projects feel slow 🐢
Being a perfectionist can lead to endless rabbit holes while coding 🐇
Quick prototyping can help spot issues faster and save time 🛠️
Overcoming fear of new frameworks or features is crucial for progress 🚀
Working against framework conventions requires tricky workarounds 🔄
Learning from experienced developers’ websites requires patience and perspective 🌐
Setting deadlines can be motivating, even if behind schedule ⏰
Consistent reflection on mistakes aids in future improvements 📈
Utilizing new technologies, like AI, can streamline coding processes 🤖
Mindset shift can change your perception of challenges in web app development 🧠
Overview
Tom Gregory Tech discusses the frustratingly slow pace many developers experience when building seemingly simple web apps, contrasted with the swift pace of big companies’ feature releases. He delves into personal anecdotes, reiterating how every minor task often turns into a days-long endeavor, filled with unforeseen diversions and hurdles. Despite meticulous planning, the reality of programming languages and frameworks frequently leads developers astray. However, Tom highlights that encountering these hurdles is intrinsic to the development journey.
An integral insight shared is the struggle between striving for perfection and settling for a working prototype. Tom identifies as a perfectionist, habitually diving deep into documentation and examples to ensure everything aligns flawlessly, which often results in being sidetracked by minor, time-consuming issues. He advises trying a quick prototype approach—prioritizing functionality over perfection—to sidestep the exhaustive quest for flawlessness and making necessary corrections later.
Additionally, Tom advises developers to overcome the fear of trying new framework features by first experimenting with them in a sample project. This method minimizes the psychological barriers that often magnify the perceived complexity of new tools. He also discusses the challenges of adapting frameworks to personal project needs, the importance of realistic scheduling, and endorsing continuous reflection and learning from past errors. By embracing the journey, developers can alleviate the mental weight of progress and appreciate the growth each step fosters.
Why building a simple webapp can feel so hard Transcription
00:00 - 00:30 when big companies pump out amazing new features seemingly on a weekly basis for anyone that's struggling to build even a small web app it can feel like you're going at a snail's pace every small feature that you work on even ones that you thought were going to be simple to implement ends up being a multi-day challenge that sees you going down several rabbit holes and suddenly that optimistic one- Monon build and release goes out the window I'm in the thick of building my fourth web app right now and
00:30 - 01:00 exactly how this feels because however carefully I set a goal for the day the actual reality of the programming languages and Frameworks I'm using sends me in a completely different direction but having built three other web apps I'm starting to realize this is just part of the game and I've identify the top seven mistakes that slow me down or make me feel like I'm not making any progress are you a perfectionist that likes to make sure you're doing everything the right way according to the documentation or do you get it done
01:00 - 01:30 quick and dirty style well I'm definitely the first one and whenever I'm using a new feature of a framework like the view javal script framework I'm using for my current project I like to read the documentation read through examples and make sure I'm doing everything the right way while there's nothing necessarily wrong with this I can very easily get sidetracked and jump down a rabbit hole as I tried to figure out whether to use the use fetch or dollar fetch function if you suffer from the same problem try this rather than
01:30 - 02:00 spending weeks doing everything perfectly tell yourself you're going to do the quick and dirty approach and create a prototype like your life depended on it by doing this you can get to a working although not perfect solution as quickly as possible and you'll spot mistakes along the way that you can always go and fix at the end if they're really that important do you ever want to use a feature of a framework that you haven't used before and you build it up in your head as some complicated thing that's going to take you days to figure out and
02:00 - 02:30 then Implement in your project I've been playing around with storing state in my application so that whatever component I need to access the login State I can easily fetch that without passing parameters around but before I'd started using it I built this feature up as something complicated when I looked into it and tried the examples on the N website it was actually pretty straightforward the thing about framing a problem is difficult to overcome is that you put off fixing it and carry this psychological baggage of things that you need to do in the future one
02:30 - 03:00 thing you can try out when you want to use a new feature of a framework is just to create a sample project try out the code there and then you'll get an idea for how it works and how long it's going to take to add to your real project when you're building your project do you ever feel like you're swimming against the tide like the framework is pushing you to do something in one way you want to do it in a completely different way I spent many many days trying to get this n framework to work in a serverless way using AWS
03:00 - 03:30 Lambda and although I got it working there were some essential features that were to be honest quite buggy the unfortunate truth is that Frameworks get tested most for the common use case so this raises the question of how do you fit a framework into your existing pattern of working there's no easy answer but it's worth bearing in mind that if you want to do it your way there may be caveats and you may have to spend time doing workarounds that you wouldn't have to do if you just went with the approach that's documented in the
03:30 - 04:00 getting started guide that said the payoff for the work involved in doing your customer approach might be worth it which is why I'm putting so much effort into this because my goal with my current project is to have a single command build and deploy process did you have a look at the website of someone that you look up to to get inspiration and falling for the trick of seeing that the website is so clean and simple and thinking the implementation would be too well the fact is that behind every beautiful website is series of failures and
04:00 - 04:30 overcoming those failures that probably took weeks months or years of accumulated experience so next time you get inspiration from a website try to take into account the experience of the person or team that built it for example I use this guy's website for inspiration and have to remind myself that he's already built 24 different web apps so he's obviously going to be way ahead of me on my fourth web app and I can't yet expect to be at that level although I will be soon so watch out did you ever have to come up with with a release date
04:30 - 05:00 for an app and in your head it sounded so sensible but once that release date came your app was far far from finished I'm way behind schedule for my current web app and sometimes this can be demoralizing as I spend days working on problems that I didn't plan for but on the flip side having a release date has pushed me to work on this for a few hours a day which is longer than I was expecting I don't have the perfect answer for how to schedule a release date yet but probably the most important thing is to keep up consistent daily action on your project while also taking
05:00 - 05:30 into account this sixth Point there's a saying that goes something like the only thing worse than making a mistake is not learning from that mistake and I definitely feel like I've made a lot of errors in my first four web apps not just technical errors but errors in how I've run the projects that have slowed me down and wasted time unnecessarily and while you're in this learning phase it's important not to be too harsh on yourself but I also think an element of introspection is important one thing you can try on a weekly basis is just make a
05:30 - 06:00 list of what's slowed you down brainstorm some ideas of how you could speed up for the next week and then pick the top three items and figure out how to implement them in your workflow because once you can get the problem out of your head it becomes easier to solve are you using all the available resources to make your development process as fast as possible sometimes I reject a new technology because of the hype for example I delayed using AI to help with coding when it could have
06:00 - 06:30 saved me hours of work and now I use it all the time problem I find is that incorporating something new or switching to a completely different tool like an AI based IDE is that it takes me time to adjust and get used to that new tool and sometimes I think to myself it's not worth the effort or I might make the switch and regret it for me that's probably just an unfounded fear so in the future I want to set aside an hour every week to look into the tools that people are talking about try them out maybe just building a tiny example
06:30 - 07:00 project and if I see that they're valuable incorporate them into my process the final thought I'll leave you with is this feeling that building a web app is hard is just a perspective that you've created in your mind when I look back at the app that I feel like I'm struggling with at the moment I've actually only been working on it for about 2 weeks and I have to remind myself to enjoy the process and remember that when I look back at this in a few months time how long it took will seem like the blink of an eye as long as you're making consistent progress with your web app and you make sure you're
07:00 - 07:30 working on the right things I've got no doubt that you've got what it takes to reach the Finish Line see you in the next one