The “New project” screen truly deserves some love and attention. By adding new project templates, this screen is going to become even more complex. It doesn't have to be that way. We can't improve everything on one release, so let's separate improvements into smaller issues.
@pedroms I agree that presenting form fields that aren't relevant is bad, for a few reasons, but doing wizard-style steps have their own challenges.
One challenge is that you can't see the consequences of your choice until after you make it. e.g. you have to pick "import" before you can see where you can import from. This leads to people cycling through each choice before they fully understand what is possible. This is especially problematic when future iterations add new import options, and users never see these new options, even if they need them.
Another challenge is optimizing for the most common flow. e.g. if blank projects are the most common case, you're now adding a click, which people will see as a useless click.
One possible alternative to a wizard with defined steps is to basically have choices selected by default. e.g. what would the flow look like if Blank was already selected? If so, then the common flow would be just as fast. The downside would be that the other options would be hidden behind a drop-down. So what if you used a different element that showed all options simultaneously, and as you selected them, the rest of the page would adapt? Maybe this is no better than the current situation, which has a lot of visual clutter because of all the choices. But maybe it would be a good balance between clean and clear.
Perhaps another alternative would be to simply show more detail about each choice. e.g. Import existing project (Supports: GitHub, Bitbucket, Google Code, Fogbugz, Gitea, GitLab export, git URL) Or maybe that detail is only available on hover (gasp!) or while focused or something.
I swear GitHub used to let you enable/disable various repo features (e.g. wiki) from the New Repo flow, but I just checked and it's not there today. They do still let you quick-add a license and .gitignore.
@markpundsack thank you so much for your insightful comments, they surely gave me a lot to think about.
To your first comment: We're using #37399 (closed) to deliver the first iteration of simplification of this flow. I've mentioned you there so that you may comment specifically on those improvements.
@jeremy_@jramsay not sure where this falls in the ~Platform realm, so I'm mentioning you both.
The trouble we've been having with adding a “CI” tab might only get worse if we don't address the “New project” flow now. This is one of the first and key flows that almost all users go through.
We should convert this meta issue into an epic where we set the vision (some broad strokes) of what we would like to solve. Then, we break it into issues (smaller chunks) where we get more defined about the problems and solutions.
Additionally, we already have UX research done on this, which we should act on as soon as possible.
For these reasons, tackling this is a big UX priority. I would like for Product to prioritize UX explorations for this in the next milestone (or the one after, the latest). This is not a small thing to change or introduce, so I wouldn't actively involve FE or BE (just passively for their feedback).
@sarrahvesselov I would also like to hear your thoughts on the priority of this initiative.
Hi @pedroms, project is now assigned to myself. We are implementing (instance-level, group-level later) project templates via https://gitlab.com/gitlab-org/gitlab-ce/issues/47317 very soon. In this context, I think it makes sense to also rethink the flow of creating a new project as it's getting bigger and bigger over time.
I'd love to pre-plan a product/design discovery for 11.3 to update this page. First I wanted to check-in if this issue needs an update. I checked already closed issues.
I agree on the challenges regarding a wizard flow that @markpundsack brought up.
I honestly think that the current solution with clearly named tabs for the different options isn't too bad. What I am missing is more consistency across these tab contents.