Showing posts with label Google. Show all posts
Showing posts with label Google. Show all posts

Sunday, January 30, 2022

Do-It-Yourself Software

"That looks too much like real programming!"
"Well, it's not quite rocket science!"


These are two of my favorite quotes from ex-colleagues.  

The first quote above is from over 25 years ago, when I was working at a software company called Omnis.  It had developed the first cross-platform (Mac and Windows) software development tool.  The tool included a visual builder, a proprietary database, and connectivity to all other contemporary relational databases, most notably Oracle.  My colleague offered this observation when asked why not use Java (which had recently been released) instead of the Omnis tool.

The second quote above is from 4 years ago, when I was working at another software company that provided an eCommerce platform.  My colleague offered his response when I asked him how easy it was to build custom solutions with the platform.  He then proceeded to talk about actual rocket science and his Master's degree in Aeronautics from Purdue!

While my colleagues' responses were clearly tongue-in-cheek, they each highlight the tendency that we, in technology, are inclined to overcomplicate things.  The fact that there was over 20 years between those remarks, suggests that, perhaps, not so much has changed.  Most, if not all, business-facing problems on which I have worked over my long career, did not need real programming or anything like rocket science.

Which brings us to the burgeoning low-code/no-code movement.  These contemporary tools provide another layer of abstraction on top of "real programming" and aim to democratize software development.  They do this by offering visual development interfaces that eliminate or reduce the need to code and understand complex programming syntax and concepts, replacing it with familiar drag-and-drop gestures and simple property assignments.

The fact that technology heavyweights Amazon (Honeycode), Apple (SwiftUI), Google (AppSheet), Microsoft (Power Apps), Oracle (Apex), SAP (AppGyver), and Salesforce (Lightning) all have skin in the low-code/no-code game, suggest that we have reached an inflection point.  

No longer does every application need to be viewed through the lens of the corporate Information Technology department and the all-knowing high-priesthood of software architects and programmers!

As such, perhaps we can think of these low-code/no-code tools as very distant relatives of COBOL (Common Business Oriented Language).  As its expanded name suggests, COBOL was/is more oriented towards "business users" than "engineers".  Don't be fooled, though, it still sports a fairly arcane vocabulary and syntax.

Intuitively, we all understand that smaller teams are more nimble and efficient.  A key promise of low-code/no-code is its ability to support this small team structure, reducing or even eliminating the increasingly over-specialized disciplines -- architect, tech lead, front-end developer, back-end developer, DevOps engineer, data analyst, business analyst, designer, QA engineer, project manager, scrum master, etc. -- within corporate IT.  The challenge of maintaining consistent messaging across these roles and disciplines is akin to the phenomenon of the Telephone Game/Chinese Whispers.

Over my long career in software development, I have always been struck by this industry paradox -- our mission is to encourage productivity and yet our choice of tools and process are often inefficient (for the job at hand).  In addition to implementing solutions in more traditional languages such as Java, JavaScript, PHP, PL/SQL and shell scripting, I have dabbled in the following tools that aimed to smooth away some of those rough edges and inefficiencies, and could, therefore, be considered predecessors to today's low-code/no-code generation of tools:
"Real programming" (and real programmers) will always be needed, of course.  Someone has to understand concepts such as pointers, memory buffers, static versus dynamic typing, polymorphism, object orientation, functional programming, instruction sets, data types, registers, and memory management.  However, that is not (and should not) be a requirement for most of the business automation that is being developed right now.  

I have always looked for ways to simplify business software development within my teams, either through improved tooling, process, management, or culture.  In my next blog post, I will take a deep dive and test drive the following low-code/no-code tools*:
Stay tuned for my next post to find out which tool will make me the best citizen developer.

*This subset of the vast (and rapidly evolving) low-code/no-code market, focuses on general-purpose app development in the Google ecosystem.  This is the area that I'm currently most familiar with.  I plan to later create deep dive posts into more specialized low-code/no-code tools focused on AI/ML, web design, eCommerce builders, and business process automation (BPA).

Thursday, April 23, 2020

Technical Knockout: How COVID-19 Put Society and Big Tech on the Canvas

It is probably safe to say that few of us anticipated the impact of COVID-19.

