Executive Insights on Web Application Development
The keys to developing web applications are planning, UX, and using appropriate tools and technologies to optimize developer productivity.
Join the DZone community and get the full member experience.
Join For FreeTo 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 Fallough, 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, Vice President of Product Management, Jitterbit
Faisal Memom, Product Marketing, NGINX
Bruno Correa, IT Coordinator, Ranstad (Brazil)
Craig Gering, Vice President of Engineering, Sencha
Joachim Wester, Founder, Starcounter
Michael Morris, CEO, Topcoder
Greg Law, CEO, Undo
Alexey Aylarov, CEO, Voximplant
Key Findings
The keys to developing sound web applications are planning, user experience (UX), and using the appropriate tools and technology to optimize developer productivity. It’s important to think through the requirements up front in order to choose the most appropriate platform, technology, and tools to deliver the project in the smartest and most efficient way. In order to do this, you must understand who and what you are building for and the definition of a “successful” application. Your application must provide a seamless UX across any browser and any device— including IoT—the right experience, on the right device, at the right time. Automate the process, including testing, with DevOps/ CI/CD. Anything that improves the quality of life for developers will improve the quality of applications.
The most significant changes to the development of web applications are platforms, tools, and the speed with which they have enabled developers to develop applications. Frameworks have matured, build systems have evolved, there are new architectural patterns, and movement to the cloud is enabling the standardization of advanced technology stacks. There’s an increasing set of tools for all budgets. Tools have become extremely easy to use and many are almost like 20th century magic that “write code for you.” Applications are developed and brought to the end user more quickly with design sprints that enable the development team to work more quickly.
The technical solutions used most frequently to develop web apps are JavaScript, AngularJS, ReactJS and Native, Node.js, and HTML5. Other solutions mentioned include: AWS, CSS, Docker, Ember, Java, NGINX, open source, Selenium, TypeScript, and Webpack.
Real-world problems solved by web applications are diverse with speed to market—securely and automatically—and making customers' lives simpler and easier across a variety of industries most frequently mentioned. Applications with APIs integrate with other applications automatically. A manufacturer of telecom chips uses process controls and predictive analytics to ensure chips will meet FCC regulations. Apps are empowered with voice and video calls. An app for NASA is helping astronauts keep up with their food intake. A staffing company in Brazil used an app to move from 75,000 job applicants, to 7,000 candidates who self-scheduled interviews picking the time and location most convenient for them. Airport dashboards, fleet tracking, car management, lot management, moving services, oil and gas taxing, device tracking, social media ranking, class pass for kids, kids healthy eating, LA metro patrons able to update fare balances, and students completing all of the steps in their enrollment—are just a few ways applications are improving life.
The most common issues affecting the development of web applications are the increased complexity of the platforms, tools, and languages and the lack of planning that goes into ensuring you are using the best solution for the problem at hand. The most prominent issue is the number of tools and languages available to accomplish the same thing and to be able to discern which solution to invest in. New JavaScript frameworks, versions of .NET, and Java are emerging every week. Things tend to get too technical and too hard to integrate. Teams need to support a wide variety of device types, browsers, and operating systems, and the landscape is always changing with new versions and updates being released. In addition, people don’t think through what’s needed to solve the problem. Many people with inadequate backgrounds and conscientiousness are releasing applications that are neither secure nor user friendly. Instead of doing some basic pre-planning, authors choose to just jump in and develop what they think is the solution to the problem rather than determining the end-user need and problem to be solved.
The future of web applications will ultimately integrate across all devices providing a great user experience (UX). Virtual tools will continue to make web application development faster, simpler, and easier. Applications will integrate across devices with APIs providing a more integrated ecosystem. They will also be more integrated into our daily lives with IoT, wearables, and practical applications that make our lives easier and more manageable. Progressive web apps will provide the performance and functionality of native apps combined with the convenience of the web. In the end, the web wins due to its openness, flexibility, and convenience. WebAssembly technology will allow developers to use any programming language to create web apps. Rapid application development will kill complexity while increasing development speed.
The biggest concerns around the development of web applications are security and complexity—which can be addressed with planning. Security is still a big issue, with many websites not defaulting to SSL, and we’re replacing more “offline” apps with their web counterparts. Security needs to be done correctly with web apps and IoT since this will affect our homes, our cars, and our medical devices. There’s still a lack of planning upfront and this becomes critical as complexity increases. We need more standardization across browsers. Breaking changes introduced by new versions of consumed frameworks can be a nightmare. This increases the need to choose the right technology platform for the job.
The skills developers need to develop effective web applications are: agility, knowledge of the fundamentals, and knowing themselves. The technical landscape continues to rapidly evolve, and developers must be able to adapt to the changes. Great developers will freely abandon their own solutions when better ones come along. The best developers don’t always have the strongest technical experience, but they produce great work because they listen to, and empathize with, the end users and can honestly and objectively judge their own work to ensure they’re meeting the needs of the end user. Know the components of the application and the database frameworks. Understand the glue code, but don’t get too involved with it. The attitude of developers needs to scale with deployment and DevOps to bridge the gap. Developers need to become responsible for the operation of their code. Lastly, developers need 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 t for this.” Focus on your strengths.
Additional consideration with regard to developing web applications were wide ranging:
Productivity is about to see a dramatic change with artificial intelligence.
What are the big conferences for JavaScript? Is there a JavaOne equivalent?
Lack of thinking through requirements up front is killing a lot of applications today.
What’s your strategy for getting access to the IT talent you need? How do you plan to leverage the on-demand workforce? How does crowdsourcing and virtual labor fit into your company?
Does the business have clear visibility about how web development will help them achieve their goals?
What are the dynamics of an effective team? Are people working as a team to build something together?
How does a corporate culture impact software development and teamwork? Are DevOps/CI/CD driving application development or is application development driving the move to DevOps?
To ensure companies make the right technology choices, IT managers, developers, and executives need to work together and trust each other to solve business problems. Forming cross-functional teams is important for building relationships, so each group understands the value and perspective of the others
More Web Dev Goodness
If you'd like to see other articles in this guide, be sure to check out:
- Functional Reactive UI Programming
- Adding Authentication to a Web Application with Auth0, React, and JWT
Opinions expressed by DZone contributors are their own.
Trending
-
Impact Of ChatGPT on Software Testing Companies
-
Load Balancer High Availability With CockroachDB and HAProxy
-
Efficient Sharing Data in Ansible
-
Generics in Java and Their Implementation
Comments