PageRenderTime 38ms CodeModel.GetById 10ms RepoModel.GetById 1ms app.codeStats 0ms

/doc/development/ux_guide/users.md

https://gitlab.com/certik/gitlab-ce
Markdown | 164 lines | 119 code | 45 blank | 0 comment | 0 complexity | a4921ec897ba6ebaba1b0d0d829de491 MD5 | raw file
  1. ## UX Personas
  2. * [Nazim Ramesh](#nazim-ramesh)
  3. - Small to medium size organisations using GitLab CE
  4. * [James Mackey](#james-mackey)
  5. - Medium to large size organisations using CE or EE
  6. - Small organisations using EE
  7. * [Karolina Plaskaty](#karolina-plaskaty)
  8. - Using GitLab.com for personal/hobby projects
  9. - Would like to use GitLab at work
  10. - Working for a medium to large size organisation
  11. <hr>
  12. ### Nazim Ramesh
  13. - Small to medium size organisations using GitLab CE
  14. <img src="img/nazim-ramesh.png" width="300px">
  15. #### Demographics
  16. - **Age**<br>32 years old
  17. - **Location**<br>Germany
  18. - **Education**<br>Bachelor of Science in Computer Science
  19. - **Occupation**<br>Full-stack web developer
  20. - **Programming experience**<br>Over 10 years
  21. - **Frequently used programming languages**<br>JavaScript, SQL, PHP
  22. - **Hobbies / interests**<br>Functional programming, open source, gaming, web development and web security.
  23. #### Motivations
  24. Nazim works for a software development company which currently hires around 80 people. When Nazim first joined the company, the engineering team were using Subversion (SVN) as their primary form of source control. However, Nazim felt SVN was not flexible enough to work with many feature branches and noticed that developers with less experience of source control struggled with the central-repository nature of SVN. Armed with a wishlist of features, Nazim began comparing source control tools. A search for self-hosted Git server repository management returned GitLab. In his own words, Nazim explains why he wanted the engineering team to start using GitLab:
  25. >
  26. I wanted them to switch away from SVN. I needed a server application to manage repositories. The common tools that were around just didnt meet the requirements. Most of them were too simple or plain...GitLab provided all the required features. Also costs had to be low, since we dont have a big budget for those things...the Community Edition was perfect in this regard.
  27. >
  28. In his role as a full-stack web developer, Nazim could recommend products that he would like the engineering team to use, but final approval lay with his line manager, Mike, VP of Engineering. Nazim recalls that he was met with reluctance from his colleagues when he raised moving to Git and using GitLab.
  29. >
  30. The biggest challenge...why should we change anything at all from the status quo? We needed to switch from SVN to Git. They knew they needed to learn Git and a Git workflow...using Git was scary to my colleagues...they thought it was more complex than SVN to use.
  31. >
  32. Undeterred, Nazim decided to migrate a couple of projects across to GitLab.
  33. >
  34. Old SVN users couldnt see the benefits of Git at first. It took a month or two to convince them.
  35. >
  36. Slowly, by showing his colleagues how easy it was to use Git, the majority of the teams projects were migrated to GitLab.
  37. The engineering team have been using GitLab CE for around 2 years now. Nazim credits himself as being entirely responsible for his companys decision to move to GitLab.
  38. #### Frustrations
  39. ##### Adoption to GitLab has been slow
  40. Not only has the engineering team had to get to grips with Git, theyve also had to adapt to using GitLab. Due to lack of training and existing skills in other tools, the full feature set of GitLab CE is not being utilised. Nazim sold GitLab to his manager as an all in one tool which would replace multiple tools used within the company, thus saving costs. Nazim hasnt had the time to integrate the legacy tools to GitLab and hes struggling to convince his peers to change their habits.
  41. ##### Missing Features
  42. Nazims company want GitLab to be able to do everything. There isnt a large budget for software, so theyre selective about what tools are implemented. It needs to add real value to the company. In order for GitLab to be widely adopted and to meet the requirements of different roles within the company, it needs a host of features. When an individual within Nazims company wants to know if GitLab has a specific feature or does a particular thing, Nazim is the person to ask. He becomes the point of contact to investigate, build or sometimes just raise the feature request. Nazim gets frustrated when GitLab isnt able to do what he or his colleagues need it to do.
  43. ##### Regressions and bugs
  44. Nazim often has to calm down his colleagues, when a release contains regressions or new bugs. As he puts it every new version adds something awesome, but breaks something. He feels that old issues for "minor" annoyances get quickly buried in the mass of open issues and linger for a very long time. More generally, I have the feeling that GitLab focus on adding new functionalities, but overlook a bunch of annoying minor regressions or introduced bugs. Due to limited resource and expertise within the team, not only is it difficult to remain up-to-date with the frequent release cycle, its also counterproductive to fix workflows every month.
  45. ##### Uses too much RAM and CPU
  46. >
  47. Memory usages mean that if we host it from a cloud based host like AWS, we spend almost as much on the instance as what we would pay GitHub
  48. >
  49. ##### UI/UX
  50. GitLabs interface initially attracted Nazim when he was comparing version control software. He thought it would help his less technical colleagues to adapt to using Git and perhaps, GitLab could be rolled out to other areas of the business, beyond engineering. However, using GitLabs interface daily has left him frustrated at the lack of personalisation / control over his user experience. Hes also regularly lost in a maze of navigation. Whilst he acknowledges that GitLab listens to its users and that the interface is improving, he becomes annoyed when the changes are too progressive. Too frequent UI changes. Most of them tend to turn out great after a few cycles of fixes, but the frequency is still far too high for me to feel comfortable to always stay on the current release.
  51. #### Goals
  52. * To convince his colleagues to fully adopt GitLab CE, thus improving workflow and collaboration.
  53. * To use a feature rich version control platform that covers all stages of the development lifecycle, in order to reduce dependencies on other tools.
  54. * To use an intuitive and stable product, so he can spend more time on his core job responsibilities and less time bug-fixing, guiding colleagues, etc.
  55. <hr>
  56. ### James Mackey
  57. - Medium to large size organisations using CE or EE
  58. - Small organisations using EE
  59. <img src="img/james-mackey.png" width="300px">
  60. #### Demographics
  61. - **Age**<br>36 years old
  62. - **Location**<br>US
  63. - **Education**<br>Masters degree in Computer Science
  64. - **Occupation**<br>Full-stack web developer
  65. - **Programming experience**<br>Over 10 years
  66. - **Frequently used programming languages**<br>JavaScript, SQL, Node.js, Java, PHP, Python
  67. - **Hobbies / interests**<br>DevOps, open source, web development, science, automation and electronics.
  68. #### Motivations
  69. James works for a research company which currently hires around 800 staff. He began using GitLab.com back in 2013 for his own open source, hobby projects and loved the simplicity of installation, administration and use. After using GitLab for over a year, he began to wonder about using it at work. James explains:
  70. >
  71. We first installed the CE edition...on a staging server for a PoC and asked a beta team to use it, specifically for the Merge Request features. Soon other teams began asking us to be beta users too, because the team that was already using GitLab was really enjoying it.
  72. >
  73. James and his colleagues also reviewed competitor products including GitHub Enterprise, but they found it less innovative and with considerable costs...GitLab had the features we wanted at a much lower cost per head than GitHub.
  74. The company James works for provides employees with a discretionary budget to spend how they want on software, so James and his team decided to upgrade to EE.
  75. James feels partially responsible for his organisations decision to start using GitLab.
  76. >
  77. It's still up to the teams themselves [to decide] which tools to use. We just had a great experience moving our daily development to GitLab, so other teams have followed the path or are thinking about switching.”
  78. >
  79. #### Frustrations
  80. ##### Third Party Integration
  81. Some of GitLab EEs features are too basic, in particular, issues boards which do not have the level of reporting that James and his team need. Subsequently, they still need to use GitLab EE in conjunction with other tools, such as JIRA. Whilst James feels it isnt essential for GitLab to meet all his needs (his company are happy for him to use, and pay for, multiple tools), he sometimes isnt sure what is/isnt possible with plugins and what level of custom development he and his team will need to do.
  82. ##### UX/UI
  83. James and his team use CI quite heavily for several projects. Whilst theyve welcomed improvements to the builds and pipelines interface, they still have some difficulty following build process on the different tabs under Pipelines. Some confusion has arisen from not knowing where to find different pieces of information or how to get to the next stages logs from the current stages log output screen. They feel more intuitive linking and flow may alleviate the problem. Generally, they feel GitLabs navigation needs to reviewed and optimised.
  84. ##### Permissions
  85. >
  86. There is no granular control over user or group permissions. The permissions for a project are too tightly coupled to the permissions for Gitlab CI/build pipelines.
  87. >
  88. #### Goals
  89. * To be able to integrate third party tools easily with GitLab EE and to create custom integrations and patches where needed.
  90. * To use GitLab EE primarily for code hosting, merge requests, continuous integration and issue management. James and his team want to be able to understand and use these particular features easily.
  91. * To able to share one instance of GitLab EE with multiple teams across the business. Advanced user management, the ability to separate permissions on different parts of the source code, etc are important to James.
  92. <hr>
  93. ### Karolina Plaskaty
  94. - Using GitLab.com for personal/hobby projects
  95. - Would like to use GitLab at work
  96. - Working for a medium to large size organisation
  97. <img src="img/karolina-plaskaty.png" width="300px">
  98. #### Demographics
  99. - **Age**<br>26 years old
  100. - **Location**<br>UK
  101. - **Education**<br>Self taught
  102. - **Occupation**<br>Junior web-developer
  103. - **Programming experience**<br>6 years
  104. - **Frequently used programming languages**<br>JavaScript and SQL
  105. - **Hobbies / interests**<br>Web development, mobile development, UX, open source, gaming and travel.
  106. #### Motivations
  107. Karolina has been using GitLab.com for around a year. She roughly spends 8 hours every week programming, of that, 2 hours is spent contributing to open source projects. Karolina contributes to open source projects to gain programming experience and to give back to the community. She likes GitLab.com for its free private repositories and range of features which provide her with everything she needs for her personal projects. Karolina is also a massive fan of GitLabs values and the fact that it isnt a behemoth of a company. She explains that displaying every single thing (doc, culture, assumptions, development...) in the open gives me greater confidence to choose Gitlab personally and to recommend it at work. Shes also an avid reader of GitLabs blog.
  108. Karolina works for a software development company which currently hires around 500 people. Karolina would love to use GitLab at work but the company has used GitHub Enterprise for a number of years. She describes management at her company as old fashioned and explains that its less of a technical issue and more of a cultural issue to convince upper management to move to GitLab. Karolina is also relatively new to the company so shes apprehensive about pushing too hard to change version control platforms.
  109. #### Frustrations
  110. ##### Unable to use GitLab at work
  111. Karolina wants to use GitLab at work but isnt sure how to approach the subject with management. In her current role, she doesnt feel that she has the authority to request GitLab.
  112. ##### Performance
  113. GitLab.com is frequently slow and unavailable. Karolina has also heard that GitLab is a memory hog which has deterred her from running GitLab on her own machine for just hobby / personal projects.
  114. ##### UX/UI
  115. Karolina has an interest in UX and therefore has strong opinions about how GitLab should look and feel. She feels the interface is cluttered, it has too many links/buttons and the navigation feels a bit weird sometimes. I get lost if I dont pay attention. As Karolina also enjoys contributing to open-source projects, its important to her that GitLab is well designed for public repositories, she doesnt feel that GitLab currently achieves this.
  116. #### Goals
  117. * To develop her programming experience and to learn from other developers.
  118. * To contribute to both her own and other open source projects.
  119. * To use a fast and intuitive version control platform.