DEV Community

Re:Invent Reflections

Last year, I wrote

Up until last week (as of 12/3/23) I would say I’ve been something of an AI pessimist. However, after getting hands-on with services like SageMaker, and Q, and seeing how products are starting to leverage it as part of their solutions, I’m starting to see where it could come into play.

Twelve months (and another Re:Invent) later, it's pretty easy to say Gen AI is at the forefront of software. I believe we were entering the frontier last year, and now we're beginning to see the first semblances of towns start to set up shop. The trailblazers are now beginning to bring products to the market that greatly simplify the deployment process of Gen AI applications. I expect this coming year to bring an onslaught of Gen AI products into the B2B and B2C spaces.


Traditionally speaking, software systems are (for the most part) deterministic. You build a product that houses tools containing predefined, deterministic outcomes. Take reporting, for example. You probably collected data from sources on your customer's behalf, housed it in some persistence layer, and served tools to chop and slice the data in various manners back to them. Someone with that express purpose in mind is building all of that. Additionally, the user has to understand both the system you provide and the underlying concepts to truly be able to leverage it to its fullest extent.


With Gen AI in the equation, we can now build systems that can take in the nearly infinite set of natural language communication possibilities and (hopefully) deliver the same breadth back to them. This removes the current bottleneck, which is the very narrow predetermined confines of the applications that we build today. I predict that in the wave of Gen AI products to come, the ones that carry this as a core tenant will be here for the long haul.

The example of this I routinely saw given was

If you ask an LLM, “What is 1+1?” you might get five back. But ask it to help you plan your week in Cabo, and you’ll be amazed.

“1+1” has a very narrow predeterminable solution. Your week in Cabo does not.


Continuing the line of thought from last year, you need to build your systems so they can fail gracefully. You have the pieces available; you just need to wire them together. As part of building an evolutionary product, you need to trust that you can step backward if you make a misstep. Doing so makes taking a misstep much less punishing and widens the range of possibilities you can explore.


Gunnar Grosch shared a concept during his wonderful presentation: continuous configuration. My understanding is that within your application, you should have it routinely polling for configuration values and adapting to them as time goes on rather than the standard practice of redeploying. All this is made possible by managing your application, infrastructure, and configuration through CDK.


Conclusion

If I had to draw a through line for all these ideas, Gen AI is broadening the possibilities regarding what software can deliver. “What points on the horizon are worth going to?” remains a question to be answered. However, the solutions that believe “Everything fails all the time” will most likely have the depth necessary to make it to the horizon.

Looking forward to meeting you all out on the horizon.

Top comments (0)