3 min read

Digital Maneuver 20200224: AI BS, requirements volatility, and automating PowerPoint

Thank you for subscribing to the Digital Maneuver newsletter.

If you find this content useful, feel free to forward it to others you think will benefit.

If this was forwarded to you by someone and you're missing messages as they're sent, you can subscribe now.

If you have feedback you'd like to share, feel free to email me at adam@digitalmaneuver.com

Anthropomorphizing: The Biggest Risk to AI Adoption (or, Developing Your AI BS Detector)

I've written about the dangers of anthropomorphizing technology before in my series of lectures on Developing your AI BS Detector.  I've lectured about this topic at a variety of places including invited lectures internationally, and most recently at an event organized by Army Futures Command.

You can access the article and slides on my website.

The issue of anthropomorphizing technology, that is, speaking about it as if it were human, is not a problem that has only arisen alongside the recent AI hype.  In fact, it is one of the problems that goes back to von Neumann, Turing, and the early days of computing science.  It's a problem usually associated with the question "Can machines think?"  Humans tend to anthropomorphize everything, and computers and software are no exception.  To paraphrase Dijkstra from a speech back in 1984:

The question of whether or not machines can think is about as relevant as the question of whether or not submarines can swim.
-- EWD898

When it comes to AI, this same anthropomorphizing reaches preposterous proportions.  Companies talk about their "thinking" machines or algorithms, adding "confusion" or "creativity" to algorithms, and so on.  Of course, the parallels of neural networks to the human brain only allow further opportunities for intuitive weaknesses to be exploited.  To combat this problem of preying on intuition, we must increase our precision.

The first page of the 38th Commandant's Planning Guidances emphasizes this literally on page 1:

We must communicate with precision...

Precision indeed.  AI is just software that accomplishes tasks on a level similar to, or better than, humans.  In other words, AI is just software that acceptably automates human tasks.

That may not get all the prime dollars or funding at the moment, but by being precise about what we are doing we can make progress more easily by applying efforts in the right areas instead of getting distracted or swindled.  AI is just software!

Requirements Volatility is the Core Problem of Software Engineering

This article from Charles Martin does a great job of summarizing the challenges and realities of software development (accurate estimates, anyone?).  Since requirements are always changing, estimates are only possible if the systems, developers, and the process they follow are all able to adapt more quickly than changing user requirements.  For those of you in the national security space, you probably recognize the OODA loop parallels.

Looked at in this light, software development could seem to be pretty depressing, even dismal. It sounds as if we’re saying that the whole notion of predictable, cost-effective development is chasing an impossible dream.
It’s not. We can be very effective developers as long as we keep the realities in mind.
The first reality is that while perfection is impossible, pragmatic success is quite possible. The LEAN startup movement has made the MVP—”minimum viable product”—the usual goal for startups. We need to extend this idea to all development, and recognize that every product is really an MVP—our best approximation of a solution for current understanding of the problem.
The second reality is that we can’t really stop changes in requirements, so we need to work with the changes. This has been understood for a long time in actual software development—Parnas’s rule for identifying modules is to build modules to hide requirements that can change. At the same time, there have been repeated attempts to describe software development processes that expect to provide successive approximations—incremental development processes (I’ve called it “The Once and Future methodology“).

Automating PowerPoint Slides with Python: Robotic Process Automation?

Robotic Process Automation (RPA) is part of the new AI hotness at the moment, but as mentioned above, AI is just software.  There are many jobs where people spend hours of their time working with Excel and databases and integrating that information into PowerPoint slides, and software can automate that work far easier than you might think.

You do not need any special RPA software to automate these tasks.  You can do it for free with Python!  For example, see the python-pptx library

You get all the power of Python, and all the ubiquity of PowerPoint.  I expect that in the coming years we will see increased automatic generation and integration of data with tools like Python and python-pptx.

When considering ways to automate repetitive work, do not make the mistake of thinking you need to buy some RPA software.  Your RPA efforts might be achievable far cheaper and faster than you thought.

For feedback or to provide contributions, you can email me at adam@digitalmaneuver.com