In an article last week, we explored the growing IT “Skills Gap” problem. Employers say they’re having more and more trouble finding qualified workers with modern skills.
While the reasons vary, one big complaint surrounding the issue is the idea that students aren’t learning the appropriate skills in college. They come out of school completely unprepared for the skills demanded by the business world.
While that might be the case, I believe it’s a two-part problem. On one hand, some schools teach outdated technical skills. But, on the other hand, many of the skills required in business only come with experience.
Take web application development for example. A developer might learn technical skill in college, yet be completely unprepared for the real world. He/she might breeze through school, yet struggle to adapt to development in business. Why?
Web application development in the business world is far more than technical skill. It’s about solving problems. It’s about creating solutions that adapt. It’s about communication. I’d say that the lessons a developer learns outside of school are arguably more important than the technical skills learned in school.
What lessons are those? We posed that question to some experienced developers, who delivered some excellent advice. I’ve outlined their input below, along with some of my own thoughts under each point. Sound good? Okay, here are 9 web development lessons you won’t learn in school, yet are critical to your success:
1. You’re never done learning
I know–this probably seems like an obvious point. After all, every profession requires education to stay in front of modern trends. But, web developers face a greater challenge than most. The world of web development is always evolving, requiring constant education just to keep up. For web developers, it’s more than lifelong learning. As described below, it’s lifelong learning in a field where best practices and standards change on a weekly basis.
“One thing that is not clear in most web development curriculum is the pace of change in this industry,” says Steve Robinson, a digital marketing consultant and web developer. “Many instructors will talk about the need for lifelong learning, but few will explain the depth and pace of that learning. I can think of few other professions where there is a standard or best practice change on almost a weekly basis. Between browser makers improving or adding features, social networks changing their policies and integration options, new startups offering better and different technology to incorporate into your work and an industry that is constantly evolving and eager to share best practices, it’s nearly impossible for anyone to stay up to speed.”
2. You are first, and foremost, a problem solver
Web developers tend to get caught up in the technology. They get excited about new tools and methods for development, and constantly want to try new things. There’s nothing wrong with that–in fact, you need to try new things to improve as a developer.
That being said, developers must realize one important fact: No one cares how you built a solution. They only care that it solves their problem. Sure, you may use the latest and greatest tool or library to build a web application, but if it doesn’t fix the issue…it’s worthless. Understand that your job–first and foremost–is solving problems. The technology is secondary.
“Sometimes it doesn’t matter how you do something, but it always matters if it works well and solves the issue you are trying to solve,” says Derek Lanphier, Lead Developer at Adhere Creative. “Many times there is no set way to do something. Instead you have a big tool box of things that can all accomplish the same task. The real question is picking and executing the best one.”
3. The customer/user doesn’t always know what they need
As mentioned above, you are a problem solver. However, solving problems doesn’t always involve giving the customer/user exactly what they ask for. After all, users don’t always know what they need. They know they have a problem, and many think they know the best solution. Your job as a developer isn’t to give them what they ask for. It’s to understand the user’s problem, and help them find the solution that best solves their problem.
“Business owners and users want to be helpful and solve problems, but they don’t always know the range of possible solutions,” says Matthew Broude, President at patientMoon, inc. “It’s easy as a developer to get excited about a proposed technology solution, and delve into how to implement what they’ve asked for. But this very often misses the underlying problem the solution is meant to solve. Our goal as web developers should always be to understand the problem first, and then consider a solution. Technology is a tool, not an end goal.”
4. The customer/user has the final say
Most web developers and designers have faced this issue at one point or another: They create the “perfect” solution for their users/customers…only to see it rejected. Maybe the customer doesn’t like the solution, or just wants a few “minor” changes–that completely ruin your vision. Either way, the customer/user has the final say.
“The most important lesson I can give is not to get too emotionally attached to your work,” says Simon Rigby, Director at Levelnis, Ltd. “You should obviously take pride in every website that you build, but if you’re involved in front end development then your clients will have the ultimate say in how the finished website ends up looking/working, which may be at odds with your overall vision for the site. You need to learn when to push and when to back down. The thing is, when somebody else is paying, it’s their call at the end of the day. If you’re working on a shared codebase there will inevitably be other developers who have alternative perspectives on how something should be built and you don’t always know best. Listen and learn from everyone around you throughout your career (this never stops).”
5. The only constant in web development is change
I frequently talk about the importance of flexibility in web application development, and for good reason. Business needs change. Customer demands change. Web standards change. Sure, your CEO may assume they’ll never need some new feature when you’re building the application…but, what if that changes? The best web developers anticipate these changes, and create an architecture that adapts as needed.
“Listen to your clients’ requirements but use your discretion in interpreting them,” says Jeff Cohan, President at nSiteful Web Builders, Inc. “In the 20 years I’ve been developing Web sites and Web applications (and 10 more designing and developing other kinds of systems), I’ve learned that clients will often initially dismiss as unnecessary content or functionality I recommend, only to arrive at a place some time in the future where it IS necessary. I’ve learned not to argue (too much) with clients but rather to implement the infrastructure for those things they swore they’d never need – so that I could add them easily when they realize they were wrong.”
6. Communication is just as important as code
“‘Coding’ is a small part of web development,” says Derrick Coleman-Turner, Senior Applications Engineer at Lyons Consulting Group. “Clear communication of projects to stakeholders and team members is huge. Diagrams, mockups, data mappings, and ERD diagrams are clutch.”
He’s absolutely right–poor communication has probably killed more development projects and wasted more budgets than any other issue. Without proper communication, developers spend weeks or months creating a solution…and nobody wants it. Constant communication throughout a development project will save time and frustration for all involved.
“Making sure everyone involved in a project is on the same page will save a lot of headaches,” says Michael Riley, Founder of Simplpost. “You don’t want to waste time or make a client upset, so be sure to talk through everything and confirm you understand each other. Practice is the only way to get better, so try to interact as much as possible with the actual clients.”
7. Perfect is the enemy of good
In the business world, creating a good solution quickly is far more valuable than creating a perfect solution slowly. While you’re busy planning out the perfect web application, your competitors are rolling out a competing product, or your users are getting frustrated and finding their own solutions.
“College taught me to analyze the problem from all angles which often led to a complete idea gridlock,” says Ron Alexander, Technical Architect at Lyons Consulting Group. “I was obsessed with the idea that a perfect solution must exist. Practical application taught me to just start. I may have to throw something away, but attempting to implement is usually quicker than trying to solve everything on paper and each failed implementation approach is a learning experience.”
Now, don’t get me wrong. I’m not saying you should rush through development projects and create half-baked, poorly-built solutions. Proper development still requires great architecture that adapts to changing needs. However, be careful. Many developers get caught in the pursuit of perfection–and fail to accomplish much of anything as a result.
8. Maintainable applications > flashy applications
In school, you learn how to create solutions, but don’t spend much time maintaining those applications. In the business world, it’s exactly the opposite. Creating the application is the easy part. Now you (or someone else) must maintain that application for years to come.
In my experience, creating maintainable, well documented, and flexible applications is easily more important than creating flashy applications. Now, I’m not saying you can’t have both–just understand where your priorities lie.
9. Tools/frameworks are your friend
In school, developers learn the technology. They learn how to build solutions from scratch. However, in the business world, nobody cares HOW you built a solution. They care about when it’s delivered. They care about how well it solves their problem. They care about how well it grows with their business. You won’t get bonus points if you build it from scratch–which is why experienced developers opt for tools and frameworks.
“One of the most valuable lessons a new developer can learn is the importance of web frameworks and development tools in the development process,” says Tyler Wassell, Software Development Manager at mrc. “Coding everything from start to finish is often unnecessary, and will just slow down your project. Instead of trying to re-invent the wheel in each project, spend some time researching a web framework or development tool to speed up the job. 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.”
So, what do you think? Would you add anything to that list? If so, feel free to share in the comments.