---
# System prepended metadata

title: Gustavo's Project

---

# Gustavo's Project

IntelliCode (BluePencil) in Visual Studio: Deployed and used by around 50000 developers.

Problems:
-

- When things go wrong, people are clueless why - since they don't really know its a synthesizer.
- How to explain the capabilities and the limitations of the system to people.
- The interaction is **modeless**. Can we start the conversation **modeless** but then transition to interactions. 
- Developers currently don't see the program which is synthesized - will it help if we show them?


Needfinding / Formative Study
-
Three main ways of interacting with synthesis based IDE tools:
- Modeless: Intellicode
- Manual Interaction: Snippy, Mini languages (by titus)
- Predictive: Pythia, Intellicode Compose (whole line completion)

*Q*: How can we **compare and contrast** the 3 radically different ways of interacting with the tools?

*Q*: How do users react to failure scenarios? A small scale study to deeply understand this.

*Q*: How do we design a user study for BluePencil?



Guidelines for Human-AI Interaction
-

- **G1**: Make clear what the system can do.

    - Supported grammar / components.
    - Limitations.

- **G2**: Make clear how well the system can do what it can do.

    - Let the user know about the possibility of errors.
    - If it is modeless - only suggest highly ranked programs.

- **G4**: Show contextually relevant information.
    - Only display information relevant to user's current task.
    - If the task changes, immediately remove the previous recommendation.

- **G7**: Support efficient invocation
    - The invocation should be easy (or very fast if it is predictive).
    - For modeless and predictive interaction - the users should be able to manually invoke the tool.

- **G8**: Support efficient dismissal
    - The tool should be easily dismissed / disabled by the user.

- **G9**: Support efficient correction
    - In case of failure scenarios, the tool should enable the user to gracefully recover from failure.

- **G11**: Make clear why the system did what it did.
    - Explain why the tool is showing the recommendation.

---
- Intellicode - BluePencil
- Snippy
- Intellicode Compose / Pythia
- Tabnine
- (Synthesis for config)*