The virus has affected every facet of our lives.  Aside from the terrible and tragic human toll, societal norms have been turned upside down.  Social distancing and shelter-in-place have become mandated across the globe.  Board games and jigsaw puzzles, seeming relics of a past era, have enjoyed a renaissance and in some cases are selling in greater numbers than during Christmas.  Sports events, ranging from the Summer Olympics to the NBA to Wimbledon, have been postponed or cancelled entirely.  Schools and universities have been shuttered resulting in teachers, parents and students alike undergoing a trial-by-fire as they struggle with distance learning and homeschooling.  More distressingly, the economy has been harpooned as 10 years of US job gains have been wiped out in the space of just 4 weeks.

Yet, five months on from its initial identification, we still have so many basic questions about this invisible foe:
  1. What was the virus's origin?  A "wet market" in Wuhan, China or something more sinister?
  2. Exactly how contagious and deadly is this virus?
  3. Can we develop immunity to the virus?
  4. How different is this year's global and regional mortality rate from the average* and from other key milestone years?
And how has Big Tech, perhaps unreasonably heralded as society's knight in shining armor, fared during this once-in-a-generation crisis?

+ Positives

On the plus side, the sprawling, highly distributed network that we call the internet, has enabled significant work to be performed from homes around the world.  Through Facebook, FaceTime, Zoom, RingCentral, Skype and other videoconferencing and collaboration tools, the internet has also enabled us to connect remotely with loved ones.  Despite the huge additional data loads, we have not -- to my knowledge -- suffered an internet meltdown of any meaningful magnitude.  The free transfer of information provided by the internet, has helped expose and highlight the lunacy of entities such as Harvard receiving a bailout.  Also, data collection and dissemination technology have enabled innumerable dashboards and data visualizations to convey, in excruciating near-real-time, the horror of the disease.  (My particular go-to dashboard has been this one.  Apparently, it was developed and is maintained by a high-school student named Avi Schiffman.)

The fact that we also have a robust physical delivery infrastructure -- with Amazon, UPS and FedEx at the forefront -- has helped to offset the imposed limitations around personal movement and the fear of contagion associated with in-person shopping.  There have been other positive contributions, including monetary donations, job creation, masks from 3D printers and more.

In addition, Apple and Google have partnered to develop a contact tracing API on their respective mobile operating systems.

- Negatives

However, on the other side of the ledger, Silicon Valley's technical might has not, to this point, contributed to the much-needed medical solution of a vaccine.

Furthermore, the fragility of those whose livelihood depends on the oft-trumpeted gig economy has been brutally exposed as Uber and Lyft fleets have largely ground to a halt and AirBnB -- only months removed from being considered the hottest IPO on the planet -- is suffering its own apocalypse.

The pandemic has also exposed, once more, the huge digital divide.

Even the previously mentioned positives are often two-edged swords.

The vast amounts of COVID-19 data available on the internet can leave our heads spinning and are sometimes seemingly contradictory.  Even when the data source is unquestioned -- including my go-to dashboard mentioned above that cites the CDC and WHO among its sources -- other troubling questions emerge such as "what are the precise definitions of the terms ACTIVE, RECOVERED and CRITICAL?"  This can lead to increased FUD (fear, uncertainty and doubt).

There have been significant supply chain and delivery issues that have required arcane "hacks" to get grocery delivery scheduled.

In addition, the contact tracing technology noted in the above article has its critics, mostly based on privacy concerns, and a significant number of devices will not be compatible.

Needless to say, society and big tech are facing a defining moment.  I believe and hope that we can all rise to the occasion by making sustained empathy a cornerstone of our recovery.  This trial has surely illustrated the value of each and every person, irrespective of wealth or status.

* NOTE: It took some sleuthing to address the frequent and troubling objection that the 2020 mortality rate is fairly typical and the COVID-19 numbers are simply manifesting as a "different cause of death".  However, by comparing the CDC's Average Daily Number of Deaths of 7,708 from 2017 (latest data I could find) to a recent 3-day rolling average of US COVID-19 deaths of 2,034 , we can reasonably conclude that 2020 is definitely anomalous.  Furthermore, in the same sample year of 2017 -- influenza and pneumonia which would be the counterparts to COVID-19 in a typical year -- account for only 2% of annual mortality.