The Tribe Metachallenges in Software Development

The Tribe Metachallenges in Software Development

Place Your Bets What will be the next breakthrough software development platform? Billy Hollis Agent Provocateur @billyhollis billyhollis –at– live.com There are 10 types of people. Those who understand binary and those who don’t. I am not a member of the tribe. I’m more like an anthropologist observing the tribe. I don’t like writing code. But the tribe does. I talk to users and executives a lot. Their concerns are often very different from yours. For example, for applications that require significant investment, executives expect ~8 year lifespan. The tribe works fine – until a wave of radical change hits them • 1985 – IBM owns 70% of IT spending • 1999 – IBM is irrelevant, Microsoft controls 40% of IT spending, driven by Windows • 2010-2013 – Modern UI takes hold (iOS), open source proliferates, browser-based software predominates • 2017-2019 – the Cloud starts its ascension… Every previous transition radically changed the way software was developed • New languages • New tools • New architectures But there is a period when transition is resisted Spry Angular Dojo Kendo Breeze React Knockout Bootstrap JQuery Socket.IO Wakanda Polymer From my buddy David Neal He sells these on Amazon. He’s selling a lot of them. Or you can buy this coffee cup “Javascript at a point becomes kind of unmaintainable. The fault basically lies in the language itself.” John Robertson, Microsoft executive, spoken in a session at Build 2015 Other indications • “Page rot” – web pages created ten years ago with simpler technologies still work fine, but pages created two years ago don’t work because one of the n libraries they use has changed • Lack of entry point for new developers • They have to learn too much just to get started in todays HTML5/JS world • Learning to program in JavaScript is suboptimal • Browser incompatibility is a struggle • Tensions between web and native (React Native, WebAssembly, PWA) • Decision maker disenchantment increasing A question: And I need an honest answer. How many of you feel overwhelmed by the complexity of today’s application development and the constant, unrelenting change in development technologies? If you are, I guarantee that the decision makers in your company are too Most don’t understand what you do. You might as well be stirring a cauldron and saying magic spells. Visual Studio Difficulty How easy it looks in Microsoft demos 1998 2000 2002 2004 2006 2008 2010 2012 2014 2016 2018 In a cloud world, is the answer to layer on more complexity? • AI APIs • Voice APIs • Bot APIs • 3D APIs for virtual and mixed reality • Distributed events (Azure Message Bus, Signal R, etc.) • Telepathic APIs (OK, that one’s not really available. Yet.) Voice, Maps Plumbing layer 4 Plumbing layer 3 Transportation Plumbing layer 2 Routing Maybe some Plumbing layer 1 (Azure function) business logic buried in these layers Data access and modelling somewhere Chat bots Cloud APIs You may not see these problems as clearly as your management • For many developers, as long as someone is paying them to write code all day, they don’t care about anything else • But I talk to development managers and higher executives, and I can tell you that they are more dissatisfied each year • They just don’t know what to do about it yet Right now we’re patching our way around some of the worst problems • TypeScript, for example But the cloud is a platform change, and that will almost certainly lead to a completely new way to do software development Other forces driving change • Necessity for apps to support multiple platforms • Xamarin is currently the leader for that capability, but has deficiencies • The changing role of data • The emergence of AI • Cloud based engines Changing role of data Up to now Going forward • Lots of screens to enter and edit • Data comes from many sources data • Most data no longer entered by • Up to 60-70% of pages/views are a human “CRUD” • “CRUD” drops to smaller fraction • Data often used in searches to of pages/views find a master record and its • Data often used for analysis and detail records decision support • Data commonly displayed in • Data commonly displayed in data grids ways that make it easy to consume Changing role of data • The cloud makes it easier to bring together data from different sources • Some are traditional databases, with text-based data about entities • Others are based on sensors, measurements, activity counts, and other ways that data can be automatically created and stored Using AI in business apps • Image analysis and recognition • Facial recognition • Language translation • Detecting customer dissatisfaction or unprofitable customers • Calculation of risk • Shopping recommendations • Fault prediction and maintenance management Cloud-based engines • Besides AI services and engines, other engines with more traditional logic become more feasible with the cloud • Tax calculation • Medical diagnosis • Drug interactions • Malware detection • Block spam calls • Data validation of various kinds • Workflow management An indicator of need for change – multiplicity of new tools and platforms Browser iOS Android Windows native Xamarin ✓ ✓ ✓ (for comparison) Google Flutter ✓ ✓ Uno Platform ✓ ✓ ✓ UWP Kony AppPlatform ✓ ✓ ✓ WinRT PowerApps ✓ Zoho Creator* ✓ Blazor ✓ Google Flutter • Very compositional – oriented around assembling the app by putting pieces together • Uses the Dart programming language • Uses Android Studio as the development environment • Targets iOS and Android today, but likely to target other environments later To get started… • Go to flutter.dev • Several steps for complete setup • Flutter doctor is your buddy – tells you want you still need to do • Key steps – Install Android Studio, and install plugin for Flutter development • All the stuff you learned about emulators using tools like Xamarin apply • Also nice to have a connected device. Uno Platform • From nVentive in Montreal – fairly large company • Uses XAML as its UI markup • A subset of Universal Windows Platform (UWP) XAML • Targets all major device/OS platforms • Use Visual Studio for development environment • C# is the programming language Targets • Windows via compile to UWP native • iOS and Android via compile with Xamarin techs • Browser via WebAssembly • Blazor uses WebAssembly too To get started… • Visual Studio 2017 or 2019 • Need to install extension for Uno platform • Got to http://platform.uno Kony AppPlatform • Includes Visualizer for front end development and Quantum for back- end cloud development • Visualizer is built on top of Eclipse • JavaScript for what is effectively code-behind (front end and back end) • Works best with their own cloud back end • Development experience for multiple platforms is pretty good • I did some videos for it last year • First one at http://bit.ly/KonyPWAvideo1 To get started… • Create an account with Kony at kony.com • Go to https://www.kony.com/get-started/ • Download and install Visualizer • Sample cloud data will be available • Use the “Hikes” capability to learn to use the dev environment Microsoft PowerApps • Part of the “Power Platform” to build business apps • Targeted partially at users, letting them build low code / no code apps • Based on their work in Dynamics • Target is HTML / browser based • Responsive design allows usage on mobile devices • PowerApps Studio to create simple apps • They call these “Canvas apps” • Other designers and capabilities for more complex apps, including a “site map” based designer To get started… • You must have a Microsoft account associated with an organization • That usually means an O365 account • Random email won’t do to create account • Go to http://bit.ly/PowerAppsGS • That will tell you to go to http://make.powerapps.com Zoho Creator • Intended for users, not developers • Fast creation of web sites with some data • Lots of pre-written pieces, easy to integrate to your app • Intended to produce simple apps with no code To get started… • Go to https://www.zoho.com/creator/ • Set up an account • It’s pretty self-explanatory from there • Walkthrough of the basics • So easy, even a vice president can do it Blazor • From Microsoft • For client side, single page apps • Razor components, which combine HTML and C# • Visual Studio for dev environment • App execution via WebAssembly, which runs on the client and executes compiled C# code To get started… • Go to http://bit.ly/BlazorStart • You’ll need .NET Core 3.1 • Note that WebAssembly is still in preview Crafting your own strategy • Xamarin still mainstream • Flutter looks good for iOS and Android • But Google is notorious for abandoning things • If you already know XAML, Uno might be a good choice • If you use Dynamics and want to stay in the browser, PowerApps might be a fit • If you just want to slam out a website, Zoho Creator is a low investment choice Which will succeed going forward? Image by ritter99 on DeviantArt Where will we end up? • My vision is a development environment created from the ground up for cloud-based apps and intended to be an entry point to development • It would generate UI automatically for web and devices, based on generalized markup that was mostly filled in via templates • It would integrate cloud capabilities transparently • It would be compositional – putting pieces together would be a primary activity • A subset of functionality could be used with little or no code • Coding would be in isolated segments associated with small pieces App starts with data, UI layout metadata Compositional designer to let user assemble the either defined or - Vertical stacks, app by plugging pieces together and writing small imported panels, etc. amounts of glue code. (works with everything in diagram) Traditional DB schema - Data type - Field name - Nullable flag Web UI - Etc Engine for Plus metadata for app generating generation iOS app user screens - Validation rules (with (data and states such as initial, final) actions) Android app - Label to use in UI User-written components that - Order/priority in UI access engine APIs – minimal code - Role required to access Windows 10 app - Etc.

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    49 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us