paint-brush
Spotting a Short-Sighted Developer in the Wild by@nishu
217 reads

Spotting a Short-Sighted Developer in the Wild

by Nishu JainNovember 22nd, 2023
Read on Terminal Reader
Read this story w/o Javascript
tldt arrow

Too Long; Didn't Read

Signs of short-sighted developers: - They don't "design" prototype, they "build" it. - They mess up their tech stack in order to catch the latest trend. - They add dependencies without thinking about the future. - They try to build everything from scratch.
featured image - Spotting a Short-Sighted Developer in the Wild
Nishu Jain HackerNoon profile picture



Hi there, fellow coders!


We’re all on a quest to level up our programming skills, right?


So, how do we become coding wizards? Well, here’s what people generally do:


  1. Scouring through other people’s code — because we all know there’s wisdom in those curly braces.

  2. Devouring programming articles — the ones that reveal secrets, shortcuts, and maybe even a joke or two.

  3. Sifting through documentation — yes, those sprawling tech manuals that often make us feel lost in a maze. But they hold the keys!


But here’s the fun part: to reach greatness, you’ve got to be a detective and search for those telltale signs of being, dare I say it, an “average” developer. 🕵️‍♂️


My mission is to guide you in discovering these four telltale signals of a short-sighted programmer, so you can steer yourself down the right coding lane.



They don’t “design” prototypes, they “build” it!

Let me tell you a little story about my journey from a code-centric prototype skeptic to a design enthusiast. I used to be all about code-based prototypes, and I couldn’t fathom why anyone would bother with non-code-based ones. I’d ask questions like:


“Why on earth would we need a figma prototype when we can whip up a code-based one that mimics real user interactions?”


I mean, I loved the fact that with a code-based prototype, you could thoroughly test all the features and squash those pesky bugs early on. Plus, you’d get a head start on understanding the nitty-gritty technical challenges from day one. Not to mention, having something tangible to show customers was pretty sweet.


But guess what? In the grand scheme of things, it turned out to be a bit of a dud.


Here’s why: First off, building a code-based prototype is like a time-sucking black hole. It can drag your project timeline into a never-ending abyss. Once you and your team dive headfirst into coding, you’re stuck on that roller-coaster, even in the project’s infancy.


Making changes to a code-based prototype? Buckle up for a bumpy ride because it means a truckload of adjustments down the line. And let’s not forget that customer requirements are about as stable as a Jenga tower in an earthquake.


It’s way smarter to give them a sneak peek at a non-tangible product and gather their feedback.


Let’s picture this with a scenario — Imagine you’re building a ridesharing app, and you decide to kick things off with a code-based prototype. Your team puts a ton of effort into designing a system where users can book rides and make payments via a third-party API. The client loves it, and you start charging full steam ahead, adding more bells and whistles.


But then, oh snap, you realize the API costs an arm and a leg! You’d love to hit the brakes and switch gears, but you’ve already invested so much time and energy that you’re essentially handcuffed to the code.


Rolling back? Good luck with that; you’ll need a time machine.


Learn the difference between a prototype and an MVP (Minimum Viable Product)


If you’d started with a non-coded prototype, you could’ve easily shown it to the client, discussed options, and if necessary, hit that undo button in a jiffy. No extensions, no drama.


So, the moral of the story? I’ve learned the hard way that code-based prototyping isn’t all it’s cracked up to be. It’s time to embrace the non-code-based way — your project’s sanity and flexibility will thank you! 😄🚀



They think they can just hit the ‘Undo’ button on life’s big choices! (Like choosing the right tech stack)

Back in the day when I was just a code-writing newbie, I had some wild ideas. I was basically a self-taught programmer, and I had this grand notion that I could whip up any project using any tech stack under the sun.


I was notorious for my random experiments. If I was building a blog site with Flask and stumbled upon some dude on YouTube singing praises of Django, you bet I’d jump ship without hesitation.


I’d scrap all my previous code right in the middle of the project and switch to Django. And guess what? If Django didn’t tickle my fancy, I’d casually saunter back to my old stack like it was a stroll in the park.


