Early prototyping and building GIT on Omnicloud
Social coding is the next big thing that will happen to programming. O'Reilly is calling it one of 14 trends to watch in 2013. Companies like GitHub are growing like crazy. Developers we talk to tell us about a world where it is easy and effortless to coordinate development projects and work in teams.
Omnicloud makes team collaboration easy with Git. Git enables teams to work together on the same code base, and at the same time it acts like a time machine where team members can go back in history to previous states.
Every application that you host on Omnicloud will have Git support. Since Git is very advanced and the use cases are many, we asked ourselves what most users truly need from it. This is what we came up with:
User and team members shall be able to clone the project from a remote git repository.
User shall be able to switch branch.
User shall be able to publish the latest commit or choose another one in the commit history.
User shall be able to undo the last publish.
User shall be able to see the commit message of the currently published commit.
That led to the following mockup that we created as a clickable screenshot.
We then gave 5 individuals the same task. Some people might think we should have used more people, but it follows the reasoning popularised by Jakob Nielsen:
... his point is that testing with five users, fixing the problems they uncover, and then testing the revised site with five different users is a better use of limited resources than running a single usability test with 10 users.
Each user performed the task individually while our designer and developers observed it. Some users had plenty of experience with Git since before, others hadn't. That kind of diversity among your test users are important. By observing how they interacted with our mockups we learnt many things.
Our approach didn't have a guiding structure and some elements felt misplaced. The button where you could select another commit to deploy did not indicate that it included the commit history. This made it harder to understand the Git log concept.
Together we iterated and came up with the following.
After testing the above on five new users we iterated further, and here is the last available version.
Early prototyping is all about creating something visual that you can let people test. This together with a good user testing methodology brings tremendous value at low cost. We used clickable screenshots, but you may get similar results by just using pen and paper.
"If you think you know thy user, think again." - Abandon the fallacy that you as a designer/developer know how the user will interact with your product.
"Don't make me think." - A motto, seen from the user's perspective, that will help you build better GUIs. If the user have to stop even for a second to think, i.e. finding out how to navigate further, you have a flaw in your design.
"Protoype. Test. Develop. Test. Ship. Repeat." - By iterating according to the following pattern you are able to make your GUI more user friendly. Some flaws becomes embarrasing apparent once tested on users.
And most important of them all. Start testing!!
Coding Love,
Daniel and the rest of the Omnicloud team