maildev@lists.thunderbird.net

Thunderbird email developers

View all threads

The AM in a pref debacle

JK
Jörg Knobloch
Mon, Jun 24, 2019 9:00 PM

Hi friend of Thunderbird,

Back in 2010 there was a discussion about how to restructure preferences
and AM, the thread started here[1].

Then in 2014 some dedicated volunteers started developing "AM in pref
tab" in [2] since the options were moved into a tab like in Firefox for
TB 38. Options in a tab were always hidden behind a pref and never
enabled until de-XBL forced us to move the options out of their
stand-alone window and into a tab.

I personally thought that moving the "AM into (some sort) of tab" was a
good idea and wanted that feature in TB 68. Strings were already
approved by the TB module owner and landed for TB 38. As soon as "AM in
pref tab" landed, everyone started to scream: The TB module owner who
surely must have had a look at the WIP back when he approved the
strings, BenB, one of the major stake holders in account creation, and
finally Alex, our new UX lead who is the only one who can't be blamed
since he came very late to the party.

Having a feature that no one wants on trunk 69 shortly after the branch
to 68 is an absolute maintenance nightmare since patches can only be
backported with manual and error-prone intervention. Therefore I backed
the entire lot out.

This is a fine example of how UX is done, or not done, in TB and how it
shouldn't be done unless one wants to waste large amounts of developer
time. Any development, and particularly UX development, should be done
in the way I learned when I was working in the software industry:

  1. You analyse the problem and come up with a bunch of requirement the
    new thing needs to fulfil.
  2. You design the new thing and write a detailed spec.
  3. You get agreement on what is to be implemented.
  4. You implement against that spec.
  5. You unit test against that spec.
  6. There is sign-off against the requirements you collected.

Jörg.

[1] https://mail.mozilla.org/pipermail/tb-planning/2010-December/000632.html
[2] https://bugzilla.mozilla.org/show_bug.cgi?id=1096006

Hi friend of Thunderbird, Back in 2010 there was a discussion about how to restructure preferences and AM, the thread started here[1]. Then in 2014 some dedicated volunteers started developing "AM in pref tab" in [2] since the options were moved into a tab like in Firefox for TB 38. Options in a tab were always hidden behind a pref and never enabled until de-XBL forced us to move the options out of their stand-alone window and into a tab. I personally thought that moving the "AM into (some sort) of tab" was a good idea and wanted that feature in TB 68. Strings were already approved by the TB module owner and landed for TB 38. As soon as "AM in pref tab" landed, everyone started to scream: The TB module owner who surely must have had a look at the WIP back when he approved the strings, BenB, one of the major stake holders in account creation, and finally Alex, our new UX lead who is the only one who can't be blamed since he came very late to the party. Having a feature that no one wants on trunk 69 shortly after the branch to 68 is an absolute maintenance nightmare since patches can only be backported with manual and error-prone intervention. Therefore I backed the entire lot out. This is a fine example of how UX is done, or not done, in TB and how it shouldn't be done unless one wants to waste large amounts of developer time. Any development, and particularly UX development, should be done in the way I learned when I was working in the software industry: 1. You analyse the problem and come up with a bunch of requirement the new thing needs to fulfil. 2. You design the new thing and write a detailed spec. 3. You get agreement on what is to be implemented. 4. You implement against that spec. 5. You unit test against that spec. 6. There is sign-off against the requirements you collected. Jörg. [1] https://mail.mozilla.org/pipermail/tb-planning/2010-December/000632.html [2] https://bugzilla.mozilla.org/show_bug.cgi?id=1096006
AC
Alessandro Castellani
Mon, Jun 24, 2019 9:12 PM

Hi Jörg,

Thank you so much for dealing with this issue and apologies for the
extra noise I added to the already crowded conversation.

I totally agree with you regarding the approach and the proper steps to
follow while changing/implementing something heavily tied to UX and UI.

This can only be a great learning experience for all of us, and
especially myself since I'm still probably the noob of the team :D

I think one good example of process is the new Account Creation
implementation, which started with low level UI prototypes, thorough
discussions, multiple iterations, and an in-depth review process where
many developers participated.

