juju command progress ui

Mark Ramm mark.ramm-christensen at canonical.com
Thu Feb 28 12:57:25 UTC 2013


On 02/28/2013 01:17 AM, Gustavo Niemeyer wrote:
> On Thu, Feb 28, 2013 at 2:35 AM, Julian Edwards
> <julian.edwards at canonical.com>  wrote:
>>> Having a client command that blocks for 10 minutes doing absolutely
>>> nothing while the provider decides to allocate a new machine on its
>>> own time seems to me like a pretty poor user experience.
>> This is exactly what "juju deploy" does if you run it immediately after
>> bootstrap returns.
> That's not correct, and I've explained why:
>
> Bootstrap blocks while its intention isn't *requested*, at which point
> there's nothing else for this command to do. The deploy command
> blocks while its intention isn't *requested*, at which point there's
> nothing else for this command to do.

Yes, we know this. Because we are juju developers the implementation 
model fits in our heads easily.

However, the point Ian is making is that it is not clear to a new user 
that this is what is happening.  They come into the Juju world with a 
different model based on previous experience, and we need to be 
sensitive to that.  Right now folks who are new to Juju are giving us 
feedback on what Juju looks like to them when they first use it -- and 
that is an invaluable resource to those of us who can no longer see with 
beginners eyes.

And it's generally a better user experience to force the UI to conform 
to the "user model" rather than the "implementation model" because 
teaching large numbers of users to expect something different is both 
time consuming and impossible to do completely. And when software does 
not "fit your brain" you don't blame your brain, you blame the software.

What that said, I think Gustavo is absolutely right to say that it is 
important for us not to give up the async nature of juju commands -- 
that is a clear *feature* in my mind. But I agree that we need to be 
much better about helping users to understand what his happening.

You mention SMTP -- nearly all mail clients these days provide some sort 
of progress indicator to users to help them understand the difference 
between "queued up to send" and "sent." In the GUI we do something to 
help folks see this progression, and I think we need something on the 
command line too.

Proposals to help users in this context that have been floated are:

* Command line message after juju bootstrap that says the environment 
has been started, and how to watch the progress
* Command line "juju observe" command that lets you watch the progress
* Command line blocks and provides juju observe like status.

Another proposal would be to implement all three of the above with a new 
command that calls bootstrap and then observe to provide the "blocking 
experience" and we can do some user testing to see if that helps make 
things better.

Rather than talking about what we *think* might work for users, we can 
test with actual users to see what works best for them.

--Mark Ramm




More information about the Juju-dev mailing list