{"id":7004,"date":"2013-10-15T10:00:22","date_gmt":"2013-10-15T15:00:22","guid":{"rendered":"http:\/\/www.mrc-productivity.com\/blog\/?p=7004"},"modified":"2021-10-14T11:31:13","modified_gmt":"2021-10-14T16:31:13","slug":"5-new-realities-that-developers-must-learn-to-accept","status":"publish","type":"post","link":"https:\/\/www.mrc-productivity.com\/blog\/2013\/10\/5-new-realities-that-developers-must-learn-to-accept\/","title":{"rendered":"5 new realities that developers must learn to accept"},"content":{"rendered":"<p><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.mrc-productivity.com\/blog\/wp-content\/uploads\/2010\/11\/Education.jpg\" alt=\"Education\" width=\"76\" height=\"100\" class=\"alignleft size-full wp-image-725\" \/>Web application development has changed. Driven largely by the rise of mobile and the growth of cloud-based applications and services, modern web application development is much different than it was just five years ago. <\/p>\n<p>What\u2019s changed? I classify these changes into two categories: Trends and realities. What\u2019s the difference between a trend and a reality? A trend is optional. A reality is not. For instance, flat design is a trend. You don\u2019t have to use it, but many people do. The rise of mobile users is a reality. No matter how much you may tell yourself otherwise, you can\u2019t ignore the very real fact that smartphone and tablets are here to stay. <\/p>\n<p>Today, let\u2019s focus on the realities. How has web application development changed, and what new realities must web application developers learn to accept? We posed those questions to a few experienced developers, and they provided some excellent advice&#8211;which you will find below. Here are 5 new realities that developers must learn to accept:<br \/>\n<a name=\"20131014\"><\/a><!--more--><\/p>\n<h3>1. Your application will be attacked<\/h3>\n<p>In a well-known urban legend, the notorious bank robber, Willie Sutton, famously said that he robbed banks \u201cbecause that\u2019s where the money is.\u201d As more and more valuable data moves to the cloud, we\u2019re seeing modern-day robbers (hackers) attack web applications for the very same reason. That\u2019s where the money is. A single insecure web application can let a hacker access the personal (and financial) information needed to drain bank accounts, run up credit card bills, damage companies, and more.<\/p>\n<p>The problem: Finding insecure web apps isn\u2019t that hard. According a <a onclick=\"_gaq.push(['_trackEvent', 'Blog', 'Outside Link', 'Security Study']); \" href=\"http:\/\/www.isis.vanderbilt.edu\/sites\/default\/files\/main_0.pdf\" target=\"_blank\" rel=\"noopener\"><span style=\"color: red;font-weight: bold\">recent study<\/span><\/a>, 49% of web applications contain a high-risk vulnerability. I\u2019ve seen other studies that puts the number at 98% (which seems a little high). The point is&#8230;as we move more data to the web, proper security is absolutely essential&#8211;but web app developers are struggling to keep up.<\/p>\n<blockquote style=\"line-height: 1.7em; background-image: none; margin-left: 0; padding-left: 18px; height: auto;\"><p>\n&#8220;Security is the new reality for web developers \u2013 it can no longer be an after-thought and it especially cannot be something that is simply ignored,\u201d says Josh Little, Senior Security Consultant at <a onclick=\"_gaq.push(['_trackEvent', 'Blog', 'Source', 'VioPoint']); \" href=\"http:\/\/www.viopoint.com\/\" target=\"_blank\" rel=\"noopener\"><span style=\"color: red;font-weight: bold\">VioPoint<\/span><\/a> and founder of OWASP Detroit. \u201cThe good news is that most modern languages have strong, tested security frameworks that can be used to develop applications both quickly and securely if implemented correctly. Web developers can improve the security of their apps by gaining a familiarity at a high level with things like the OWASP Top 10 and how built-in and 3rd-party security frameworks can be used to address these vulnerabilities at the design phase and not after their app has been compromised.&#8221;\n<\/p><\/blockquote>\n<h3>2. There is no \u201ctypical\u201d web user<\/h3>\n<p>As mentioned above, we can no longer ignore the fact that mobile devices are here to stay. What does that mean for web application development? Well, we no longer know how users will access our web apps. Maybe they\u2019ll use a smartphone. Maybe they\u2019ll use a tablet. Maybe they\u2019ll use a PC. We don\u2019t know, and we can\u2019t control it. In other words, the concept of a \u201ctypical\u201d user has disappeared.<\/p>\n<blockquote style=\"line-height: 1.7em; background-image: none; margin-left: 0; padding-left: 18px; height: auto;\"><p>\n\u201cIt used to be taken as a given that people were browsing with a keyboard and mouse, and 800&#215;600 (as an example) was a reasonable test case &#8211; if the site was usable at that resolution you could consider it decent,\u201d says <a onclick=\"_gaq.push(['_trackEvent', 'Blog', 'Source', 'Sid Savara']); \" href=\"http:\/\/sidsavara.com\/\" target=\"_blank\" rel=\"noopener\"><span style=\"color: red;font-weight: bold\">Sid Savara<\/span><\/a>, Technical Manager at the University of Hawaii. \u201cNow the realities are that resolutions span from 320px on some phones to well over 2500px on desktop displays. Responsive design, and testing across more browsers and more varied hardware is the norm.\u201d\n<\/p><\/blockquote>\n<p>The fact is, developers must now approach development from multiple angles. How will this look and feel on a small, touch-based screen? How will this adapt to a large, high-definition display? What happens when a tablet user switches from landscape to portrait mode? These questions drive up the importance of responsive and\/or adaptive design. For those unfamiliar, here\u2019s a brief explanation of each: <\/p>\n<ul>\n<li><strong>Responsive design<\/strong> uses fluid grids and CSS3 media queries to adapt the app to various screen sizes and types. You can find examples of responsive design across the web, as it\u2019s widely used in web site design. For instance, <a href=\"http:\/\/thenextweb.com\/\" target=\"_blank\" rel=\"noopener\"><span style=\"color: red;font-weight: bold\">TheNextWeb<\/span><\/a> site is a great example of a responsive site. You\u2019ll notice that if you resize your browser, the site changes to fit the new size.<\/li>\n<li><strong>Adaptive design<\/strong> delivers a different HTML page depending on the device. For instance, a single web application may have 3 separate presentation (HTML) layers: One for PCs, one for tablets, and one for smartphones. Logic placed in the application identifies the user&#8217;s device and displays the correct layer. For example, visit this <a href=\"http:\/\/www.crazybikes.com\/mrcjava\/servlet\/CRAZYBIKES.I00010s\" target=\"_blank\" rel=\"noopener\"><span style=\"color: red;font-weight: bold\">web app<\/span><\/a> from different devices and notice how it looks and acts different. <\/li>\n<\/ul>\n<h3>3. Integration is the new normal<\/h3>\n<figure id=\"attachment_6894\" aria-describedby=\"caption-attachment-6894\" style=\"width: 200px\" class=\"wp-caption alignright\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.mrc-productivity.com\/blog\/wp-content\/uploads\/2013\/09\/small_4273913228.jpg\" alt=\"photo credit: Horia Varlan via photopin cc\" width=\"200\" height=\"133\" class=\"size-full wp-image-6894\" \/><figcaption id=\"caption-attachment-6894\" class=\"wp-caption-text\">photo credit: <a href=\"http:\/\/www.flickr.com\/photos\/horiavarlan\/4273913228\/\">Horia Varlan<\/a> via <a href=\"http:\/\/photopin.com\">photopin<\/a> <a href=\"http:\/\/creativecommons.org\/licenses\/by\/2.0\/\">cc<\/a><\/figcaption><\/figure>\n<p>Integration has become essential to web app development. In the past, developers built all the features and capabilities into the web application itself. Now, modern developers must not only focus on the application\u2019s features, but also integrating with outside apps and services.<\/p>\n<blockquote style=\"line-height: 1.7em; background-image: none; margin-left: 0; padding-left: 18px; height: auto;\"><p>\n\u201cAPI integration is exploding,\u201d says Joshua Maag, a long-time developer and CEO of <a onclick=\"_gaq.push(['_trackEvent', 'Blog', 'Source', 'SquareHook']); \" href=\"http:\/\/www.squarehook.com\/\" target=\"_blank\" rel=\"noopener\"><span style=\"color: red;font-weight: bold\">SquareHook<\/span><\/a>. \u201cMost large applications have some form of API that you can hook your applications into. Having a solid understanding of the Oauth 2.0 protocol is more important than ever to allow that interactivity between a website and tools like social media. With our application, we are using a dozen of these API&#8217;s to retrieve content from our user\u2019s favorite platforms.\u201d\n<\/p><\/blockquote>\n<h3>4. Development has shifted towards the client side<\/h3>\n<p>These days, users expect web applications that mimic desktop applications and native mobile applications. However, the need for more powerful web applications requires a change in development methods. <\/p>\n<p>In the past, the client-server model relied on the server doing the heavy lifting, and then sending the results to the client. Now, that\u2019s changing. As users demand stronger and more responsive web applications that rival native mobile apps and desktop software, more of the application must be put in the browser. <\/p>\n<blockquote style=\"line-height: 1.7em; background-image: none; margin-left: 0; padding-left: 18px; height: auto;\"><p>\n\u201cThe challenge I often see with web developers is the difficulty for them to grasp the new normal in the web,\u201d says Maag. \u201cIn the past, many of these developers were able to build stateless applications that relied primarily on server side technologies handling the heavy workloads of these web applications. These days however, there is much more emphasis on the client side as well as a lot of expectations that a website function more inline with what traditional desktop and now mobile apps have done.\u201d\n<\/p><\/blockquote>\n<blockquote style=\"line-height: 1.7em; background-image: none; margin-left: 0; padding-left: 18px; height: auto;\"><p>\nFortunately, as Maag explains, many frameworks have cropped up to ease the pain of this transition. \u201cThe great news is that there are a ton of excellent frameworks to help and it&#8217;s now important to understand their functioning,\u201d he says. \u201cjQuery and Bootstrap have had a large impact on the web. I heard recently, Bootstrap was now used by 1% of the entire web. That is a fairly significant number. There are also other great frameworks that help solve issues around namespacing with javascript. Angular and Backbone are great examples of frameworks that help.\u201d\n<\/p><\/blockquote>\n<h3>5. There\u2019s no excuse for bad architecture<\/h3>\n<p>While the importance of solid application architecture <a onclick=\"_gaq.push(['_trackEvent', 'Blog', 'Inside Link', 'Architecture']); \" href=\"https:\/\/www.mrc-productivity.com\/blog\/2013\/03\/application-architecture-ignore-at-your-own-risk\/\" target=\"_blank\" rel=\"noopener\"><span style=\"color: red;font-weight: bold\">cannot be overstated<\/span><\/a>, it was always the most time consuming and difficult part of the application. Without the proper resources and knowledge, developers built insecure, inflexible applications that couldn\u2019t scale.<\/p>\n<p>However, that\u2019s changing. With the rise of development platforms, Platform-as-a-Service (PaaS) offerings, and Infrastructure-as-a-Service (IaaS) options, developers can bypass the architecture headaches, and start every project with good architecture. In other words, there\u2019s really no excuse for bad application architecture. <\/p>\n<blockquote style=\"line-height: 1.7em; background-image: none; margin-left: 0; padding-left: 18px; height: auto;\"><p>\n\u201cFinally, with the increase of activity and new business in the PaaS and IaaS space, there is no longer a need for big expensive equipment to be a scalable application,\u201d explains Maag. \u201cDevelopers need to understand the architecture of their application and how they can design it for growth from the ground up. Looking at tools like Load Balancers and multiple server deployments are no longer exclusive to those larger organizations. Everyday, I help developers in a local business incubator solve these problems on any platform without a huge IT staff backing them. It is now easier than ever to build and experiment with truly scalable applications and I would devote time as a developer to learning one or more of these platforms as they seem to be the new norm in web development.\u201d\n<\/p><\/blockquote>\n<p>So, what do you think? Are there any other new realities that developers must learn to accept? Feel free to share in the comments.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Web application development has changed. Driven largely by the rise of mobile and the growth of cloud-based applications and services, modern web application development is much different than it was just five years ago. What\u2019s changed? I classify these changes into two categories: Trends and realities. What\u2019s the difference between a trend and a reality? &hellip;<\/p>\n<p class=\"read-more\"> <a class=\"\" href=\"https:\/\/www.mrc-productivity.com\/blog\/2013\/10\/5-new-realities-that-developers-must-learn-to-accept\/\"> <span class=\"screen-reader-text\">5 new realities that developers must learn to accept<\/span> Read More &raquo;<\/a><\/p>\n","protected":false},"author":4,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"site-sidebar-layout":"default","site-content-layout":"default","ast-global-header-display":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","slim_seo":{"title":"5 new realities that developers must learn to accept - mrc&#039;s Cup of Joe Blog","description":"Web application development has changed. Driven largely by the rise of mobile and the growth of cloud-based applications and services, modern web application de"},"footnotes":""},"categories":[8],"tags":[15],"class_list":["post-7004","post","type-post","status-publish","format-standard","hentry","category-education","tag-web-development"],"_links":{"self":[{"href":"https:\/\/www.mrc-productivity.com\/blog\/wp-json\/wp\/v2\/posts\/7004","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.mrc-productivity.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.mrc-productivity.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.mrc-productivity.com\/blog\/wp-json\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/www.mrc-productivity.com\/blog\/wp-json\/wp\/v2\/comments?post=7004"}],"version-history":[{"count":11,"href":"https:\/\/www.mrc-productivity.com\/blog\/wp-json\/wp\/v2\/posts\/7004\/revisions"}],"predecessor-version":[{"id":13147,"href":"https:\/\/www.mrc-productivity.com\/blog\/wp-json\/wp\/v2\/posts\/7004\/revisions\/13147"}],"wp:attachment":[{"href":"https:\/\/www.mrc-productivity.com\/blog\/wp-json\/wp\/v2\/media?parent=7004"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.mrc-productivity.com\/blog\/wp-json\/wp\/v2\/categories?post=7004"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.mrc-productivity.com\/blog\/wp-json\/wp\/v2\/tags?post=7004"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}