It also involves, I think, the developer himself not pushing for the
patch to land. The Account Creation still hasn't been merged, but I'm
not trying to force it in anyway because I realized that this is a big
change and it affects pretty much every single user. We need to be
careful and sometimes force ourselves to go slower than we want to.

Thank you again everyone for the great work and passionate involvement
in this issue, and all the other aspects of Thunderbird.

Let's keep building the best email client on the planet.

On 2019-06-24 2:00 p.m., Jörg Knobloch wrote:

Hi friend of Thunderbird,

Back in 2010 there was a discussion about how to restructure
preferences and AM, the thread started here[1].

Then in 2014 some dedicated volunteers started developing "AM in pref
tab" in [2] since the options were moved into a tab like in Firefox
for TB 38. Options in a tab were always hidden behind a pref and never
enabled until de-XBL forced us to move the options out of their
stand-alone window and into a tab.

I personally thought that moving the "AM into (some sort) of tab" was
a good idea and wanted that feature in TB 68. Strings were already
approved by the TB module owner and landed for TB 38. As soon as "AM
in pref tab" landed, everyone started to scream: The TB module owner
who surely must have had a look at the WIP back when he approved the
strings, BenB, one of the major stake holders in account creation, and
finally Alex, our new UX lead who is the only one who can't be blamed
since he came very late to the party.

Having a feature that no one wants on trunk 69 shortly after the
branch to 68 is an absolute maintenance nightmare since patches can
only be backported with manual and error-prone intervention. Therefore
I backed the entire lot out.

This is a fine example of how UX is done, or not done, in TB and how
it shouldn't be done unless one wants to waste large amounts of
developer time. Any development, and particularly UX development,
should be done in the way I learned when I was working in the software
industry:

  1. You analyse the problem and come up with a bunch of requirement the
    new thing needs to fulfil.
  2. You design the new thing and write a detailed spec.
  3. You get agreement on what is to be implemented.
  4. You implement against that spec.
  5. You unit test against that spec.
  6. There is sign-off against the requirements you collected.

Jörg.

[1]
https://mail.mozilla.org/pipermail/tb-planning/2010-December/000632.html
[2] https://bugzilla.mozilla.org/show_bug.cgi?id=1096006


Maildev mailing list
Maildev@lists.thunderbird.net
http://lists.thunderbird.net/mailman/listinfo/maildev_lists.thunderbird.net

--
Alessandro Castellani
Lead UX Architect
Thunderbird

Hi Jörg, Thank you so much for dealing with this issue and apologies for the extra noise I added to the already crowded conversation. I totally agree with you regarding the approach and the proper steps to follow while changing/implementing something heavily tied to UX and UI. This can only be a great learning experience for all of us, and especially myself since I'm still probably the noob of the team :D I think one good example of process is the new Account Creation implementation, which started with low level UI prototypes, thorough discussions, multiple iterations, and an in-depth review process where many developers participated. It also involves, I think, the developer himself not pushing for the patch to land. The Account Creation still hasn't been merged, but I'm not trying to force it in anyway because I realized that this is a big change and it affects pretty much every single user. We need to be careful and sometimes force ourselves to go slower than we want to. Thank you again everyone for the great work and passionate involvement in this issue, and all the other aspects of Thunderbird. Let's keep building the best email client on the planet. On 2019-06-24 2:00 p.m., Jörg Knobloch wrote: > Hi friend of Thunderbird, > > Back in 2010 there was a discussion about how to restructure > preferences and AM, the thread started here[1]. > > Then in 2014 some dedicated volunteers started developing "AM in pref > tab" in [2] since the options were moved into a tab like in Firefox > for TB 38. Options in a tab were always hidden behind a pref and never > enabled until de-XBL forced us to move the options out of their > stand-alone window and into a tab. > > I personally thought that moving the "AM into (some sort) of tab" was > a good idea and wanted that feature in TB 68. Strings were already > approved by the TB module owner and landed for TB 38. As soon as "AM > in pref tab" landed, everyone started to scream: The TB module owner > who surely must have had a look at the WIP back when he approved the > strings, BenB, one of the major stake holders in account creation, and > finally Alex, our new UX lead who is the only one who can't be blamed > since he came very late to the party. > > Having a feature that no one wants on trunk 69 shortly after the > branch to 68 is an absolute maintenance nightmare since patches can > only be backported with manual and error-prone intervention. Therefore > I backed the entire lot out. > > This is a fine example of how UX is done, or not done, in TB and how > it shouldn't be done unless one wants to waste large amounts of > developer time. Any development, and particularly UX development, > should be done in the way I learned when I was working in the software > industry: > > 1. You analyse the problem and come up with a bunch of requirement the > new thing needs to fulfil. > 2. You design the new thing and write a detailed spec. > 3. You get agreement on what is to be implemented. > 4. You implement against that spec. > 5. You unit test against that spec. > 6. There is sign-off against the requirements you collected. > > Jörg. > > [1] > https://mail.mozilla.org/pipermail/tb-planning/2010-December/000632.html > [2] https://bugzilla.mozilla.org/show_bug.cgi?id=1096006 > > > _______________________________________________ > Maildev mailing list > Maildev@lists.thunderbird.net > http://lists.thunderbird.net/mailman/listinfo/maildev_lists.thunderbird.net > -- *Alessandro Castellani* Lead UX Architect Thunderbird
JK
Jörg Knobloch
Mon, Jun 24, 2019 9:58 PM

