Tuesday, February 13, 2024

Code Freeze 2024 - AI for SE for AI

Code Freeze 2024 - AI for SE for AI

I took notes at the U of Minnesota Code Freeze event put on yearly by the U of MN Comp Sci department.  It's a one-day event and the topics have changed every year.  I honestly don't know how long I've been going to the event.  Based on their list, a long time, because I know I was Redesigning Agility, and I don't see the one related to offshoring in there, so that must have been during 1-4.  A quick scan of the blog shows a post for 2008, so at least that far back.  Quality, or at least applicability to me, varies and the topic isn't always aligned with how interesting the event is.  For instance, the 2015 event on Security was one of my favorites, although day to day I don't worry about security too much anymore outside of Mend scans [previously Blackduck scans], despite once having done enough FEDRAMP and SOC 2 TYPE 2 work to be able to present to a class at the U of MN Duluth on the topic.  But the Code Freeze was more about hacking cars and airport scanners.

Some of these notes will be pretty loose without explanation, but per the intro, it stayed fairly high level in my opinion.

  • 2006: Inaugural Edition
  • 2007: Second Edition
  • 2008: Third Edition
  • 2009: Maximizing Developer Value 
  • 2010: Redesigning Agility 
  • 2011: Software Testing for the 21st Century 
  • 2012: Continuous Delivery 
  • 2013:​​​​​ Software Anthropology 
  • 2014: Big Data 
  • 2015: Security 
  • 2016: Disruptive Innovation 
  • 2017: Software Visualization 
  • 2018: Microservice Architectures 
  • 2019: Machine Learning 
  • 2020: Observability 
  • 2021: Humane Engineering
  • 2022: Developer Experience
  • 2023: Tech Resilience

Because it's applicable, here's an article from later: https://medium.com/artificial-corner/i-tried-multiple-ai-coding-assistants-these-are-the-best-bb4d6a735fc1 

It was an exciting day.  Had breakfast at Al’s Breakfast at 6 a.m. before the conference. Well worth getting up that early. As a bonus, parking over there, when it's not below 0F, means I can park for free and get in a good walk before the conference starts.

As I was walking to the conference building, there were an inordinate number of police SUVs parked across from Moos tower and driving along the central road.  Turns out there was a shooting threat resulting in staff being told to stay home and all doors locked/monitored.  The conference went on, but folks were definitely a little nervous.

The one thought that binds them all - try all the new tools.  Just start using as many as you can and understand what they do and how they’re changing.  There is a non-stop flow entering the marketplace.

  • unchecked

    Do a copilot compare on the team?  Have everyone pick one [a different one] to try out and do a five-ten minute presentation on how it went [with some sort of standardized points].  Ask ChatGPT to give me a summarized list?

Chat GPT only cares about January 2022 and earlier…

  • TabNine:

    • Strengths:

      • Uses machine learning to predict code completions efficiently.

      • Supports multiple programming languages.

    • Weaknesses:

      • Requires a subscription for advanced features.

  • Kite:

    • Strengths:

      • AI-powered code completions.

      • Provides relevant documentation and examples.

    • Weaknesses:

      • Some users may find the AI suggestions intrusive.

  • Visual Studio IntelliCode:

    • Strengths:

      • Uses machine learning for personalized code suggestions.

      • Integrates well with Visual Studio.

    • Weaknesses:

      • Limited language support compared to some other tools.

  • Codota:

    • Strengths:

      • AI-driven code completions.

      • Supports various IDEs and editors.

    • Weaknesses:

      • Free version has limitations, and full features may require a subscription.

  • DeepCode:

    • Strengths:

      • Analyzes code patterns to find bugs and suggest improvements.

      • Integrates with various IDEs.

    • Weaknesses:

      • May not cover as many languages as some competitors.

  • CodeIntel:

    • Strengths:

      • Provides code intelligence for multiple languages.

      • Open-source and customizable.

    • Weaknesses:

      • Requires some configuration for optimal use.

  • Sourcegraph:

    • Strengths:

      • Offers code intelligence across repositories.

      • Integrates with popular code editors.

    • Weaknesses:

      • Can be resource-intensive for larger codebases.

  • GitHub Copilot:

    • Strengths:

      • Generates whole lines or blocks of code based on comments.

      • Built-in collaboration with VS Code.

    • Weaknesses:

      • May produce incorrect or insecure suggestions.

  • CodeRush:

    • Strengths:

      • Includes code generation and refactoring tools.

      • Visual Studio integration.

    • Weaknesses:

      • Learning curve for mastering all features.

  • Eclipse Code Recommenders:

    • Strengths:

      • Context-aware code recommendations.

      • Supports Java development.

    • Weaknesses:

      • Limited language support compared to some other tools.

