I wonder if there is room for a product that grows with you?
What if there were a product that is exposed to you first in the simplest form. It's clean, elegant and simple. Easy and not intimidating to use.
As you use the product, your needs begin to increase and suddenly you need a new feature. As it turns out, the product actually supports this feature and so you turn it on. Now, you are turning on feature X, not feature package premium--just feature X.
In fact, the product actually has several additional features and functionality that can be enabled and disabled one at a time. None of these "extra" features cost "extra". They are all included in the base price of the package.
What if your product has a training module, where users can be guided through test use case scenarios that expose and demonstrate new feature modules. And what if we make it so that when you enable a new feature on the product, that feature only shows up to users who have completed the training guide for the new feature in the module.
In other words, in order for any specific extra feature to show up it needs to be:
1) Turned on by the administrator.
2) Flagged as "trained" on a per agent basis.
This way the base product has easy accessibility and additional features can be exposed gradually not taking effect for an agent until they have gone through the training to learn how to use it.
I'm going to go ahead and answer your question: I don't know if there's room for a product that grows with you, but I don't think such products are feasible.
I worked with a large personal finance software company at a time when they were enraptured with re-use. They had visions of doing things like sharing contact and project management modules across customer relationship management (CRM) and invoicing applications. I had a large stake in making sure they thought through these issues clearly, as the very form of the product I was leading the creation of was at stake.
We think about an invoice or a project or a task or a contact as something that's fairly self-evident, but they're not. More precisely, an application needs to create a model of these things, and that model is a useful simplification.
It is likely that "a product that grows with you" is one that fundamentally changes the model of the entities that your product works with. So, for example, a simple invoicing tool might have a client or a customer field, and that works in let's say ninety-five percent of the cases, but for some people, they want a full-on contact manager where you need to know that an invoice is for ABC Co., that the client contact is John Smith, that invoices should be sent to payables@abcco.example.com. Pretty soon you're going down the contact management slash engagement business process analysis rabbit hole.
And going down that rabbit hole is fine, but you're never going to be able to create 1. a simple, novice-friendly view of that industrial strength application that 2. stores data in a way that is semantically correct so that 3. when the user decides to upgrade from Invoicr Lite to Invoicr Enterprise Platinum their data isn't a nightmarish state.
This is one of the reasons why it took Windows user experience so long to approach anything even remotely as pleasant as the Mac: Windows had to support a much — let us say out of politeness — richer model computing than the Mac did. The Mac user was never exposed to certain details — like whether your filesystem was "really" hierarchical (the original Mac didn't have this feature) — but instead shown a simplified view of the world that Apple and developers had the freedom (and obligation) to implement by any means necessary.
That is how emacs has felt to me. There was a large amount of upfront learning, more than there probably should be for this example to make perfect sense, but after a few months with it I am able to do the basics pretty well. Every time I wish I could do something in emacs, a little bit of googling shows that there is a key binding for exactly what I want. So bit by bit, emacs is going from a weird text editor that does the basics into something way more useful than I thought.
/noob rant about the magic, magic!, of using emacs.
I think you are on track for an interesting idea but forcing training is certainly not the way to do it. I hate doing training in any software. UI/UX is all about keeping things intuitive/similar so new users pick it up with ease so there is no training required. Training is a buzz kill.
However, I think a piece of software that evolves is what most people intend when they start with a minimum viable product. What you don't see too often are benchmarks to "grade" users and automatically move them up to more advanced features. I'd have to think more about it to see how it could be implemented and how beneficial it would be but I think its interesting none the less. It would be similar to a game in which you "unlock" certain maps/levels/etc.
"UI/UX is all about keeping things intuitive/similar so new users pick it up with ease so there is no training required. "
Thats a fine objective for _some_ software. Twitter clients should be like that, the majority of what email clients or web browsers can be like that.
It's possible (probable?) that fully featured project management software can't be like that. There's too much external system level understanding required to expose everything the user needs to know about how and why to use the system in optimal ways to be able to encode it all in beautiful UX/UI.
Try and work out, as an exercise, how you design a UX/UI for a git client that'll allow a cvs or subversion user to "pick it up with ease". Some things "just don't work that way", and I'm reasonably sure project management, at least at medium and large scale, require user training (whether formal or self-trained-via-google, or through many iterations of trial and error).
Indeed, there's a balance to strike between retraining and familiarity.
_The Humane Interface_ discusses the balance between delivering something with "optimal usability" from an objective and scientifically validated standpoint vs. delivering a product the target audience can quickly familiarize themselves with and transfer their existing domain knowledge to.
So, while the Canon Cat may be a revolution in word processors, the average user will do better with something similar to Microsoft Word because they know it and can apply what they already know rather than learn a whole new way of word processing.
What about when the alternative to the software also requires training? For example, draftsmen didn't intuitively know how to create usable architectural or machine drawings; is it so horrible that today they have to be trained in the use of CAD software, instead of being trained in pencil and pen drafting?
If you're performing a complicated task, it's reasonable to ask that the software not make the task harder, but it's also reasonable to expect to have to learn how to use a new tool.
I suspect that project management (at least for some large projects) may be such a problem domain, where the tools are unavoidably complex.
The spreadsheet is a great example of something that is ridiculously intuitive when you first use it, and grows with you. From inserting values in cells, to formulae and UI features like freezing, to advanced constructs like pivot tables, and ultimately to programming.
I would call that a smooth UX trajectory from novice to expert.
The training is not meant to be patronizing, it's meant to insure that your users can use the feature properly. Also, there is to levels of user here--the admin user (who is in control of the feature) and the agent users (the agents who use the product to operate). The forced training is at the agent user level.
From experience, I think mandatory training is necessary otherwise you end up with your agents using fields as they _think_ they should be used instead of how they should be used.
this approach was tried by Gnome's Nautilus for a while, a few years back... and it failed miserably. It feels to me like a bad excuse for not designing a good UI in the first place...
Word's ribbon is a pretty good attempt at hiding the complexities of the program. I think that approach is better than a program which is always changing.
evrsoft 1st page [http://www.evrsoft.com/] implemented this pretty well. they have four modes, each of which shows a greater range of tools and options, but it's fully under your control which mode you're working in.
What if there were a product that is exposed to you first in the simplest form. It's clean, elegant and simple. Easy and not intimidating to use.
As you use the product, your needs begin to increase and suddenly you need a new feature. As it turns out, the product actually supports this feature and so you turn it on. Now, you are turning on feature X, not feature package premium--just feature X.
In fact, the product actually has several additional features and functionality that can be enabled and disabled one at a time. None of these "extra" features cost "extra". They are all included in the base price of the package.
What if your product has a training module, where users can be guided through test use case scenarios that expose and demonstrate new feature modules. And what if we make it so that when you enable a new feature on the product, that feature only shows up to users who have completed the training guide for the new feature in the module.
In other words, in order for any specific extra feature to show up it needs to be:
This way the base product has easy accessibility and additional features can be exposed gradually not taking effect for an agent until they have gone through the training to learn how to use it.