Summary: What separates the successful web developers from the rest of the pack? Oftentimes, it’s not about what they do. It’s about what they avoid. Successful developers avoid the things that waste time, energy, and lead to unproductivity.
Let me ask you a question: What makes a successful developer? What separates the successful web developers from the rest of the pack?
Whether or not they work within a large organization, or operate on their own, one thing is clear: Some developers are simply more successful than others. They’re the ones you go to with important projects. They’re the ones you go to when others can’t solve a problem. They consistently create better solutions, while operating more efficiently.
What’s the difference?
Oftentimes, it’s not about what successful developers do–it’s about what they don’t do. They’ve learned to avoid the things that waste time and energy, or lead to unproductivity. They’ve learned to focus on the most important aspects of development, and cut out the rest.
What are these things? We posed that question to some successful developers, and have compiled their responses below. Here are 5 things that successful web developers avoid:
1. They avoid quick hacks
There’s a great concept in software development circles known as “Technical Debt.” It refers to the eventual consequences of poor software architecture and software development.
Let me explain: When creating or altering an application, developers have a choice: Do it right, or do it fast? Many opt for the latter–choosing the quick and messy fix over the correct (yet slower) approach. However, every messy fix adds to their overall technical debt–meaning application maintenance becomes more and more difficult over time. Successful developers understand this fact, and avoid quick hacks that may cause problems down the road.
“When developing new features, they tend to balance smart engineering and time management,” says Kenny Katzgrau, a former Senior Software Engineer at Yahoo and current CEO of Broadstreet Ads. “Build it right, don’t cut corners, use existing solutions if possible, but don’t waste time over-engineering.”
2. They avoid re-inventing the wheel
“With open source code becoming a staple in the web developers landscape, there’s really no reason to write existing libraries and classes from scratch,” says Edan Barak, a web developer with over 10 years of experience. “Not only does it take a long time, it’s also extremely bug prone.”
If you’re a web developer, you understand the sense of satisfaction that comes from building a new web application from scratch. If you’re a successful web developer, you also understand that this is usually a bad idea. Not only does it lead to more bugs, it also results in less secure, less reliable, and less stable applications.
“Successful web developers understand that coding everything from start to finish is often unnecessary,” says Tyler Wassell, Software Development Manager at mrc. “Instead of trying to re-invent the wheel in each project, they use web frameworks or development tools to eliminate the repetitive coding tasks and promote stability, maintainability, and security. In the end it’s all about delivering quality solutions in an efficient manner and selecting the right tools will help save time and improve software reliability.”
3. They avoid mission creep
One key principle that successful developers understand: Sometimes they must say “No.” If they agree to every change from their clients/users after the project has started, it becomes a never-ending mess. That doesn’t mean you should never accept changes after a project has started, but don’t let it stray off course.
“It is critical to avoid mission creep,” says Cliff Rohde, Owner and Chief Executive Goat of GoatCloud Communications. “A big part of this is learning to say no to your client, which is not something that comes easily to a business owner interested in drumming up business. Stay focused on the task, do it exceptionally well, and the customer will not only ask for more, but will be willing to pay for it. If you fail to do this, you can end up throwing untold hours at a project, diminishing your return substantially.”
4. They avoid bad clients
In his book, “ The 4-Hour Workweek,” Tim Ferriss explains how he instantly became more productive: He fired his bad customers. He realized that 80% of his customer issues (and most of his stress) came from a small portion of his client base. So, he got rid of them. This freed up time to focus on his other customers, and look for new customers similar to his best clients.
Now, I’m not saying you should get rid of clients that have problems. However, as explained below, avoiding bad clients is one key to success. Jessica Greenwalt, the Founder of Pixelkeet, and recently named one of Inc.’s 10 Women to Watch in Tech, attributes much of her success to this point and even identifies the types of clients she avoids:
“I’ve enjoyed a good deal of success in my field because I’ve learned to avoid working with particular types of clients, mainly:
– The overly enthusiastic guy who thinks his project is going to be the “next big thing” so you should work on it for free, because when the product makes it big, you get to say you were the one who built it
– The dude who thinks his company is so high-profile that you should work on his project for little or no pay because you’ll get “exposure”
– Anyone who is obnoxiously cheap
– Anyone who is generally just [a rude person]Now a days I just turn down any project with a point person I have a bad feeling about so I don’t have more “annoying client” stories to add to the list.”
5. They avoid project uncertainty
Many developers take project requirements and create solutions based off of the specs. The most successful developers go a step further. They don’t start projects until they understand exactly what the user/client needs, and why they need it. They avoid starting projects unless they know the problem they are solving.
“I think the biggest thing is understanding exactly what the client wants and needs and delivering that,” says Matt Boaman, SEO Engineer / Programmer at EZSolution. “Yes, you can take their ideas and improve upon them, but one of the biggest pitfalls is not understanding exactly WHAT a client wants and WHY they need it. If you understand that need, you can put yourself in their shoes and it will make the project much more successful.”
So, what do you think? Is there anything you would add to this list? If so, please share your thoughts in the comments.