To gather insights on the state of web application development today, we spoke to 13 executives from 12 companies developing web applications or providing web application development tools to their clients.
Specifically, we spoke to:
Samer Fallouh, Vice President, Engineering and Andrew Turner, Senior Solution Engineer, Dialexa | Anders Wallgren, CTO, ElectricCloud | Brent Sanders, CEO, Fulton Works | Charles Kendrick, CTO, Isomorphic Software | Ilya Pupko, V.P. of Product Management, Jitterbit | Faisal Memom, Product Marketing, NGINX | Bruno Correa, IT Coordinator, Ranstad Brazil | Craig Gering, Vice President, Engineering, Sencha | Joachim Wester, Founder, Starcounter | Michael Morris, CEO, Topcoder | Greg Law, CEO, Undo | Alexey Aylarov, CEO, Voximplant
When we asked them, "What skills do developers need to develop effective web applications?," here's what they told us:
- Know the components of the application and the database frameworks. Understand the glue code but don’t get involved with it. Understand how to write apps that are bold. Leverage web software. Google is good at balancing applications driven by URLs and statelessness of the web while maintaining real-time communications.
- We used to have a problem with design paralysis. Now we’ve swung too much the other way with people just diving in without thinking through what’s needed. Allocate time to determine what’s needed.
- I think the main skill is really a desire to learn new things, and to do so efficiently. Right now our industry is in constant change, so the best a developer can do is to follow the industry’s evolution until everything settles down a bit. I’d say the second must-have skill is to write maintainable code. Writing code is like writing a book: it’s challenging to write a book that will be easy to read and easy to understand.
- Specialization. Know what you’re not good at. There is the opportunity for anyone in software development to focus on what they are good at and what they’re passionate about. Don’t be afraid to say, “no, I’m not the best fit for this.” Focus on your strengths.
- Problem solving orientation. They should move from the “tech” way of thinking and doing software, to more of a ”business value” orientation and adoption way of thinking and developing.
- Core fundamentals haven’t changed. Attitude of the developers needs to scale with deployment and DevOps to bridge the gap. Developers become responsible for operation of the code they develop.
- Be consistent. Understand the toolset. Be able to switch between languages since the web is constantly evolving. Modern languages are evolving and adding syntactic sugar. Have fluency in other languages. Take a month a year to learn a new language. Understand HTTP. Know how every part works at its core. You can lean on libraries and frameworks but you need to understand the fundamentals.
- Proper understanding of internet, UX, and basics of security.
- It’s a challenge with how fast things are moving. The “hot new thing” can be superseded very quickly. Stay agile. Apply filters to know what’s a “flash in the pan” versus what will be around for a while. Embrace new things as they become available and develop your intuition to know what to stick with.
- Adaptability is key. Historically, there has been a lot of importance placed on knowing specific languages, frameworks, and platforms. However, the technical landscape continues to rapidly evolve and developers must learn to adapt. Great developers will freely abandon their own solutions when better ones are presented. Empathy is also a critical skill. The best developers don’t always have the strongest technical experience, but produce great work because they empathize with users, understand their desires, pain points, and motivations, and can honestly and objectively judge their own work to make sure they are meeting the needs of their users. Skilled developers who are passionate about UX are a rare breed. If you find one, hire them and don’t let them go!
What skills do you think are needed by developers to develop effective web applications?