{"componentChunkName":"component---node-modules-gatsby-theme-medium-to-own-blog-src-templates-blog-post-js","path":"/shoot-for-simplicity/","result":{"data":{"site":{"siteMetadata":{"siteUrl":"https://javame.netlify.app","githubUrl":"https://github.com/aterreno/blog"}},"mdx":{"fields":{"slug":"/shoot-for-simplicity/"},"excerpt":"I really loved a couple of phrases from the Ted’s blog post \" Agile is treating the symptoms, not the disease \": the title and the last…","timeToRead":2,"frontmatter":{"title":"Shoot for simplicity","description":"","categories":[],"date":"October 19, 2009","canonical_link":"https://javame.netlify.app//shoot-for-simplicity-53304d2156e5"},"body":"function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n/* @jsxRuntime classic */\n\n/* @jsx mdx */\nvar _frontmatter = {\n  \"title\": \"Shoot for simplicity\",\n  \"description\": \"\",\n  \"date\": \"2009-10-19T00:00:00.000Z\",\n  \"categories\": [],\n  \"published\": true,\n  \"canonical_link\": \"https://javame.netlify.app//shoot-for-simplicity-53304d2156e5\",\n  \"redirect_from\": [\"/shoot-for-simplicity-53304d2156e5\"]\n};\nvar layoutProps = {\n  _frontmatter: _frontmatter\n};\nvar MDXLayout = \"wrapper\";\nreturn function MDXContent(_ref) {\n  var components = _ref.components,\n      props = _objectWithoutProperties(_ref, [\"components\"]);\n\n  return mdx(MDXLayout, _extends({}, layoutProps, props, {\n    components: components,\n    mdxType: \"MDXLayout\"\n  }), mdx(\"p\", null, \"I really loved a couple of phrases from the Ted\\u2019s blog post \\u201D\", mdx(\"a\", _extends({\n    parentName: \"p\"\n  }, {\n    \"href\": \"http://blogs.tedneward.com/2009/10/12/quotAgile+Is+Treating+The+Symptoms+Not+The+Diseasequot.aspx\",\n    \"target\": \"_blank\",\n    \"rel\": \"nofollow noopener noreferrer\"\n  }), \"Agile is treating the symptoms, not the disease\"), \"\\u201D: the title and the last sentence: \\u201D\", mdx(\"em\", {\n    parentName: \"p\"\n  }, \"We are in desperate need of simplicity in this industry\"), \".\\u201C.\"), mdx(\"p\", null, mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"Complexity\")), mdx(\"p\", null, \"Writing software it is still way to complex in these days.\", mdx(\"br\", {\n    parentName: \"p\"\n  }), \"\\n\", \"I can recall few attempts to make it easier, they all failed: Java Enterprise & EJBs, Web Services, Enterprise Service Bus.\", mdx(\"br\", {\n    parentName: \"p\"\n  }), \"\\n\", \"Rather than making things simple they forced you to write more code, to use lots of xml, tons of libraries, implementing unnecessary interfaces.\", mdx(\"br\", {\n    parentName: \"p\"\n  }), \"\\n\", \"How many days do you waste every time you start a project, just in infrastructure & build files?\"), mdx(\"p\", null, \"REST seems so simple, but implementing REST in the right way seems always so damn complicated, so everybody writes RESTish services, a good progress compared to old style web services but still\\u2026\"), mdx(\"p\", null, \"What about web applications?\", mdx(\"br\", {\n    parentName: \"p\"\n  }), \"\\n\", \"I like the simplicity that can be achieved with \", mdx(\"a\", _extends({\n    parentName: \"p\"\n  }, {\n    \"href\": \"http://www.sinatrarb.com/\",\n    \"target\": \"_blank\",\n    \"rel\": \"nofollow noopener noreferrer\"\n  }), \"Sinatra\"), \", \", mdx(\"a\", _extends({\n    parentName: \"p\"\n  }, {\n    \"href\": \"http://liftweb.net/\",\n    \"title\": \"Lift \",\n    \"target\": \"_blank\",\n    \"rel\": \"nofollow noopener noreferrer\"\n  }), \"Scala\"), \" , \", mdx(\"a\", _extends({\n    parentName: \"p\"\n  }, {\n    \"href\": \"http://common-lisp.net/project/cl-weblocks/\",\n    \"target\": \"_blank\",\n    \"rel\": \"nofollow noopener noreferrer\"\n  }), \"WebLocks\"), \" and \", mdx(\"a\", _extends({\n    parentName: \"p\"\n  }, {\n    \"href\": \"http://www.seaside.st/\",\n    \"target\": \"_blank\",\n    \"rel\": \"nofollow noopener noreferrer\"\n  }), \"Seaside\"), \".\", mdx(\"br\", {\n    parentName: \"p\"\n  }), \"\\n\", \"But still, the impression is that nobody is trying hard enough to make all these things even simpler.\"), mdx(\"p\", null, mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"The Twitter example\")), mdx(\"p\", null, \"I\\u2019ve started using \", mdx(\"a\", _extends({\n    parentName: \"p\"\n  }, {\n    \"href\": \"http://twitter.com/javame\",\n    \"target\": \"_blank\",\n    \"rel\": \"nofollow noopener noreferrer\"\n  }), \"Twitter\"), \" only few months ago (even if I\\u2019ve the account since 2006\\u2026), it started to make sense when I\\u2019ve linked it to my \", mdx(\"a\", _extends({\n    parentName: \"p\"\n  }, {\n    \"href\": \"http://www.facebook.com/\",\n    \"target\": \"_blank\",\n    \"rel\": \"nofollow noopener noreferrer\"\n  }), \"Facebook\"), \" account. Facebook is like software in these days: way too complex.\", mdx(\"br\", {\n    parentName: \"p\"\n  }), \"\\n\", \"Too much stuff, too much noise, too difficult to get what you really want.\", mdx(\"br\", {\n    parentName: \"p\"\n  }), \"\\n\", \"Then I\\u2019ve started to use \", mdx(\"a\", _extends({\n    parentName: \"p\"\n  }, {\n    \"href\": \"http://twitterfeed.com\",\n    \"target\": \"_blank\",\n    \"rel\": \"nofollow noopener noreferrer\"\n  }), \"TwitterFeed\"), \" as well, I\\u2019ve \", mdx(\"a\", _extends({\n    parentName: \"p\"\n  }, {\n    \"href\": \"http://www.flickr.com/photos/aterreno/\",\n    \"target\": \"_blank\",\n    \"rel\": \"nofollow noopener noreferrer\"\n  }), \"my flickr\"), \", \", mdx(\"a\", _extends({\n    parentName: \"p\"\n  }, {\n    \"href\": \"http://www.google.com/reader/shared/antonio.terreno\",\n    \"target\": \"_blank\",\n    \"rel\": \"nofollow noopener noreferrer\"\n  }), \"google reader\"), \" and \", mdx(\"a\", _extends({\n    parentName: \"p\"\n  }, {\n    \"href\": \"http://www.tripit.com/people/aterreno\",\n    \"target\": \"_blank\",\n    \"rel\": \"nofollow noopener noreferrer\"\n  }), \"tripit\"), \" profiles feeding the twitter account.\", mdx(\"br\", {\n    parentName: \"p\"\n  }), \"\\n\", \"So we have three content providers, one content consumer and forwarder and one content receiver, it\\u2019s a fairly complex architecture and it never failed so far, it\\u2019s quite stable, it just works.\", mdx(\"br\", {\n    parentName: \"p\"\n  }), \"\\n\", \"I didn\\u2019t had to write a line of code, I\\u2019ve pressed just few links, it all works using RSS in a RESTish way.\"), mdx(\"p\", null, mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"Simplicity\")), mdx(\"p\", null, \"How do you imagine software development in ten years?\", mdx(\"br\", {\n    parentName: \"p\"\n  }), \"\\n\", \"I do imagine it like in the twitter example, an aggregation and collaboration of few simple services working together.\"), mdx(\"p\", null, mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"The role of the Agile movement\")), mdx(\"p\", null, \"Agile is treating the symptoms, it\\u2019s true, I\\u2019ve seen many times agilists (including me) preaching for the old good principles (don\\u2019t reinvent the weel, keep it simple, etc) but how many times do we have to rewrite the same software?\", mdx(\"br\", {\n    parentName: \"p\"\n  }), \"\\n\", \"For how long will we have to rewrite the same objects, the same business logic?\"), mdx(\"p\", null, \"Why are we still writing web applications like ten years ago? Why are we still using Spring, Hibernate, Databases, Layered Architectures?\"), mdx(\"p\", null, \"I think it\\u2019s time for laziness, simplicity and more real reuse, somebody told me that it\\u2019s an utopia, but even only trying will make the IT world a better place to be.\"), mdx(\"p\", null, mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"Agile can cure the disease\")), mdx(\"p\", null, \"The Agile developer community, being so open minded and always embracing chance has a great chance to change the way software is written.\"), mdx(\"p\", null, \"There\\u2019s not so much new from a process point of view in these days (at least, that\\u2019s a complaint that I\\u2019ve heard from many people, especially coming back from big Agile gigs), but there\\u2019s so much work to do on the technical side of things.\"), mdx(\"p\", null, \"The \", mdx(\"a\", _extends({\n    parentName: \"p\"\n  }, {\n    \"href\": \"http://en.wikipedia.org/wiki/Nosql\",\n    \"target\": \"_blank\",\n    \"rel\": \"nofollow noopener noreferrer\"\n  }), \"NoSQL\"), \" movement is one of the signs that something new is just born and growing, don\\u2019t miss the opportunity.\"));\n}\n;\nMDXContent.isMDXComponent = true;"},"allWebMentionEntry":{"nodes":[]}},"pageContext":{"id":"534511d6-8668-5a8e-b5f8-2e4fa08cd8c4","previous":{"id":"0470a37e-1f7a-51f8-a74d-5098d2305efd","fields":{"slug":"/speaking-at-the-italian-agile-day/","published":true},"frontmatter":{"redirect_from":["/speaking-at-the-italian-agile-day-aaec1ea08cf2"],"redirect_to":null,"title":"Speaking at the Italian Agile Day"}},"next":{"id":"f873d5a9-3197-5aaf-b2ac-13c02722c4c5","fields":{"slug":"/5s-and-software-development/","published":true},"frontmatter":{"redirect_from":["/5s-and-software-development-39d18725f290"],"redirect_to":null,"title":"5S and Software Development"}},"permalink":"https://javame.netlify.app/shoot-for-simplicity/","themeOptions":{"plugins":[],"config":{"title":"Antonio Terreno","description":"Antonio Terreno's blog archive","shortBio":"","bio":"Principal Consultant at Equal Experts","author":"Antonio Terreno","githubUrl":"https://github.com/aterreno/blog","siteUrl":"https://javame.netlify.app/","social":{"twitter":"javame","medium":"","facebook":"","github":"aterreno","linkedin":"antonioterreno","instagram":"tritonitri"},"goatCounterCode":null}}}},"staticQueryHashes":["4131332129","645483741"]}