On 24/06/2019 23:12, Alessandro Castellani wrote:

It also involves, I think, the developer himself not pushing for the
patch to land. The Account Creation still hasn't been merged, but I'm
not trying to force it in anyway because I realized that this is a big
change and it affects pretty much every single user. We need to be
careful and sometimes force ourselves to go slower than we want to.

Well, you could integrate it into the new "AM in its own tab", like
suggested here:
https://bug1468167.bmoattachments.org/attachment.cgi?id=8985554

While we're at it, we can de-XUL the whole thing.

Jörg.

On 24/06/2019 23:12, Alessandro Castellani wrote: > It also involves, I think, the developer himself not pushing for the > patch to land. The Account Creation still hasn't been merged, but I'm > not trying to force it in anyway because I realized that this is a big > change and it affects pretty much every single user. We need to be > careful and sometimes force ourselves to go slower than we want to. Well, you could integrate it into the new "AM in its own tab", like suggested here: https://bug1468167.bmoattachments.org/attachment.cgi?id=8985554 While we're at it, we can de-XUL the whole thing. Jörg.
BB
Ben Bucksch
Tue, Jun 25, 2019 12:13 PM

Hey Jörg,

thanks for bringing this up.

Code:

Jörg Knobloch wrote on 24.06.19 23:00:

Having a feature that no one wants on trunk 69 shortly after the branch to 68 is an absolute maintenance nightmare since patches can only be backported with manual and error-prone intervention. Therefore I backed the entire lot out.

Ah, that explains why you backed it out. That makes sense. Thanks for explaining it.

FWIW, I think the work of aceman was a step in the right direction. I always found the split between TB global prefs and per-account prefs arbitrary, implementation specific (where you find a pref just depends on whether we allowed to change it per-account or not, and the decision is semi-random for each pref) and confusing.

We should put them at least in the same dialog and in the exactly same UI structure, so if somebody doesn't find the pref in the per-account prefs, he can look in the global prefs easily, and vise versa, without bending his brain and adapting to a different UI, and without opening a completely different dialog.

I think the code from aceman was a very good start. I was surprised how easy it was to re-structure it and put the accounts list on the left. This speaks to the good work of the original patch of aceman. I think later work could build on aceman's patch in Bug 1560344.
Method:

UX development, should be done in the way I learned when I was working in the software industry:

  1. You analyse the problem and come up with a bunch of requirement the new thing needs to fulfil.
  2. You design the new thing and write a detailed spec.
  3. You get agreement on what is to be implemented.
  4. You implement against that spec.
  5. You unit test against that spec.
  6. There is sign-off against the requirements you collected.

Yes, agree.

Our bad methods came from the fact that we did not have a proper professional UX designer, so each developer was just doing what he felt was right. Now that we have Aleca, we can go back to a proper method of Design first, Implement later.

