This is the product vision for Create. The Create stage of the DevOps lifecycle covers code creation, which includes source code management (Git, Git LFS etc), merge requests, wiki, snippets and Web IDE. Please read through to understand where we're headed and feel free to jump right into the discussion by commenting on one of the epics or issues, or by reaching out directly to our product manager leading this area: James Ramsay (E-Mail | Twitter)
Note that this stage is also involved in delivering improvements for our mobile development and delivery use case. If you have an interest in mobile development using GitLab, please also take a look there.
Git's distributed design made new collaborative workflows possible, and has been adopted rapidly over the last decade. Powerful simplifying concepts like forking and merge requests have been embraced in the everyday routines of nearly every developer, yet few significant changes have been made in recent years to embrace the global scale of collaboration between open source and private companies, or improve the way complex real world code is written, reviewed and merged.
GitLab has made it faster and easier to get ideas into production by creating a single integrated application. This is just the beginning. Greater maturity in the tools we use for creating, collaborating and reviewing will make it easier for everyone to start contributing, engineers to work better together, improve quality and build better application faster. It is still day one.
There are a few product categories that are critical for success here; each one is intended to represent what you might find as an entire product out in the market. We want our single application to solve the important problems solved by other tools in this space - if you see an opportunity where we can deliver a specific solution that would be enough for you to switch over to GitLab, please reach out to the PM for this stage and let us know.
Each of these categories has a designated level of maturity; you can read more about our category maturity model to help you decide which categories you want to start using and when.
Source code management enables coordination, sharing and collaboration across the entire software development team. Track and merge branches, audit changes and enable concurrent work, to accelerate software delivery. This category is at the "lovable" level of maturity.
Review code, discuss changes, share knowledge, and identify defects in code among distributed teams via asynchronous review and commenting. Automate, track and report code reviews. This category is at the "complete" level of maturity.
Review and share UI designs with versioning and point of interest discussions. This category is planned, but not yet available.
Share documentation and organization information with a built in wiki. This category is at the "complete" level of maturity.
A full featured Integrated Development Environment (IDE) built into GitLab so you can start contributing on day one with no need to spend days getting all the right packages installed into your local dev environment. This category is at the "minimal" level of maturity.
Store and share bits of code and text with other users. This category is at the "viable" level of maturity.
The Advanced Global Search in GitLab is a powerful search service that saves you time. Instead of creating duplicate code and wasting time, you can now search for code within other teams that can help your own project. GitLab leverages the search capabilities of Elasticsearch This category is planned, but not yet available.
Do pair programming directly in the Web IDE. This category is planned, but not yet available.
Gitter is an open source instant messaging application for developers, and is the place to connect the open source and software development community. This category is planned, but not yet available.
Gitaly is a Git RPC service for handling all the git calls made by GitLab. This category is planned, but not yet available.
❤️ More Complete (Minimally Lovable) Features to Solve Complex Problems
We build software with small mininal iterations, but at the same time we need to continue to improve the features that are proven to be valuable into complete, lovable features that exceed our users expectations.
This is particularly pertinent to the Create stage of the DevOps lifecycle which is relatively mature and the foundation on which GitLab is built.
✌️ Amplify Best Practices
Focussing on reducing the cycle time of development can result in good habits being forgotten. We should amplify the benefits of following the best practices when writing and reviewing code, so that when our customers grow we've helped build a foundation that will help them move even faster.
Being a single application provides unqiue opportunities to features that connect different parts of the GitLab application, with greater efficiency, or in entirely new ways. We must balance creating flows between stages of the DevOps lifecycle and the flows and feedback loops within the Create stage too.
We follow the same prioritization guidelines as the product team at large. When prioritizing new features and significant improvements we consider reach, impact, confidence and effort to find the most valuable improvements. This is based on RICE: Simple prioritization for product managers. Requests from customers and upvotes are an important signal for this process.
The 'Create: RICE scoring' spreadsheet is available on Google Drive to all GitLab staff. The spreadsheet is not public because it contains sensitive customer information.
Our entire public backlog for Create can be viewed here, and can be filtered by labels or milestones. If you find something you are interested in, you're encouraged to jump into the conversation and participate. At GitLab, everyone can contribute!
Issues with the "direction" label have been flagged as being particularly interesting, and are listed in the sections below.
There are a number of other issues that we've identified as being interesting that we are potentially thinking about, but do not currently have planned by setting a milestone for delivery. Some are good ideas we want to do, but don't yet know when; some we may never get around to, some may be replaced by another idea, and some are just waiting for that right spark of inspiration to turn them into something special.
Remember that at GitLab, everyone can contribute! This is one of our fundamental values and something we truly believe in, so if you have feedback on any of these items you're more than welcome to jump into the discussion. Our vision and product are truly something we build together!