Unrelated things Scott was thinking while at the conference:

  • unchecked

    Can I AI generate the Tinkerpop in the D and D Node Database demo that’s out there? Can you use it to to generate the synthetic data and the queries?

  • unchecked

    Is there a new Tech Radar out yet? Thoughtworks’ last was September 2023

  • unchecked

    Can i generate an interview outline based on my write up of skills interns should learn and using job reqs for the company or our everything to know about the team writeup?  Can we generate how to learn our team-specific tech using AI?

Keynote Presentation - Andreas Sjostrom [Capgemini] - Igniting the Future: Enterprise AI’s Quantum Leap and the Dawn of Artificial Minds

  • Approached from a C-suite landscape, and then from other facets/perspectives.

  • “If you have family in France, warn them that the next call from their son or daughter will be a fake.” [funny quote for Clement]

  • There are tools in all the spaces - if you like one in your core area, look for agents in other areas as well:

    • Data Herald - natural language to SQL

    • ML Twist - data labeling

    • He likes Kodezi better than MS Copilot

    • Language chain

  • Agentive AI - a general term for all the helpers.

  • Sent myself the images he used.

Didn’t really address cost.

Raj Subrameyer - ChaiLatte Consulting - Building Better Software Faster: The Generative AI Advantage

Markov [70s] > n-grams [90s] > neural networks [2000s] > transformers [2010s] > now

Chat GPT, Embedded models, code models, DALLE.

  1. Code Generation [Github Copilot, Amazon Codewhisperer, VS Code integration for most]

  2. Documentation [Komment, MintLify for Typescript, Sourcegraph, Tabnine]

  3. Testing: single location strategy evolved to multi location strategy.  Autonomous testing > test in production and use production to generate the tests via AI.  What are the customers actually doing?  Appli Tools, Blazemeter.

  4. Ethics/Challenges

Matt Schillerstrom - Harness - Where should I infuse AI in the SDLC?

  • From Monticello.  Went to St. John’s University.  Worked at the Monti nuclear plant.  We shared teachers and friends [or at least siblings of friends].

  • CI/CD shift left security.  Lot of waste in this space.

  • Artificial versus “Augmented”.

  • Talked IDPs - Internal Dev Portals.  More and more common.  Alteryx probably needs one [I don’t think anything we have officially counts.  I think one - the Spotify version - was demoed at a learning event]

  • Tools for the CI/CD space: Starroper, Mistral AI, Sophia.  There are K8s helpers.

  • Is AI for these tools centralized at the org level or distributed to the teams? [think how cost has been centralized, security has been centralized, etc]

  • AI is creating an explosion of code that CI/CD has to deal with.

Arun Batchu - Gartner - Survive and Thrive in the Age of Generative AI: How Software Engineers Can Ride the Wave of Foundation Models

  • Don’t forget, AI can always analyze for you.  It doesn’t have to do the thing, it can help you with the steps to understand how to get to the thing [treat it like a conversational friend]

  • Generate synthetic test data

  • “Coding assistants are force multipliers”

  • Use AI to teach you - I am a Python dev, tell me how to learn typescript…

  • Embrace coding assistants

  • There’s a Google Notebook LLM that people should try

  • “Multimodal prompt”

  • Amazon Bedrock

  • Google Extensions

  • ChatGPT app store [like 800000 entries already]

  • Chat GPT will now tap into code writing if you ask it a question that necessitates that - an example, I want the 100th fibonacci number.  Behind the scenes, it’s coding.

  • There are writing tools.  Use them.

  • Adapt foundation models and use foundation model agents.

  • Don’t forget, YOU are a manual job and AI is accelerating automation to eliminate manual jobs [so how do you fit into the ecosystem and how it’s changing].

David Espindola - Brainyus - You, Software Warrior, In the Future of Artificial Intelligence

Maybe my least favorite presentation.  He wrote two books to talk about exponential technology curve and inflection points..  He highlighted like nine trends, but did not highlight the interaction of those trends as an overall trend [I’m a little biased because my master’s thesis on dystopias covered much of what he’s covering here]


Jeffrey Fougere and Andrew Nieuwsma - Hewlett Packard - Using ChatGPT for Software Engineering

  • Practical examples - they had a ethics of AI app they’d written using AI that prompted with questions [natural language] to ensure someone was taking a use case to all logical [and unanticipated] scenarios.

  • Talked through the ethics: other companies may have a problem with your AI [I have an example, as the last company I worked for had to code around AI exclusions including Bank of America.  We had full opt out and individual recommendation AI/ML opt out - at every level].

  • Lots of walking through prompts.

  • Ethics, bias, hallucinating, legal risks.

  • “Explain to me how this works…” prompt.

No comments: