{"id":4176,"date":"2018-11-27T16:13:35","date_gmt":"2018-11-27T09:13:35","guid":{"rendered":"https:\/\/news.adeptasiaconsulting.com\/?p=4176"},"modified":"2018-11-27T16:13:35","modified_gmt":"2018-11-27T09:13:35","slug":"the-tools-they-are-a-changing","status":"publish","type":"post","link":"https:\/\/news.adeptasiaconsulting.com\/the-tools-they-are-a-changing\/","title":{"rendered":"The tools, they are a-changing"},"content":{"rendered":"
\n

Building web services and smartphone apps, which is most of what I\u2019ve been doing professionally at HappyFunCorp<\/a>1<\/sup> for the last decade or so, used to be pretty straightforward. Not easy, but straightforward, especially when the client was a consumer startup, which so many of them were.<\/p>\n

The more we did the better we got at it. Design and write two native apps, usually iOS first and Android second. Don\u2019t skimp on the design. Connect them to a JSON API, usually written in Ruby on Rails, which also powered the web site. There\u2019s always a web site; consumers might only see the side which is a minimal billboard for the app, but there\u2019s essentially always also an admin site, to control features and aspects of the app.<\/p>\n

Design isn\u2019t as important for the admin site, so you can build that in something crude but effective like ActiveAdmin; why roll your own? Similarly, authentication is tricky and easy to get wrong, so use something like Devise, which comes with built-in hooks to Facebook and Twitter login. Design your database carefully. Use jQuery for dynamic in-browser manipulation since raw Javascript is such a nightmare. Argue about whether to use Rspec or Minitest for your server tests.<\/p>\n

All there? OK, roll it out to your Heroku scaling environment, so you can simply \u201cgit push\u201d to push to staging and production, with various levels of Postgres support, autoscaling, pipelines, Redis caching, Resque worker jobs, and so forth. If it\u2019s a startup, keep them on Heroku to see if they catch on, if they find the fabled product-market fit, not least because it helps you iterate faster. If so, at some point you have to graduate them to AWS, because Heroku only scales so far and it does so very expensively. If not, well, \u201cfail fast,\u201d right?<\/p>\n

Those were the days, my friends, those halcyon, long-gone days of (checks notes) five years ago. The days of a lot of grief, sure, but very little decision complexity. The smartphone boom was on, and the web boom was settling down, and everyone was still surfing those two tidal waves.<\/p>\n

Today? Well, today we still are, neither of those waves have broken, per se, software is still eating the world, but things are \u2026 different. More of the world is being eaten, but it\u2019s also happening more slowly, like growing 50% a year from a $1 billion base rather than 500% from $1 million. There are fewer starry-eyed founders with an app idea that they\u2019re sure will change the world and funding enough to give it a shot. Those are still out there, sure, and more power to them, but the landscape is more complex, now.<\/p>\n

Instead we see more big businesses, media and industrial and retail alike, realizing they must adapt and be devoured, experimenting with new tech projects with a combination of excitement and trepidation. Or requisitioning custom apps for very specific \u2014 but very useful \u2014 purposes, and requiring them to interface with their awkward pre-existing custom middleware just so. Or tech companies, even big household-name ones, outsourcing ancillary tools and projects in order to focus their in-house teams purely on their core competencies and business models. Our mix of clients has definitely shifted more towards enterprise in the last few years.<\/p>\n

Which is not to say that startups don\u2019t still come through our doors with bright ideas and inspiring PowerPoints on a fairly regular basis. As do super starry-eyed blockchain founders (granted, I\u2019m sometimes a bit starry-eyed about blockchains myself<\/a>) replacing the consumer-app founders of yore. I doubt we\u2019re alone in having had a spate of blockchain startup projects late last year and early this, which has diminished to only a couple active at the moment. (Not least because the tooling is still so crude it reminds me of 90s command-line hacking.) But I strongly doubt that sphere is going away.<\/p>\n

We haven\u2019t dealt with as many AI projects as I would have expected by now, probably partly because AI talent is still so scarce and highly valued, and partly because it turns out a lot of seeming \u201cAI\u201d work can be done with simple linear regressions rather than by building and training and tuning deep-learning neural networks\u2026 although if you do those linear regressions with TensorFlow, it\u2019s still \u201cAI\u201d buzzword-compliant, right? Right?<\/p>\n

Most of all, though, the tools we use have changed. Nowadays when you want to build an app, you have to ask yourself: really native? (Java or Kotlin? Objective-C or Swift?) Or React Native? Or Xamarin? Or Google\u2019s new Flutter thing? When you want to build a web site, you have to think: traditional? Or single-page, with React or Angular or Vue? As for the server \u2014 Go is a lot faster than Rails, you know, and oh, that elegant concurrency handling, but, oh, where is my map\/filter\/reduce? Javascript is still a clumsy language, but there are certain advantages to having one language across the stack, and Node is powerful and package-rich these days. And of course you\u2019ll want it all containerized, because while Docker definitely adds another layer or two of configuration complexity, it\u2019s usually worth it.<\/p>\n

Unless you want to go fully \u201cserverless,\u201d at least for aspects, with Amazon Lambda or Google Firebase? Even if you don\u2019t use Firebase for a datastore, how about for authentication, huh? And if you\u2019re all containerized, and Kubernetized if\/as appropriate, though maybe let\u2019s not go the many-microservices route until you\u2019re sure your product-market fit justifies it, then where do you want to roll it out, AWS or Azure or Google Cloud or Digital Ocean? Or do you want to use one of their PaaS services, like App Engine or Beanstalk, which, like Heroku, sorta kinda live between \u201cserverless\u201d and \u201cbare metal virtual machines\u201d?<\/p>\n

I oversimplify, but you get my point. We\u2019ve never had more options, as developers, more tools available to us \u2026 and we\u2019ve never had to struggle more with analysis paralysis, because it\u2019s awfully hard to determine which of the possible toolsets is the best one for any particular situation. Sometimes \u2014 often \u2014 we have to be happy with just selecting a good one. And that selection problem doesn\u2019t look like it\u2019s going to get easier anytime soon, I\u2019m afraid. It\u2019s a strange time to be a coder. We live and work all tangled up in an embarrassment of riches.<\/p>\n


\n

1<\/sup>Yes, that\u2019s really our name. No, this TC column isn\u2019t a full-time gig. (Which is something people frequently assume, because it\u2019s so much more visible and to some people writing a column every week sounds like a lot of work, but no, I\u2019m really a CTO.)<\/small><\/p>\n<\/div>\n","protected":false},"excerpt":{"rendered":"

Building web services and smartphone apps, which is most of what I\u2019ve been doing professionally at HappyFunCorp1 for the last decade or so, used to be pretty straightforward. Not easy, but straightforward, especially when the client was a consumer startup, which so many of them were. The more we did the better we got at […]<\/p>\n","protected":false},"author":4,"featured_media":4175,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"inline_featured_image":false},"categories":[6],"tags":[],"acf":[],"yoast_head":"\nThe tools, they are a-changing - Adept Asia Consulting<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/news.adeptasiaconsulting.com\/the-tools-they-are-a-changing\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"The tools, they are a-changing - Adept Asia Consulting\" \/>\n<meta property=\"og:description\" content=\"Building web services and smartphone apps, which is most of what I\u2019ve been doing professionally at HappyFunCorp1 for the last decade or so, used to be pretty straightforward. Not easy, but straightforward, especially when the client was a consumer startup, which so many of them were. The more we did the better we got at […]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/news.adeptasiaconsulting.com\/the-tools-they-are-a-changing\/\" \/>\n<meta property=\"og:site_name\" content=\"Adept Asia Consulting\" \/>\n<meta property=\"article:published_time\" content=\"2018-11-27T09:13:35+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/news.adeptasiaconsulting.com\/content\/uploads\/2018\/11\/9e09239ee256e1d9765b5034cdbd3e21.jpeg\" \/>\n\t<meta property=\"og:image:width\" content=\"960\" \/>\n\t<meta property=\"og:image:height\" content=\"640\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"admin\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"admin\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"6 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/news.adeptasiaconsulting.com\/the-tools-they-are-a-changing\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/news.adeptasiaconsulting.com\/the-tools-they-are-a-changing\/\"},\"author\":{\"name\":\"admin\",\"@id\":\"https:\/\/news.adeptasiaconsulting.com\/#\/schema\/person\/5240d375880690fc7df8c46ef5f8f9c8\"},\"headline\":\"The tools, they are a-changing\",\"datePublished\":\"2018-11-27T09:13:35+00:00\",\"dateModified\":\"2018-11-27T09:13:35+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/news.adeptasiaconsulting.com\/the-tools-they-are-a-changing\/\"},\"wordCount\":1133,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/news.adeptasiaconsulting.com\/#organization\"},\"articleSection\":[\"News\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/news.adeptasiaconsulting.com\/the-tools-they-are-a-changing\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/news.adeptasiaconsulting.com\/the-tools-they-are-a-changing\/\",\"url\":\"https:\/\/news.adeptasiaconsulting.com\/the-tools-they-are-a-changing\/\",\"name\":\"The tools, they are a-changing - Adept Asia Consulting\",\"isPartOf\":{\"@id\":\"https:\/\/news.adeptasiaconsulting.com\/#website\"},\"datePublished\":\"2018-11-27T09:13:35+00:00\",\"dateModified\":\"2018-11-27T09:13:35+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/news.adeptasiaconsulting.com\/the-tools-they-are-a-changing\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/news.adeptasiaconsulting.com\/the-tools-they-are-a-changing\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/news.adeptasiaconsulting.com\/the-tools-they-are-a-changing\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/news.adeptasiaconsulting.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"The tools, they are a-changing\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/news.adeptasiaconsulting.com\/#website\",\"url\":\"https:\/\/news.adeptasiaconsulting.com\/\",\"name\":\"Adept Asia Consulting\",\"description\":\"Consulting & Marketing Agency\",\"publisher\":{\"@id\":\"https:\/\/news.adeptasiaconsulting.com\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/news.adeptasiaconsulting.com\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/news.adeptasiaconsulting.com\/#organization\",\"name\":\"InterDigitel\",\"url\":\"https:\/\/news.adeptasiaconsulting.com\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/news.adeptasiaconsulting.com\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/news.adeptasiaconsulting.com\/content\/uploads\/2017\/07\/Inter_Digitel_Logo.png\",\"contentUrl\":\"https:\/\/news.adeptasiaconsulting.com\/content\/uploads\/2017\/07\/Inter_Digitel_Logo.png\",\"width\":300,\"height\":278,\"caption\":\"InterDigitel\"},\"image\":{\"@id\":\"https:\/\/news.adeptasiaconsulting.com\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/news.adeptasiaconsulting.com\/#\/schema\/person\/5240d375880690fc7df8c46ef5f8f9c8\",\"name\":\"admin\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/news.adeptasiaconsulting.com\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/717c84fea4845cf6840508c43f09a827?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/717c84fea4845cf6840508c43f09a827?s=96&d=mm&r=g\",\"caption\":\"admin\"},\"sameAs\":[\"https:\/\/news.adeptasiaconsulting.com\"],\"url\":\"https:\/\/news.adeptasiaconsulting.com\/author\/admin\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"The tools, they are a-changing - Adept Asia Consulting","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:\/\/news.adeptasiaconsulting.com\/the-tools-they-are-a-changing\/","og_locale":"en_US","og_type":"article","og_title":"The tools, they are a-changing - Adept Asia Consulting","og_description":"Building web services and smartphone apps, which is most of what I\u2019ve been doing professionally at HappyFunCorp1 for the last decade or so, used to be pretty straightforward. Not easy, but straightforward, especially when the client was a consumer startup, which so many of them were. The more we did the better we got at […]","og_url":"https:\/\/news.adeptasiaconsulting.com\/the-tools-they-are-a-changing\/","og_site_name":"Adept Asia Consulting","article_published_time":"2018-11-27T09:13:35+00:00","og_image":[{"width":960,"height":640,"url":"https:\/\/news.adeptasiaconsulting.com\/content\/uploads\/2018\/11\/9e09239ee256e1d9765b5034cdbd3e21.jpeg","type":"image\/jpeg"}],"author":"admin","twitter_card":"summary_large_image","twitter_misc":{"Written by":"admin","Est. reading time":"6 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/news.adeptasiaconsulting.com\/the-tools-they-are-a-changing\/#article","isPartOf":{"@id":"https:\/\/news.adeptasiaconsulting.com\/the-tools-they-are-a-changing\/"},"author":{"name":"admin","@id":"https:\/\/news.adeptasiaconsulting.com\/#\/schema\/person\/5240d375880690fc7df8c46ef5f8f9c8"},"headline":"The tools, they are a-changing","datePublished":"2018-11-27T09:13:35+00:00","dateModified":"2018-11-27T09:13:35+00:00","mainEntityOfPage":{"@id":"https:\/\/news.adeptasiaconsulting.com\/the-tools-they-are-a-changing\/"},"wordCount":1133,"commentCount":0,"publisher":{"@id":"https:\/\/news.adeptasiaconsulting.com\/#organization"},"articleSection":["News"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/news.adeptasiaconsulting.com\/the-tools-they-are-a-changing\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/news.adeptasiaconsulting.com\/the-tools-they-are-a-changing\/","url":"https:\/\/news.adeptasiaconsulting.com\/the-tools-they-are-a-changing\/","name":"The tools, they are a-changing - Adept Asia Consulting","isPartOf":{"@id":"https:\/\/news.adeptasiaconsulting.com\/#website"},"datePublished":"2018-11-27T09:13:35+00:00","dateModified":"2018-11-27T09:13:35+00:00","breadcrumb":{"@id":"https:\/\/news.adeptasiaconsulting.com\/the-tools-they-are-a-changing\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/news.adeptasiaconsulting.com\/the-tools-they-are-a-changing\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/news.adeptasiaconsulting.com\/the-tools-they-are-a-changing\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/news.adeptasiaconsulting.com\/"},{"@type":"ListItem","position":2,"name":"The tools, they are a-changing"}]},{"@type":"WebSite","@id":"https:\/\/news.adeptasiaconsulting.com\/#website","url":"https:\/\/news.adeptasiaconsulting.com\/","name":"Adept Asia Consulting","description":"Consulting & Marketing Agency","publisher":{"@id":"https:\/\/news.adeptasiaconsulting.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/news.adeptasiaconsulting.com\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/news.adeptasiaconsulting.com\/#organization","name":"InterDigitel","url":"https:\/\/news.adeptasiaconsulting.com\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/news.adeptasiaconsulting.com\/#\/schema\/logo\/image\/","url":"https:\/\/news.adeptasiaconsulting.com\/content\/uploads\/2017\/07\/Inter_Digitel_Logo.png","contentUrl":"https:\/\/news.adeptasiaconsulting.com\/content\/uploads\/2017\/07\/Inter_Digitel_Logo.png","width":300,"height":278,"caption":"InterDigitel"},"image":{"@id":"https:\/\/news.adeptasiaconsulting.com\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/news.adeptasiaconsulting.com\/#\/schema\/person\/5240d375880690fc7df8c46ef5f8f9c8","name":"admin","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/news.adeptasiaconsulting.com\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/717c84fea4845cf6840508c43f09a827?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/717c84fea4845cf6840508c43f09a827?s=96&d=mm&r=g","caption":"admin"},"sameAs":["https:\/\/news.adeptasiaconsulting.com"],"url":"https:\/\/news.adeptasiaconsulting.com\/author\/admin\/"}]}},"_links":{"self":[{"href":"https:\/\/news.adeptasiaconsulting.com\/wp-json\/wp\/v2\/posts\/4176"}],"collection":[{"href":"https:\/\/news.adeptasiaconsulting.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/news.adeptasiaconsulting.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/news.adeptasiaconsulting.com\/wp-json\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/news.adeptasiaconsulting.com\/wp-json\/wp\/v2\/comments?post=4176"}],"version-history":[{"count":0,"href":"https:\/\/news.adeptasiaconsulting.com\/wp-json\/wp\/v2\/posts\/4176\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/news.adeptasiaconsulting.com\/wp-json\/wp\/v2\/media\/4175"}],"wp:attachment":[{"href":"https:\/\/news.adeptasiaconsulting.com\/wp-json\/wp\/v2\/media?parent=4176"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/news.adeptasiaconsulting.com\/wp-json\/wp\/v2\/categories?post=4176"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/news.adeptasiaconsulting.com\/wp-json\/wp\/v2\/tags?post=4176"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}