And it wasn’t just limited to the back-end stuff. Frontend, libraries, payment processors — you name it, I flip-flopped between them more times than I can count.


So, what did all these shenanigans teach me, you ask?


Well, I developed this quirky belief that I could reverse or change any decision, anytime, anywhere.


As time went on, I started reading stuff by other developers, and a couple of times, I heard them griping about their choice of tech stack. They were moaning about how it had made their lives miserable.


But in my mind, I was like, “Why are these folks whining? Can’t they just flip the switch to their preferred tech stack?”


What I didn’t get back then was how darn hard it is to do a 180 in the professional world (I was just out the college at that time). You can’t do major transitions on a live product with thousands of paid users, nor you can simply plug-and-play major elements in real-world.


See, when you’re building your own pet projects, you’ve got all the time in the world. You can try things out, switch libraries, flip-flop between programming languages — it’s all a walk in the park.


But once you venture into the professional realm, that’s when the headaches come rolling in. Even if you’ve dotted every ‘i’ and crossed every ‘t’ in your code, adhering to all the best practices like DRY and crafting code that’s as flexible as a rubber band, it won’t save you.


Why? Because if the higher-ups decide to change a major design element, all those best practices go out the window. One little tweak to a crucial step, and your project’s timelines are about as reliable as a weather forecast.


So, what’s the takeaway from this?


In the real world, decisions you make often have no U-turns. So, before you dive headfirst into picking that quirky, unsupported third-party library, take a step back. Do some good old requirements gathering, research like your life depends on it, evaluate your options, assess the risks, and maybe even whip up a prototype.


Make sure you’ve covered all your bases before committing to a big decision.


It’ll save you a world of trouble down the road!



They’re totally clueless about what’s coming up!

You know, it’s like developers sometimes forget that the future is a thing! I mean, they swear they get it, but come on, they keep repeating the same old mistake.


So, when do they mess it all up?


Well, it’s like a clock ticking down to the deadline, and they start panicking more about the here and now, forgetting all about what’s down the road for their software. They ditch those crystal balls for shortcuts, just to wrap up the project.


Imagine coding up an analytics tool for your company, and you go, “Oh, that shiny third-party API looks cool!” No research, no second thoughts. But then, down the line, you need some fancy features, and guess what? No documentation! How would you feel? Pretty much like you’d bitten into a sour lemon, right? — Regret City, population: you.


Here’s the lesson: Trendy APIs might seem all the rage, but they’re like those one-hit wonders in the music world — here today, gone tomorrow. Go for the trusty folks who’ve been around the block, the ones with a solid track record of dependability.


It’s like picking the rock-solid friend over the flaky acquaintance for the long haul!



They go for the full app in DIY mode!

I still remember that initial rush of feeling like a tech wizard when I whipped up a simple HTTP server in C without using any third-party libraries. Man, that was fun!


I thought I was the bee’s knees when I first used my app. I was like, “I can build anything I want, exactly how I want it!”


But here’s where I took a wrong turn. I used to be obsessed with crafting the ultimate, perfect product right from the get-go. I didn’t want to waste a minute building a stripped-down version.


I had to create an app with 20 different features, but only 2 of them were super crucial. Instead of just putting together a simple app with those 2 must-haves, I went all out, trying to make the mother of all apps with all 20 features from the very start. Silly, right?


You see, because I thought I was a genius, I believed I had it all figured out and didn’t need any client feedback.


Here’s a nugget of wisdom for all you fellow developers out there: Don’t fall into this trap!

Loads of developers, like me, dream of building that flawless app right from the beginning. They don’t want to “waste” time on a basic version.


But trust me, building that simplified prototype is the way to go. It helps you spot problems early on, and you can gather feedback to keep improving.


Just by having a basic version, you can test your ideas and make sure everything’s working smoothly. Plus, you’ll catch those pesky issues before they turn into big headaches down the road.


So, what’s the takeaway here?


The next time you’re starting from scratch on a software project, kick things off with a stripped-down version of your product, focusing on the most vital feature. It’ll save you a ton of time and hassle in the long run.


Also published here.