To gather insights on the state of web application development today, we spoke with 12 executives who are familiar with the current state of the industry and asked them, "What skills do developers need to develop effective web applications?" Here's what they told us:
- Empathy for the users and those you are working with. A desire for continuous improvement in yourself, your apps, and the process. Measure what matters and keep track. Just like DevOps – collaborate, automate, measure, and share. Ask yourself what the customer has asked for.
- Have empathy for your users. Walk through the steps your users are taking to understand their pain points from their workflow. Have a good grasp on the hot technology but empathy for the user to create the best UX.
- Communication, structure, and a firm commitment to understanding users are critical skills outside of the standard technical chops. It's true that developers need to be technically proficient, but even the best professional developers can quickly find themselves in a bind without a good plan and a solid understanding of how others would use their applications. Being able to articulate technical challenges while remaining approachable by clients and peers is one of the foundational components of a successful web application developer.
- Become more familiar with multiple components that affect their application. Open source components, frameworks that support interactions, and the cross-effect they have on each other. A sense of aesthetics to allow you to be aware of how the UX component fits with the customer.
- Requirements analysis is the #1 skill. No amount of brilliant coding can make up for a bad choice early on. It's not just the web framework per se; we also see developers doing things like using NoSQL databases because they are trendy, then struggling with how to do something as common as a SQL join without killing performance.
- A full-spectrum engineer is responsible for quality, unit tests, security, containerization. These used to be the system administrator's and IT functions. Now developers pick the image used, the software container, and handle shipping. There are no quarterly patch cycles. DevOps and developers are all required to learn more.
- DevOps. Pay more attention to how the app is used, its impact on infrastructure, how it is deployed, and how it is monitored. There is a class of developers who understand the DevOps culture and the need to wear many hats. Operations teams have a struggle getting developers to care and engage with users. Developers just want to develop the next cool thing and get it out. They need to think about their apps from end-to-end. That will free them up to work on cool new code. Provide a better user experience. It should be embarrassing to have a bug that causes a product stoppage. We have one client where one hour of downtime costs them $8 million in lost revenue. DevOps is an opportunity to learn – modernizing and improving all of the time.
- Be familiar with the full stack but then decide what you want to focus on. Find your specialty. There is value in specialization. Advertise yourself in that specialization on Upwork and Stack Overflow. Join a Facebook or Google+ community and get as involved as you can. Live coding, blogging, and podcasting will all help your career. Build up your network connections. Be a content creator as much as possible.
- There are a thousand different ways to be a good developer. Be curious, be humble, always be learning.
What do you think developers need to know to develop web applications?
Here’s who we spoke to:
- Matt Chotin, Senior Director of Developer Initiatives, AppDynamics
- Michael Beckley, CTO, Appian
- Gil Server, CEO, Applitools
- Mike Kail, CTO, CYBRIC
- Kevin Bridges, CTO, Drud
- Anders Wallgren, CTO, Electric Cloud
- Jim McKeeth, Developer Advocate, Embarcadero
- Lucas Vogel, Founder, Endpoint Systems
- Charles Kendrick, CTO, Isomorphic Software
- Mark Brocato, Engineering Director, Sencha
- Cole Furfaro-Strode, Lead Software Engineer, SparkPost
- Pete Chestna, Director of Developer Engagement, Veracode