However, we have to pay attention not to design by committee. We developers have to agree that Aleca has the final word. We can give arguments, and Aleca would be well-advised to at least consider them, because developers often add a certain point of view. But most developers are horrible UX designers, and we should respect the role of Aleca to make the decision.

Account manager UX:

So, to add my 2 cents to the discussion, here is what I see as requirements for the UI:

  • The account manager should be merged with the global prefs, because a user cannot know which pref is per-account and which is only global. For the user, everything are "settings", and they should all be found in the same place.
  • The sub-sections of the account prefs should be identical in UX to the sub-sections of the global prefs.
  • Do NOT use tabs. We already use tabs for content tabs. Top-level content tabs are something that users understand from browsers. Tabs are the uppermost top level, right below window level. Tabs are like a OS-level window. Do NOT use tabs for lower-order organization. Specifically, do not use tabs to sub-sections below other higher level sections. And never have 2 levels of tabs.
  • If you have several levels of organization (i.e. sections and sub-sections), we could use the same UX method of organizing them. Do not use a list for one level and tabs for another. That must be confusing. Instead, use a tree structure to show sections and sub-sections in the same list.
  • Alternatively, what we could do, however, is use a list on the left for top-level sections, and then use a page structure (like on dead-tree paper) with headings for sub-sections, all in the same scrolling page.

In other words, for an end user:

  • Tabs are the highest level, like an OS-level window. (Like a paper folder/binder on a shelf)
  • Lists on the left or top organize the main sections. Lists may be hierarchical to represent complex structures. (Like the sections and separators within the paper binder.)
  • Page headings are the lowest level of organization. (Like headings on a paper.)
BB
Ben Bucksch
Tue, Jun 25, 2019 12:16 PM

Jörg Knobloch wrote on 24.06.19 23:58:

While we're at it, we can de-XUL the whole thing.

If you can avoid to do this at the same time, avoid it. The more you put
in a single patch, the more bugs you get, the longer the development
takes, and higher the risk of regressions that are hard to isolate
(because it's all in the same patch).

https://en.wikipedia.org/wiki/Scope_creep

See also my post about "Atomic commits".

Jörg Knobloch wrote on 24.06.19 23:58: > While we're at it, we can de-XUL the whole thing. If you can avoid to do this at the same time, avoid it. The more you put in a single patch, the more bugs you get, the longer the development takes, and higher the risk of regressions that are hard to isolate (because it's all in the same patch). https://en.wikipedia.org/wiki/Scope_creep See also my post about "Atomic commits".
JK
Jörg Knobloch
Tue, Jun 25, 2019 2:06 PM

On 25/06/2019 14:13, Ben Bucksch wrote:

We should put them at least in the same dialog and in the exactly same
UI structure, so if somebody doesn't find the pref in the per-account
prefs, he can look in the global prefs easily, and vise versa, without
bending his brain and adapting to a different UI, and without opening
a completely different dialog.

I think the code from aceman was a very good start. ...

Well, both Magnus and Alex opted for "AM in its own tab", not
integrated with the other prefs.

While Aceman, Richard and others worked very hard on making "AM in tab"
work, the solution which was landed didn't have backing from neither
Magnus nor Alex and it was unclear how long it would ride the trains
into TB 69 beta or TB 70 beta just to be ripped out later again.

In the future, we need to carefully plan UI/UX changes and get broad
agreement before implementing or landing anything. Even "a very good
start" has not place in the product unless there is agreement and a
plan
(and timeline) how to develop it further. In absence of all of
this, the logical step was to revert the changes.

Jörg.

On 25/06/2019 14:13, Ben Bucksch wrote: > > We should put them at least in the same dialog and in the exactly same > UI structure, so if somebody doesn't find the pref in the per-account > prefs, he can look in the global prefs easily, and vise versa, without > bending his brain and adapting to a different UI, and without opening > a completely different dialog. > > I think the code from aceman was a very good start. ... Well, both Magnus and Alex opted for "AM in its *own* tab", not integrated with the other prefs. While Aceman, Richard and others worked very hard on making "AM in tab" work, the solution which was landed didn't have backing from neither Magnus nor Alex and it was unclear how long it would ride the trains into TB 69 beta or TB 70 beta just to be ripped out later again. In the future, we need to carefully plan UI/UX changes and get broad agreement before implementing or landing anything. Even "a very good start" has not place in the product unless there is agreement and *a plan* (and timeline) how to develop it further. In absence of all of this, the logical step was to revert the changes. Jörg.
BB
Ben Bucksch
Tue, Jun 25, 2019 3:32 PM

