{"id":6754,"date":"2013-08-27T09:36:46","date_gmt":"2013-08-27T14:36:46","guid":{"rendered":"http:\/\/www.mrc-productivity.com\/blog\/?p=6754"},"modified":"2013-08-27T09:41:45","modified_gmt":"2013-08-27T14:41:45","slug":"7-things-experienced-web-developers-wish-they-knew-earlier","status":"publish","type":"post","link":"https:\/\/www.mrc-productivity.com\/blog\/2013\/08\/7-things-experienced-web-developers-wish-they-knew-earlier\/","title":{"rendered":"7 things experienced web developers wish they knew earlier"},"content":{"rendered":"<p><a href=\"https:\/\/www.mrc-productivity.com\/blog\/wp-content\/uploads\/2010\/11\/Education.jpg\"><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\" \/><\/a>We just passed our 30th anniversary of software development earlier this year. As I reflect back over that time, it\u2019s largely positive&#8230;but there are things I know now that I wish I knew starting out. After all, the more time you spend in any profession, the more you learn (hopefully). <\/p>\n<p>That got me thinking: I\u2019m sure everyone is like that. I\u2019m sure everyone could name one or two specific pieces of advice that they wish they knew earlier. Wouldn\u2019t that advice be useful to those just starting out? I think so.<\/p>\n<div class=\"alignright\">\n<img decoding=\"async\" src=\"https:\/\/www.mrc-productivity.com\/blog\/wp-content\/uploads\/2013\/08\/small__4999919941.jpg\" alt=\"Problem\" width=\"200\" height=\"150 class=\"alignleft size-full wp-image-6759\" \/><br \/>\n<i class=\"alignright\" style=\"clear: both; width: 200px;\">photo credit: <a href=\"http:\/\/www.flickr.com\/photos\/54027476@N07\/4999919941\/\">andy.brandon50<\/a> via <a href=\"http:\/\/photopin.com\">photopin<\/a> <a href=\"http:\/\/creativecommons.org\/licenses\/by-sa\/2.0\/\">cc<\/a><\/i>\n<\/div>\n<p>Today, I\u2019d like to explore that topic from a web application development angle. What do experienced web app developers know now that they wish they knew starting out? If developers could go back in time, what advice would they give to younger versions of themselves?<\/p>\n<p>We posed those questions to some experienced web app developers, and they provided some excellent advice&#8211;which can help web application developers of any skill level. I\u2019ve outlined their advice below, along with a few of my thoughts under each point. Here are 7 things that experienced developers wish they knew earlier:<br \/>\n<a name=\"20130826\"><\/a><!--more--><\/p>\n<h3>1. Know your users problems<\/h3>\n<p>Perhaps the most important advice you can give to anyone in any profession: Understand your users\/clients\/prospects, and the problems they\u2019re trying to solve. If your users ask for better reporting, don\u2019t run off and build the perfect reporting applications or find the best reporting tool. Understand what they mean by that. What are they trying to accomplish? What specific problems are they trying to solve? <\/p>\n<blockquote style=\"background-image: none; margin-left: 0; padding-left: 18px;\"><p>\nDavid Copeland, Software Developer and author of <a href=\"http:\/\/www.theseniorsoftwareengineer.com\/\" target=\"_blank\"><span style=\"color: red;font-weight: bold\">The Senior Software Engineer<\/span><\/a>, gives some great advice: \u201cTechnology choice is not nearly as important as having a good grasp of what problem is being solved and a clear understanding of how the proposed software is actually going to solve it.\u201d\n<\/p><\/blockquote>\n<p>Along the same lines, it\u2019s important to understand what your users\/prospects do currently. For instance, if your users want better reporting, what is their current solution like? If your solution doesn\u2019t solve their problem better than the current option, they won\u2019t use it.<\/p>\n<blockquote style=\"background-image: none; margin-left: 0; padding-left: 18px;\"><p>\nDaniel Crompton, Director of Technology at <a href=\"http:\/\/oplerno.com\/\" target=\"_blank\"><span style=\"color: red;font-weight: bold\">Oplerno<\/span><\/a>, shares some great advice along these lines: \u201cI wish I&#8217;d known earlier to ask potential users earlier whether this was a product that solved their problems better than their current solution.\u201d\n<\/p><\/blockquote>\n<h3>2. Do it right the first time<\/h3>\n<blockquote style=\"background-image: none; margin-left: 0; padding-left: 18px;\"><p>\n\u201cDo things cleanly now, because you are never going to go back and &#8220;clean up the mess&#8221;, not when there&#8217;s new features to add and new value to deliver,\u201d explains Copeland. \u201cMuch easier to take a bit of time up front to write clean code than to assume you&#8217;ll clean it up later.\u201d\n<\/p><\/blockquote>\n<p>This is one of the most important rules of web app development. While you tell yourself that you\u2019ll go back and fix the issue later, chances are&#8230;you won\u2019t. Instead, you\u2019re stuck maintaining and building new features over a flawed foundation. Taking the time to do things the right way will save hours of time and frustration in the future. <\/p>\n<h3>3. Build for the future<\/h3>\n<blockquote style=\"background-image: none; margin-left: 0; padding-left: 18px;\"><p>\n\u201cBefore making a solution to a problem, think if the solution is scalable and adaptable,\u201d says Brian Lee, Developer at <a href=\"http:\/\/triplelift.com\/\" target=\"_blank\"><span style=\"color: red;font-weight: bold\">TripleLift<\/span><\/a>. \u201cIt&#8217;s better to invest a bit more time in the beginning to save more work later.\u201d\n<\/p><\/blockquote>\n<p>Before you begin a new development project, ask yourself this question: \u201cWhat if this is wildly successful?\u201d What if your web application grows more than expected? Planning for success from the start will save you from re-creating the solution later on down the road.<\/p>\n<h3>4. Use frameworks\/tools <\/h3>\n<blockquote style=\"background-image: none; margin-left: 0; padding-left: 18px;\"><p>\n\u201cFamiliarize yourself early on with the web frameworks\/development tools available and what they have to offer,\u201d says Tyler Wassell, Software Development Manager at <a href=\"https:\/\/www.mrc-productivity.com\/index.html\" target=\"_blank\"><span style=\"color: red;font-weight: bold\">mrc<\/span><\/a>. \u201cCoding everything from start to finish is often unnecessary. Instead of trying to re-invent the wheel in each project, spend some time researching a web framework or development tool that eliminates the repetitive coding tasks and promotes stability, maintainability, and security. In the end it&#8217;s all about delivering quality solutions in an efficient manner and selecting the right tools will help save time and improve software reliability.\u201d\n<\/p><\/blockquote>\n<blockquote style=\"background-image: none; margin-left: 0; padding-left: 18px;\"><p>\nJonathan Weber, Founder of <a href=\"http:\/\/www.marathon-studios.com\/\" target=\"_blank\"><span style=\"color: red;font-weight: bold\">Marathon Studios, Inc.<\/span><\/a>, seconds that motion: \u201cMy two-word answer to this is \u2018web frameworks!\u2019 I started my career developing from scratch, and wasted countless hours re-inventing the wheel over and over before I discovered frameworks saved me that time.\u201d\n<\/p><\/blockquote>\n<p>The point: Sure, you can build everything from scratch&#8230;but chances are, someone has already created parts or all of the solution that you need. Using a tool or a framework lets you capitalize on solutions that already exist&#8211;and greatly reduce development time.<\/p>\n<h3>5. Know your strengths<\/h3>\n<blockquote style=\"background-image: none; margin-left: 0; padding-left: 18px;\"><p>\n\u201cYou can&#8217;t do everything yourself,\u201d says Jonathan Moore, Principal at <a href=\"http:\/\/www.trifectaky.com\/\" target=\"_blank\"><span style=\"color: red;font-weight: bold\">Trifecta<\/span><\/a>. \u201cStick to your strengths and find ways to delegate the other tasks.\u201d\n<\/p><\/blockquote>\n<p>That\u2019s not to say you shouldn\u2019t be constantly learning and teaching yourself new skills. But, if you\u2019re working on a development project, you must understand your strengths\/weaknesses. Sure, you could probably figure out how to solve a problem that you\u2019re unfamiliar with, but is there someone on your team who could do it in half the time?<\/p>\n<h3>6. Release early<\/h3>\n<blockquote style=\"background-image: none; margin-left: 0; padding-left: 18px;\"><p>\n\u201cRelease early with a minimal feature set,\u201d says Mark Rushworth, Head of Search at <a href=\"http:\/\/www.bluelogic.co.uk\/\" target=\"_blank\"><span style=\"color: red;font-weight: bold\">Blue Logic Web<\/span><\/a>. \u201cScope creep will stop your app being built and annoy your clients even tho\u2019 they\u2019re the ones causing the creep.\u201d\n<\/p><\/blockquote>\n<p>Seth Godin <a href=\"http:\/\/sethgodin.typepad.com\/seths_blog\/2005\/06\/great_enough.html\" target=\"_blank\"><span style=\"color: red;font-weight: bold\">sums it nicely<\/span><\/a> when he says, \u201cPerfect is the enemy of good.\u201d If you spend all of your time adding features or perfecting your application, it will never ship. Release the application with the basic features first, and add to it along the way.<\/p>\n<h3>7. Focus on simplicity<\/h3>\n<blockquote style=\"background-image: none; margin-left: 0; padding-left: 18px;\"><p>\n\u201cThe biggest thing I wish I knew when I started developing web apps was the importance of the little, time-saving conveniences for users,\u201d says Alex Zorach, Founder and Editor of <a href=\"http:\/\/ratetea.com\/\" target=\"_blank\"><span style=\"color: red;font-weight: bold\">RateTea.com<\/span><\/a>. \u201cThe biggest example was that when I made the site use persistent logins, rather than requiring users to log in each time, the number of reviews posted more than tripled! I suspected this change would be good for the site, but I never realized how big an impact it was&#8230;it was a tiny change that I had put off for too long and I wish I had done it from the start.\u201d\n<\/p><\/blockquote>\n<p>It\u2019s a simple rule: Make your user\u2019s lives as simple as possible. Oftentimes, it\u2019s the little things that make all the difference. Sure, implementing features like persistent logins or single sign-on may seem like small, unimportant details, but they make the application simpler for the user. As you know&#8211;the simpler the application, the more likely users will actually use it.<\/p>\n<p>So, what do you think? Would you add anything to the list? If so, I\u2019d love to hear it in the comments.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>We just passed our 30th anniversary of software development earlier this year. As I reflect back over that time, it\u2019s largely positive&#8230;but there are things I know now that I wish I knew starting out. After all, the more time you spend in any profession, the more you learn (hopefully). That got me thinking: I\u2019m &hellip;<\/p>\n<p class=\"read-more\"> <a class=\"\" href=\"https:\/\/www.mrc-productivity.com\/blog\/2013\/08\/7-things-experienced-web-developers-wish-they-knew-earlier\/\"> <span class=\"screen-reader-text\">7 things experienced web developers wish they knew earlier<\/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":"7 things experienced web developers wish they knew earlier - mrc&#039;s Cup of Joe Blog","description":"We just passed our 30th anniversary of software development earlier this year. As I reflect back over that time, it\u2019s largely positive...but there are things I"},"footnotes":""},"categories":[8],"tags":[36,15],"class_list":["post-6754","post","type-post","status-publish","format-standard","hentry","category-education","tag-web-applications","tag-web-development"],"_links":{"self":[{"href":"https:\/\/www.mrc-productivity.com\/blog\/wp-json\/wp\/v2\/posts\/6754","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=6754"}],"version-history":[{"count":18,"href":"https:\/\/www.mrc-productivity.com\/blog\/wp-json\/wp\/v2\/posts\/6754\/revisions"}],"predecessor-version":[{"id":6786,"href":"https:\/\/www.mrc-productivity.com\/blog\/wp-json\/wp\/v2\/posts\/6754\/revisions\/6786"}],"wp:attachment":[{"href":"https:\/\/www.mrc-productivity.com\/blog\/wp-json\/wp\/v2\/media?parent=6754"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.mrc-productivity.com\/blog\/wp-json\/wp\/v2\/categories?post=6754"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.mrc-productivity.com\/blog\/wp-json\/wp\/v2\/tags?post=6754"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}