{"id":14887,"date":"2015-11-13T08:00:09","date_gmt":"2015-11-13T13:00:09","guid":{"rendered":"https:\/\/simpleprogrammer.com\/?p=14887"},"modified":"2018-04-13T12:08:02","modified_gmt":"2018-04-13T16:08:02","slug":"dont-go-chasing-waterfall","status":"publish","type":"post","link":"https:\/\/simpleprogrammer.com\/dont-go-chasing-waterfall\/","title":{"rendered":"Don&#8217;t Go Chasing Waterfall"},"content":{"rendered":"<p>Working in software, you\u2019ll find three general models for process workflow: SDLC\/Waterfall, Kanban, and Scrum. If you\u2019re on a Waterfall project, stop what you\u2019re doing and go jump out a window. (Kidding. Mostly. Use a parachute\u2026.) If you have a good management team and a good set of colleagues, even if you\u2019re on an SDLC\/Waterfall project, the idea would be to move the operational strategy more in the direction of agile development processes. But which one is the right one? Why doesn\u2019t Waterfall work in software?\\n\\nIf you\u2019re on an agile project, you should note that there\u2019s no such thing as a cookie-cutter development process. That\u2019s what makes it agile; it\u2019s flexible and malleable so that as the engineering team evolves to meet the needs of the customers, the process can evolve with them. One of Waterfall\u2019s biggest weaknesses is its extreme rigidity, making it ill-suited for any agile project you\u2019re doing.\\n\\nIn truth, Waterfall works for certain kinds of projects, but those projects don\u2019t tend to move software around, and they tend to have a predictable process. Nothing about software is ever predictable, and this is generally why Waterfall does not work in software. Waterfall thrives on predictability.\\n\\nRegardless, for any solid process to work, a crucial foundational point has to be in place. For instance, Kanban works to limit Work in Progress. Scrum works to limit Scope. Both work to tighten feedback loops between idea and production.\\n\\n<\/p>\n<h1>Waterfall: Not For Programmer Consumption<\/h1>\n<p>\\n\\n<img loading=\"lazy\" decoding=\"async\" class=\"alignleft size-medium wp-image-14925\" src=\"https:\/\/simpleprogrammer.com\/wp-content\/uploads\/2015\/11\/Depositphotos_76902457_m-2015-1-300x300.jpg\" alt=\"young man scratching head on a white background\" width=\"300\" height=\"300\" srcset=\"https:\/\/simpleprogrammer.com\/wp-content\/uploads\/2015\/11\/Depositphotos_76902457_m-2015-1-300x300.jpg 300w, https:\/\/simpleprogrammer.com\/wp-content\/uploads\/2015\/11\/Depositphotos_76902457_m-2015-1-150x150.jpg 150w, https:\/\/simpleprogrammer.com\/wp-content\/uploads\/2015\/11\/Depositphotos_76902457_m-2015-1-768x768.jpg 768w, https:\/\/simpleprogrammer.com\/wp-content\/uploads\/2015\/11\/Depositphotos_76902457_m-2015-1.jpg 1000w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/>Don\u2019t get me wrong, I\u2019m sure some programmer somewhere got to participate in a Waterfall project, and everything was amazingly well done. Probably. Waterfall as a project management discipline works pretty well in fields where you have a good idea of the estimated time going into the work. If you\u2019re building a house, Waterfall is probably OK, and even preferred, because you want to get the plumber on site at the right time\u2014plumbers are expensive.\\n\\nOn a software project, the unpredictability of doing something brand new that was likely never done before makes it very difficult for Waterfall to work. Since this article is directed at more advanced programmers, I\u2019m not going to spend time explaining how it works, so if you <a href=\"https:\/\/en.wikipedia.org\/wiki\/Waterfall_model\">really want to know you can look here.<\/a>\\n\\nThe reasons why Waterfall doesn\u2019t work well for software include:\\n\\n<\/p>\n<ol>\\n    <\/p>\n<li>Rigid timelines that make adjusting for unknowns impossible.<\/li>\n<p>\\n    <\/p>\n<li>An inflexible scope that doesn\u2019t respond to changing customer needs.<\/li>\n<p>\\n    <\/p>\n<li>A long feedback loop between idea and measurement.<\/li>\n<p>\\n    <\/p>\n<li>Not being amenable to measurements\/adjustments\/reactions.<\/li>\n<p>\\n<\/ol>\n<p>\\n\\n<\/p>\n<h1>Agile: A Multifaceted Spectrum<\/h1>\n<p>\\n\\nOn the other end of the engineering spectrum is the agile development concept. There\u2019s two general mechanisms for this: Kanban and Scrum.\\n\\n<\/p>\n<h1>What&#8217;s a Kanban?<\/h1>\n<p>\\n\\nAccording to Google\u2019s dictionary, the literal definition of <a href=\"https:\/\/simpleprogrammer.com\/2010\/04\/28\/the-kanbandand-guide\/\">Kanban<\/a> helps explain how the mechanism works and is stated as \u201ca Japanese manufacturing system in which the supply of components is regulated through the use of a card displaying a sequence of specifications and instructions, sent along the production line.\u201d Also, Google tells us the origin derives from \u201cBillboard\u201d or \u201cSign.\u201d\\n\\n<\/p>\n<h2>Car Manufacturing?<\/h2>\n<p>\\n\\n<img loading=\"lazy\" decoding=\"async\" class=\"alignright size-medium wp-image-14926\" src=\"https:\/\/simpleprogrammer.com\/wp-content\/uploads\/2015\/11\/Depositphotos_42826621_m-2015-1-300x300.jpg\" alt=\"Kanban Word Circle Concept\" width=\"300\" height=\"300\" srcset=\"https:\/\/simpleprogrammer.com\/wp-content\/uploads\/2015\/11\/Depositphotos_42826621_m-2015-1-300x300.jpg 300w, https:\/\/simpleprogrammer.com\/wp-content\/uploads\/2015\/11\/Depositphotos_42826621_m-2015-1-150x150.jpg 150w, https:\/\/simpleprogrammer.com\/wp-content\/uploads\/2015\/11\/Depositphotos_42826621_m-2015-1-768x768.jpg 768w, https:\/\/simpleprogrammer.com\/wp-content\/uploads\/2015\/11\/Depositphotos_42826621_m-2015-1.jpg 1000w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/>The general idea of Kanban is that you have different columns on a board that represent issue statuses. And your whole team works to limit WIP (Work in Progress) in any one of those columns.\\n\\nThe Kanban process centers around bottleneck identification and elimination. Each lane on a Kanban board serves as a single step in the production process. If any one lane starts to fill up, the entire team stops and figures out what&#8217;s causing the blockage. This was adopted directly from car manufacturing. If one station in the output becomes a bottleneck, everyone works together to eliminate that bottleneck to optimize throughput.\\n\\nIf you have ever used Trello for team or personal management, it\u2019s Kanban in a nutshell. You put cards on a board, and follow them to completion. Even though Trello is pretty darned simple, I actually prefer an even simpler setup using OneNote.\\n\\nHere\u2019s my personal Kanban board on OneNote. It has a few more than those three statuses in it, and it combines home life and work life, but it\u2019s still simple to use and understand:\\n\\n<figure id=\"attachment_14934\" aria-describedby=\"caption-attachment-14934\" style=\"width: 1000px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/simpleprogrammer.com\/wp-content\/uploads\/2015\/11\/OneNoteKanban.png\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-14934 size-full\" src=\"https:\/\/simpleprogrammer.com\/wp-content\/uploads\/2015\/11\/OneNoteKanban.png\" alt=\"OneNoteKanban\" width=\"1000\" height=\"635\" \/><\/a><figcaption id=\"caption-attachment-14934\" class=\"wp-caption-text\">(Click to view full size image &#8211; it&#8217;s less blurry!)<\/figcaption><\/figure>\\n\\n<a href=\"https:\/\/simpleprogrammer.com\/wp-content\/uploads\/2015\/11\/OneNoteKanban.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-medium wp-image-14930\" src=\"https:\/\/simpleprogrammer.com\/wp-content\/uploads\/2015\/11\/OneNoteKanban.png\" alt=\"OneNoteKanban\" width=\"1\" height=\"1\" \/><\/a>\\n\\n<\/p>\n<h2>That&#8217;s Oversimplified<\/h2>\n<p>\\n\\nWhile Kanban depends on the specific nuances of the team you&#8217;re on in order to work, in general it operates best in a fully-automated, continuous delivery environment. It&#8217;s much more difficult to run Kanban on a team that depends on manual deployment because one of the columns would be deployment, and everything would get stuck there.\\n\\nAnd a column with 300 cards in it is hardly easy to keep track of.\\n\\nIf you want more information about how Kanban can work effectively, there\u2019s an almost non-fiction book called <a href=\"http:\/\/www.amazon.com\/The-Phoenix-Project-Helping-Business\/dp\/0988262592\"><i>The Phoenix Project<\/i><\/a> that does a really good job explaining how to transition from a Waterfall mindset to a continuous delivery mindset. It\u2019s fun, and a bit silly\u2014but it definitely teaches the lessons of the continuous delivery concept well.\\n\\n<\/p>\n<h1>We Can\u2019t Really Kanban: Scrum to the Rescue?<\/h1>\n<p>\\n\\nIf you absolutely cannot build continuous deployment into your process, you&#8217;re going to have better luck attacking your project using Scrum.\\n\\nIf you want to spend time understanding how Scrum is supposed to work, <a href=\"http:\/\/www.scrumprimer.org\/scrumprimer20.pdf\">these guys did a fine job explaining the concept.<\/a>\\n\\nThe most important takeaway for making Scrum work is frozen scope. After you plan a sprint, nothing else gets in until the next sprint. That makes the sprint-planning meeting one of the most essential days in a Scrum sprint. Get the sprint scope right, and then don\u2019t let anybody change it. Period.\\n\\n<\/p>\n<h2>What About Fires?<\/h2>\n<p>\\n\\n<img loading=\"lazy\" decoding=\"async\" class=\"alignright wp-image-14927\" src=\"https:\/\/simpleprogrammer.com\/wp-content\/uploads\/2015\/11\/Depositphotos_69657309_m-2015.jpg\" alt=\"Big flame on forest fire\" width=\"300\" height=\"449\" \/>The best analogy I can come up with for <a href=\"http:\/\/www.amazon.com\/exec\/obidos\/ASIN\/1449331920\/makithecompsi-20\" target=\"_blank\">Scrum\/Kanban<\/a> is putting out a large forest fire.\\n\\nYou have to have two (or more) teams. One focuses on the parts of the forest that are already burning (Kanban) until the fire is out. The other focuses on the long term plan for preventing an as yet un-burnt forest from ignition (Scrum). The latter takes a different kind of planning and is proactive instead of reactive.\\n\\nThe best blend I see working well is a Kanban team dedicated to putting out the spot fires of escalated support, and a Scrum team dedicated to moving new scope and bug fixes forward by integrating product management into the single backlog.\\n\\nMore than anything else, for agile development to work in the general sense, you\u2019ll need to work with your peers and your product team to have a single, unified, and prioritized backlog. As long as the people managing your project get to decide what gets worked on first, the engineers get to decide how. A well governed backlog is critical for agile of any kind to work.\\n\\n<\/p>\n<h2>Should We Try Estimation?<\/h2>\n<p>\\n\\nPlanning poker is a pretty critical part of how Scrum operates if you take the process literally. Getting the right amount of scope planned into a sprint takes a pretty delicate balance. Whether or not you include estimation as part of this process, the general idea is to get better at planning out each sprint so that you only put as much into it as you can get done during the sprint timeline.\\n\\nAnd, if you do decide to use estimation, by all means focus on complexity. Estimating based on time will only give you an aneurysm. And you\u2019ll always be wrong.\\n\\nHonestly, the most agile places I\u2019ve worked don\u2019t really pay too much attention to actually estimating the timeline for getting much of anything done. Instead, it\u2019s wiser to focus on the most important stuff that goes at the top of the priority list, and work on it until it&#8217;s done. Then move on to the most important next thing. <a href=\"https:\/\/simpleprogrammer.com\/2015\/10\/19\/the-noestimates-movement\/\">If it\u2019s important, it doesn\u2019t matter how long it takes.<\/a> Granted, this takes continuous delivery to the ultimate extreme and really is a Kanban-only approach.\\n\\n<\/p>\n<h1>Keep It Simple<\/h1>\n<p>\\n\\nAfter all, this is <a href=\"https:\/\/simpleprogrammer.com\/softskills\" target=\"_blank\">Simple Programmer<\/a>, right? The most important thing to do when you start making adjustments in your workflow is simplification. Start with a simple board that has three statuses on it: To Do, In Progress, Done. Hopefully, that workflow is painfully obvious, but if not:\\n\\nTo Do: You (or your team) haven\u2019t started on these things yet. The most important stuff is at the top.\\n\\n<\/p>\n<ul>\\n    <\/p>\n<li>In Progress: You (or your team) are working on these tasks actively moving them towards done.<\/li>\n<p>\\n    <\/p>\n<li>Done: It\u2019s in production and doing what it\u2019s supposed to do.<\/li>\n<p>\\n<\/ul>\n<p>\\n\\nThe concept of software really does boil down to just one thing: getting it deployed. There\u2019s tons of methods for getting it there, but they all end up in the same place: code that\u2019s in an executable or website of some kind.\\n\\n<img loading=\"lazy\" decoding=\"async\" class=\"alignleft wp-image-14928\" src=\"https:\/\/simpleprogrammer.com\/wp-content\/uploads\/2015\/11\/Depositphotos_47778331_m-2015.jpg\" alt=\"There are a few brilliant ideas here!\" width=\"350\" height=\"233\" \/>If you wanted to get really simple, do what some of my project management focused colleagues recommend, and start analogue. Find a big blank wall, get some sticky notes or some index cards that you can tape to the wall, and physically move the cards around. Visibility is obviously key because you want everyone to know what everyone else is working on.\\n\\nAlso, check in with one another for a quick session to kick off (or close out) each work day. Look at wherever your board is, talk about the issues on it, and talk about anything holding up progress. Then get to work. The whole purpose of this check-in should answer:\\n\\n<\/p>\n<ul>\\n    <\/p>\n<li>\u201cWhat did I do yesterday (today)?\u201d<\/li>\n<p>\\n    <\/p>\n<li>\u201cWhat am I doing today (tomorrow)?\u201d<\/li>\n<p>\\n    <\/p>\n<li>\u201cIs anything in my way?\u201d<\/li>\n<p>\\n<\/ul>\n<p>\\n\\nAdditionally, think about one simple concept that really makes sense: if it hurts, do it more often, as frequently as possible. Keep doing it until it stops hurting. This can be anything. Test code, deployment, writing a spec, and so on and so forth. Find the stuff that really annoys the team, and keep doing it and optimizing it until it doesn\u2019t hurt.\\n\\n<\/p>\n<h1>One Backlog to Rule Them All<\/h1>\n<p>\\n\\nMore than any other thing you can do to make an agile project work well is a prioritized and organized backlog. Make sure that the whole team is working from the same work queue. How you decide to divvy up the work and choose the most important tasks depends on the dynamics of your team. But make sure there\u2019s only one list.\\n\\nFinally, make sure everyone on the team, and in the entire company, knows exactly what\u2019s on there and why it\u2019s there. If everyone you work with and around knows what everyone else is doing and why it\u2019s a priority, then the rest of the process can improve over time\u2014and you\u2019ll always have plenty of time to improve it.\\n\\n<\/p>\n<h1>Moving Along The Agility Spectrum<\/h1>\n<p>\\n\\nRegardless of the work situation you find yourself in, you\u2019ll want to take steps to move towards a <a href=\"https:\/\/simpleprogrammer.com\/2010\/04\/26\/kanbanand-the-new-agile-process-you-have-already-been-following\/\">more agile <\/a>approach. Granted, not everyone thinks agile approaches are the right approaches. Kanban style development pushes a team as close as possible to true continuous delivery. Realistically, this doesn\u2019t always jive with organizational direction.\\n\\nWhat do you think? Can we fix processes that don\u2019t concentrate on flexibility and agility? Or is the software engineering profession really leaving rigidity in the dust?<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Working in software, you\u2019ll find three general models for process workflow: SDLC\/Waterfall, Kanban, and Scrum. If you\u2019re on a Waterfall project, stop what you\u2019re doing and go jump out a window. (Kidding. Mostly. Use a parachute\u2026.) If you have a good management team and a good set of colleagues, even if you\u2019re on an SDLC\/Waterfall&#8230;<\/p>\n","protected":false},"author":26,"featured_media":14924,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_kad_post_transparent":"","_kad_post_title":"","_kad_post_layout":"","_kad_post_sidebar_id":"","_kad_post_content_style":"","_kad_post_vertical_padding":"","_kad_post_feature":"","_kad_post_feature_position":"","_kad_post_header":false,"_kad_post_footer":false,"_kad_post_classname":"","footnotes":""},"categories":[162229812,11287,2185,1136966,162229840,162229823],"tags":[],"class_list":["post-14887","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-advice","category-agile","category-best-practices","category-kanban","category-skills","category-software"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.6 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Don&#039;t Go Chasing Waterfall - Simple Programmer<\/title>\n<meta name=\"description\" content=\"A comparison of the spectrum of project management that we encounter as software engineers from Waterfall to Agile.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/simpleprogrammer.com\/products\/careerguide\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Don&#039;t Go Chasing Waterfall - Simple Programmer\" \/>\n<meta property=\"og:description\" content=\"A comparison of the spectrum of project management that we encounter as software engineers from Waterfall to Agile.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/simpleprogrammer.com\/products\/careerguide\" \/>\n<meta property=\"og:site_name\" content=\"Simple Programmer\" \/>\n<meta property=\"article:published_time\" content=\"2015-11-13T13:00:09+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2018-04-13T16:08:02+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/simpleprogrammer.com\/wp-content\/uploads\/2015\/11\/waterfall.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1089\" \/>\n\t<meta property=\"og:image:height\" content=\"598\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Ashok Sharma\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Ashok Sharma\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"10 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/simpleprogrammer.com\\\/products\\\/careerguide#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/simpleprogrammer.com\\\/dont-go-chasing-waterfall\\\/\"},\"author\":{\"name\":\"Ashok Sharma\",\"@id\":\"https:\\\/\\\/simpleprogrammer.com\\\/#\\\/schema\\\/person\\\/bb5ec6b6253595b9b22046a7a3aa9ffc\"},\"headline\":\"Don&#8217;t Go Chasing Waterfall\",\"datePublished\":\"2015-11-13T13:00:09+00:00\",\"dateModified\":\"2018-04-13T16:08:02+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/simpleprogrammer.com\\\/dont-go-chasing-waterfall\\\/\"},\"wordCount\":1992,\"commentCount\":10,\"image\":{\"@id\":\"https:\\\/\\\/simpleprogrammer.com\\\/products\\\/careerguide#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/simpleprogrammer.com\\\/wp-content\\\/uploads\\\/2015\\\/11\\\/waterfall.png\",\"articleSection\":[\"Advice\",\"Agile\",\"Best Practices\",\"Kanban\",\"Skills\",\"Software\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/simpleprogrammer.com\\\/products\\\/careerguide#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/simpleprogrammer.com\\\/dont-go-chasing-waterfall\\\/\",\"url\":\"https:\\\/\\\/simpleprogrammer.com\\\/products\\\/careerguide\",\"name\":\"Don't Go Chasing Waterfall - Simple Programmer\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/simpleprogrammer.com\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/simpleprogrammer.com\\\/products\\\/careerguide#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/simpleprogrammer.com\\\/products\\\/careerguide#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/simpleprogrammer.com\\\/wp-content\\\/uploads\\\/2015\\\/11\\\/waterfall.png\",\"datePublished\":\"2015-11-13T13:00:09+00:00\",\"dateModified\":\"2018-04-13T16:08:02+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/simpleprogrammer.com\\\/#\\\/schema\\\/person\\\/bb5ec6b6253595b9b22046a7a3aa9ffc\"},\"description\":\"A comparison of the spectrum of project management that we encounter as software engineers from Waterfall to Agile.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/simpleprogrammer.com\\\/products\\\/careerguide#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/simpleprogrammer.com\\\/products\\\/careerguide\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/simpleprogrammer.com\\\/products\\\/careerguide#primaryimage\",\"url\":\"https:\\\/\\\/simpleprogrammer.com\\\/wp-content\\\/uploads\\\/2015\\\/11\\\/waterfall.png\",\"contentUrl\":\"https:\\\/\\\/simpleprogrammer.com\\\/wp-content\\\/uploads\\\/2015\\\/11\\\/waterfall.png\",\"width\":1089,\"height\":598},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/simpleprogrammer.com\\\/products\\\/careerguide#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/simpleprogrammer.com\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Don&#8217;t Go Chasing Waterfall\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/simpleprogrammer.com\\\/#website\",\"url\":\"https:\\\/\\\/simpleprogrammer.com\\\/\",\"name\":\"Simple Programmer\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/simpleprogrammer.com\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/simpleprogrammer.com\\\/#\\\/schema\\\/person\\\/bb5ec6b6253595b9b22046a7a3aa9ffc\",\"name\":\"Ashok Sharma\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/7df48a5f0f85d4dc3fb033c894235ba7d6379a8e940e2dac1e75e3d492ae04cf?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/7df48a5f0f85d4dc3fb033c894235ba7d6379a8e940e2dac1e75e3d492ae04cf?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/7df48a5f0f85d4dc3fb033c894235ba7d6379a8e940e2dac1e75e3d492ae04cf?s=96&d=mm&r=g\",\"caption\":\"Ashok Sharma\"},\"url\":\"https:\\\/\\\/simpleprogrammer.com\\\/author\\\/ashoksharma\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Don't Go Chasing Waterfall - Simple Programmer","description":"A comparison of the spectrum of project management that we encounter as software engineers from Waterfall to Agile.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/simpleprogrammer.com\/products\/careerguide","og_locale":"en_US","og_type":"article","og_title":"Don't Go Chasing Waterfall - Simple Programmer","og_description":"A comparison of the spectrum of project management that we encounter as software engineers from Waterfall to Agile.","og_url":"https:\/\/simpleprogrammer.com\/products\/careerguide","og_site_name":"Simple Programmer","article_published_time":"2015-11-13T13:00:09+00:00","article_modified_time":"2018-04-13T16:08:02+00:00","og_image":[{"width":1089,"height":598,"url":"https:\/\/simpleprogrammer.com\/wp-content\/uploads\/2015\/11\/waterfall.png","type":"image\/png"}],"author":"Ashok Sharma","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Ashok Sharma","Est. reading time":"10 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/simpleprogrammer.com\/products\/careerguide#article","isPartOf":{"@id":"https:\/\/simpleprogrammer.com\/dont-go-chasing-waterfall\/"},"author":{"name":"Ashok Sharma","@id":"https:\/\/simpleprogrammer.com\/#\/schema\/person\/bb5ec6b6253595b9b22046a7a3aa9ffc"},"headline":"Don&#8217;t Go Chasing Waterfall","datePublished":"2015-11-13T13:00:09+00:00","dateModified":"2018-04-13T16:08:02+00:00","mainEntityOfPage":{"@id":"https:\/\/simpleprogrammer.com\/dont-go-chasing-waterfall\/"},"wordCount":1992,"commentCount":10,"image":{"@id":"https:\/\/simpleprogrammer.com\/products\/careerguide#primaryimage"},"thumbnailUrl":"https:\/\/simpleprogrammer.com\/wp-content\/uploads\/2015\/11\/waterfall.png","articleSection":["Advice","Agile","Best Practices","Kanban","Skills","Software"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/simpleprogrammer.com\/products\/careerguide#respond"]}]},{"@type":"WebPage","@id":"https:\/\/simpleprogrammer.com\/dont-go-chasing-waterfall\/","url":"https:\/\/simpleprogrammer.com\/products\/careerguide","name":"Don't Go Chasing Waterfall - Simple Programmer","isPartOf":{"@id":"https:\/\/simpleprogrammer.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/simpleprogrammer.com\/products\/careerguide#primaryimage"},"image":{"@id":"https:\/\/simpleprogrammer.com\/products\/careerguide#primaryimage"},"thumbnailUrl":"https:\/\/simpleprogrammer.com\/wp-content\/uploads\/2015\/11\/waterfall.png","datePublished":"2015-11-13T13:00:09+00:00","dateModified":"2018-04-13T16:08:02+00:00","author":{"@id":"https:\/\/simpleprogrammer.com\/#\/schema\/person\/bb5ec6b6253595b9b22046a7a3aa9ffc"},"description":"A comparison of the spectrum of project management that we encounter as software engineers from Waterfall to Agile.","breadcrumb":{"@id":"https:\/\/simpleprogrammer.com\/products\/careerguide#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/simpleprogrammer.com\/products\/careerguide"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/simpleprogrammer.com\/products\/careerguide#primaryimage","url":"https:\/\/simpleprogrammer.com\/wp-content\/uploads\/2015\/11\/waterfall.png","contentUrl":"https:\/\/simpleprogrammer.com\/wp-content\/uploads\/2015\/11\/waterfall.png","width":1089,"height":598},{"@type":"BreadcrumbList","@id":"https:\/\/simpleprogrammer.com\/products\/careerguide#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/simpleprogrammer.com\/"},{"@type":"ListItem","position":2,"name":"Don&#8217;t Go Chasing Waterfall"}]},{"@type":"WebSite","@id":"https:\/\/simpleprogrammer.com\/#website","url":"https:\/\/simpleprogrammer.com\/","name":"Simple Programmer","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/simpleprogrammer.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/simpleprogrammer.com\/#\/schema\/person\/bb5ec6b6253595b9b22046a7a3aa9ffc","name":"Ashok Sharma","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/7df48a5f0f85d4dc3fb033c894235ba7d6379a8e940e2dac1e75e3d492ae04cf?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/7df48a5f0f85d4dc3fb033c894235ba7d6379a8e940e2dac1e75e3d492ae04cf?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/7df48a5f0f85d4dc3fb033c894235ba7d6379a8e940e2dac1e75e3d492ae04cf?s=96&d=mm&r=g","caption":"Ashok Sharma"},"url":"https:\/\/simpleprogrammer.com\/author\/ashoksharma\/"}]}},"_links":{"self":[{"href":"https:\/\/simpleprogrammer.com\/wp-json\/wp\/v2\/posts\/14887","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/simpleprogrammer.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/simpleprogrammer.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/simpleprogrammer.com\/wp-json\/wp\/v2\/users\/26"}],"replies":[{"embeddable":true,"href":"https:\/\/simpleprogrammer.com\/wp-json\/wp\/v2\/comments?post=14887"}],"version-history":[{"count":0,"href":"https:\/\/simpleprogrammer.com\/wp-json\/wp\/v2\/posts\/14887\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/simpleprogrammer.com\/wp-json\/wp\/v2\/media\/14924"}],"wp:attachment":[{"href":"https:\/\/simpleprogrammer.com\/wp-json\/wp\/v2\/media?parent=14887"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/simpleprogrammer.com\/wp-json\/wp\/v2\/categories?post=14887"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/simpleprogrammer.com\/wp-json\/wp\/v2\/tags?post=14887"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}