Jörg Knobloch wrote on 25.06.19 16:06:

it was unclear how long it would ride the trains

You explained why you backed out, and I understand. Given that it's not ripe for TB 68 and a large change, I think that was technically a good decision to back out until TB 68 ships, to make backports easier. It's not a reflection on the merits of the patch itself.

we need to carefully plan UI/UX changes and get broad agreement before implementing or landing anything.

Plan yes. That UX plan has to be make by Aleca. With input from others, but he makes the plan. That's his role.

You cannot design UI by committee. Our communication forums (bugzilla, mailing lists) are developer- and power user-heavy, and they tend to be nerdy and geeky and consequently very bad UX designers. We need to avoid that power reflex. Attention: That applies to reviewers and module owners, too: A good supervisor knows to listen to others. If we listen to developers in UX questions, we'll end up with a UI that only power users understand. So: hands off!

So, the final decision needs to be made by Aleca. Sure, with input from others like aceman and Richard and you and me, but eventually, Aleca makes the call and should not be pressured by any developers to any particular solution.

Ben

JK
Jörg Knobloch
Tue, Jun 25, 2019 9:34 PM

On 24/06/2019 23:00, Jörg Knobloch wrote:

Then in 2014 some dedicated volunteers started developing "AM in pref
tab" in [2] since the options were moved into a tab like in Firefox
for TB 38.

Just for a laugh:
https://support.postbox-inc.com/hc/article_attachments/360010625114/delete-account_2x.png

Accounts in the options, like we had it. Also check the images attached
to https://bugzilla.mozilla.org/show_bug.cgi?id=286664.

On 24/06/2019 23:00, Jörg Knobloch wrote: > > Then in 2014 some dedicated volunteers started developing "AM in pref > tab" in [2] since the options were moved into a tab like in Firefox > for TB 38. Just for a laugh: https://support.postbox-inc.com/hc/article_attachments/360010625114/delete-account_2x.png Accounts in the options, like we had it. Also check the images attached to https://bugzilla.mozilla.org/show_bug.cgi?id=286664.
OE
Onno Ekker
Wed, Jun 26, 2019 6:30 AM

On Tue, Jun 25, 2019 at 11:35 PM Jörg Knobloch jorgk@jorgk.com wrote:

On 24/06/2019 23:00, Jörg Knobloch wrote:

Then in 2014 some dedicated volunteers started developing "AM in pref
tab" in [2] since the options were moved into a tab like in Firefox
for TB 38.

Just for a laugh:
https://support.postbox-inc.com/hc/article_attachments/360010625114/delete-account_2x.png

Accounts in the options, like we had it. Also check the images attached
to https://bugzilla.mozilla.org/show_bug.cgi?id=286664.

Well, at least Postbox got the position of the selector better. After
General would be a good place, if you want to make the Account
Settings more prominent. At least it's not after Advanced, which
should always be the last, catch all, selector, in my opinion.

The screenshots also point to a few extra challenges that need to be
considered. What to do with Identities and what to do with Outgoing
server (SMTP) settings. Identities can be added to an account by the
user and are always directly coupled to that account, but there can be
multiple identities. Outgoing servers are created when you create an
account, but you can switch those between accounts and add/remove them
separately…

Onno

