A Generative AI Experiment with Microsoft Edge Copilot

A Generative AI Experiment with Microsoft Edge Copilot

Introduction: Unveiling ‘Einstein’ in My Spreadsheet Experiment

My journey into the world of AI-assisted automation began with a spark of inspiration from Henrik Kniberg’s “Generative AI in a Nutshell” video. His insights into the capabilities and potential of AI resonated with me, prompting a question that became the foundation of my experiment: Could the ‘Einstein in my basement’, help me with a challenge?

This experiment is about exploring the generative aspect of AI that Kniberg elucidates, building on the concept of a digital teammate, who is there when you need it, and can answer any questions you care to ask, in this case about using VBA (Visual Basic for Applications) for automation.

With a Capacity Planning spreadsheet as my testing ground, I sought to discover if Microsoft Edge Copilot could not only understand the nuances of my project but also generate solutions that would traditionally require a deep understanding of Excel’s inner workings.

In this article, I share my experiences with ‘Einstein’, the highs and lows of our collaboration, and the practical outcomes of integrating generative AI into the workplace. It’s a story that underscores the transformative power of AI that Kniberg champions—a testament to the potential of AI to be more than just a tool, but a partner in innovation.

The Experiment: Introducing ‘Einstein’ to the Challenge

In the dynamic landscape of agile development (and transformation), I was faced a familiar challenge: optimizing Capacity Planning within the Scaled Agile Framework (SAFe®). The mission was clear—prepare for the Planning Interval (PI) Planning event with a tool that could handle the intricacies of six Sprints’ worth of planning.

Enter “Einstein,” a new digital team member powered by Copilot.

This experiment was designed to test Einstein’s capabilities in enhancing a Spreadsheet Tool—the compass guiding us through the Features to be delivered and the Availability of our diverse team members.

Initially, our planning map—the Sprint Backlog, Team Member Capacity, and the Per Role Capacity tables—was a single sheet where changes in one table affected the other tables, often disrupting the flow of planning and resulting in a “clean up” activity.

To combat this and keep things simple (or so I thought) I divided the tables into separate sheets.

Figure 1: The problems statement (As Is) and the Solution (To Be) states

This solution, while preserving data integrity, fragmented the once cohesive view (creating a new challenge).

Einstein’s task was therefore to bridge this gap through automation. The objectives were to:

  1. Implement a feature allowing users to automatically use three side by side windows, each displaying a different facet of the planning process.

  2. Enable users to align these windows with the start of the correct Sprint, ensuring seamless navigation.

  3. Maintain the alignment of all tables, adapting in real-time to any insertions or deletions in the Sprint Planning table.

The experiment wasn’t just a test of a tool; it was a test of Einstein’s potential as a digital team member working, we me (a human).  

Could Einstein rise to the occasion and become an integral (and valuable) part this journey? The results would soon tell!

The Collaboration: Navigating the Digital and Human Divide

In my quest to put Einstein to work, I started to think of him as another team member tasked to pair program with me.

Design Evolution

My initial design concept was a spreadsheet that automatically opened with three windows side by side, each displaying a different tab. However, as I engaged with the tool, I realized the need for flexibility. This led to a pivot in the approach, favouring a button that users could activate to enter the multi-window mode at their discretion.

Learning Through Specificity

I quickly learned that specificity was key; I moved from asking generic “how to questions” to providing the exact names of the tabs and tables.  Einstein would then create code that was tailored to my workbook.  This specificity accelerated my understanding of VBA events like Workbook_Open() and Worksheet_Change(), which soon became central to the evolving solution.

Navigating Challenges

The collaboration was not without its challenges. Not all code suggestions from Einstein compiled successfully on the first try. I iterated through these challenges, pinpointing errors and receiving revised solutions from Einstein. This back-and-forth generally resolved the issues.  However, there were occasions when having tried multiple iterations, I found myself having to resort to “the good old ways” - recording a macro while performing an activity, inspecting the code generated by Excel, cherry picking snippets and then using them in my code.

Refactoring for Clarity 

Our collaboration thrived on the principle of separation of concerns. I would ask Einstein to refactor the code into distinct functions— for example, one function to verify the selected Sprint Number to view, and another to navigate to the corresponding location based on the Sprint Number returned. While Einstein occasionally lapsed into old habits, crafting monolithic functions, I found myself reminding him about the agreement and steering him back to our agreed structure. With each reminder, Einstein would recalibrate and deliver the modular code I’d expected. 

Other Benefits

The basic code structure came together very quickly and included error handling.  Knowledge transfer was fast too, so I learnt quickly which events would be suitable to trigger my code.  I was able to ask Einstein to analyse lines of code and explain to me what they did.  I could then ask for changes to the behaviour, get the next version and test it out. 

Reflections: The Realities of Working with ‘Einstein’

As we conclude our article (yes, I got a little help writing the article too 😊), it’s time to reflect on the experience of working with ‘Einstein’ and its Copilot capabilities. This journey has been an exploration of the balance between the promise of AI assistance and the practical realities of software development.

Expectations vs. Reality

The cautionary words of Henrik in his video resonate with my experience

Be careful you get what you pay for… So you may end up with a smart high school student in your basement instead of Einstein.”

Utilizing the free version of Copilot integrated into Edge, I encountered moments that tested this warning. When some of the code suggestions from ‘Einstein’ failed to compile, it was a stark reminder of the limitations of AI’s current state.

Knowledge Constraints

‘Einstein’ acknowledged that its responses are based on patterns and data available up to a certain point in 2021, without the ability to update its knowledge or training data in real-time. This constraint led me to ponder whether a more up to date, perhaps paid and able to learn version, would have altered my experience.

Fallback to Traditional Methods

There were instances when I had to fall back on traditional methods, like using Excel’s macro recorder to generate VBA code. This approach, while reliable, was time-consuming and somewhat counter to the efficiency I was expecting from ‘Einstein’.

Looking Forward

These reflections are not merely a critique but a steppingstone for future explorations. Could a more current iteration of Copilot, equipped with the latest data and patterns, streamline development processes more effectively? This question could be the inspiration for another experiment, pushing my understanding of the boundaries of AI collaboration further.

Conclusion

My brief experiment with Einstein showed me a happier more productive way to work.  I found myself discussing issue with Einstein and asking “him” for his opinion!  This in comparison to performing a search, reading the results found, then digesting many proposed solutions before arriving at one that works, is not only faster and easier it is more fun (when it works).

I would recommend this approach to all fellow experimenters out there; look for possibilities and try your own Einstein experiments.

In closing, I can’t help but thank Henrik Kniberg who gave me the Einstein bug, and of course my digital teammate without whom I would not have been able to enjoy the process improvement challenge I had set myself, to the extent I did.

I hope this article will inspire you to tell your story of how the AI role has enhanced productivity and creativity in your workplace.

To view or add a comment, sign in

Insights from the community

Others also viewed

Explore topics