On Tue, Jun 25, 2019 at 11:35 PM Jörg Knobloch <jorgk@jorgk.com> wrote: > > On 24/06/2019 23:00, Jörg Knobloch wrote: > > > > Then in 2014 some dedicated volunteers started developing "AM in pref > > tab" in [2] since the options were moved into a tab like in Firefox > > for TB 38. > > Just for a laugh: > https://support.postbox-inc.com/hc/article_attachments/360010625114/delete-account_2x.png > > Accounts in the options, like we had it. Also check the images attached > to https://bugzilla.mozilla.org/show_bug.cgi?id=286664. Well, at least Postbox got the position of the selector better. After General would be a good place, if you want to make the Account Settings more prominent. At least it's not after Advanced, which should always be the last, catch all, selector, in my opinion. The screenshots also point to a few extra challenges that need to be considered. What to do with Identities and what to do with Outgoing server (SMTP) settings. Identities can be added to an account by the user and are always directly coupled to that account, but there can be multiple identities. Outgoing servers are created when you create an account, but you can switch those between accounts and add/remove them separately… Onno
JB
John Bieling
Wed, Jun 26, 2019 7:42 AM

Regarding the SMTP servers: I understand that we have the separate
section for it to reduce redundant information but I think it is worth
considering removing that and defining incoming and outgoing servers per
account. It simplifies the UI a lot. I always found that strange. For
example after deleting an account, the SMTP servers remained and piled
up over the years.

And I actually like how Postbox did the options window. I wish we would
go the same path.

John

Am 26.06.2019 um 08:30 schrieb Onno Ekker:

On Tue, Jun 25, 2019 at 11:35 PM Jörg Knobloch jorgk@jorgk.com wrote:

On 24/06/2019 23:00, Jörg Knobloch wrote:

Then in 2014 some dedicated volunteers started developing "AM in pref
tab" in [2] since the options were moved into a tab like in Firefox
for TB 38.

Just for a laugh:
https://support.postbox-inc.com/hc/article_attachments/360010625114/delete-account_2x.png

Accounts in the options, like we had it. Also check the images attached
to https://bugzilla.mozilla.org/show_bug.cgi?id=286664.

Well, at least Postbox got the position of the selector better. After
General would be a good place, if you want to make the Account
Settings more prominent. At least it's not after Advanced, which
should always be the last, catch all, selector, in my opinion.

The screenshots also point to a few extra challenges that need to be
considered. What to do with Identities and what to do with Outgoing
server (SMTP) settings. Identities can be added to an account by the
user and are always directly coupled to that account, but there can be
multiple identities. Outgoing servers are created when you create an
account, but you can switch those between accounts and add/remove them
separately…

Onno


Maildev mailing list
Maildev@lists.thunderbird.net
http://lists.thunderbird.net/mailman/listinfo/maildev_lists.thunderbird.net

Regarding the SMTP servers: I understand that we have the separate section for it to reduce redundant information but I think it is worth considering removing that and defining incoming and outgoing servers per account. It simplifies the UI a lot. I always found that strange. For example after deleting an account, the SMTP servers remained and piled up over the years. And I actually like how Postbox did the options window. I wish we would go the same path. John Am 26.06.2019 um 08:30 schrieb Onno Ekker: > On Tue, Jun 25, 2019 at 11:35 PM Jörg Knobloch <jorgk@jorgk.com> wrote: >> On 24/06/2019 23:00, Jörg Knobloch wrote: >>> Then in 2014 some dedicated volunteers started developing "AM in pref >>> tab" in [2] since the options were moved into a tab like in Firefox >>> for TB 38. >> Just for a laugh: >> https://support.postbox-inc.com/hc/article_attachments/360010625114/delete-account_2x.png >> >> Accounts in the options, like we had it. Also check the images attached >> to https://bugzilla.mozilla.org/show_bug.cgi?id=286664. > Well, at least Postbox got the position of the selector better. After > General would be a good place, if you want to make the Account > Settings more prominent. At least it's not after Advanced, which > should always be the last, catch all, selector, in my opinion. > > The screenshots also point to a few extra challenges that need to be > considered. What to do with Identities and what to do with Outgoing > server (SMTP) settings. Identities can be added to an account by the > user and are always directly coupled to that account, but there can be > multiple identities. Outgoing servers are created when you create an > account, but you can switch those between accounts and add/remove them > separately… > > Onno > > _______________________________________________ > Maildev mailing list > Maildev@lists.thunderbird.net > http://lists.thunderbird.net/mailman/listinfo/maildev_lists.thunderbird.net