Difference between revisions of "Pcsvnrelease"

From ProgClub
Jump to: navigation, search
(Web Design Methods for Online Casino Sites)
 
(5 intermediate revisions by 2 users not shown)
Line 1: Line 1:
Expert Usability Review vs Usability Testing
+
Pcsvnrelease is the ProgClub project release script. That's the software that helps us manage versioned releases of our projects as specified on the [[versions]] page. For other projects see [[projects]].
+
 
1 question we're often asked is which method is best: usability testing or expert usability reviews? Well, if they were sports cars, expert usability reviews might be described as a Porsche (fairly decent car and better than no car at all), but usability testing would become in a different league, namely Formula 1.  
+
= Status =
+
 
So, what'ersus the difference?
+
Under way. Not released yet, there's stuff [[#TODO|TODO]].
+
 
- A good expert usability review will be when a usability specialist inspects a website to identify potential usability problems
+
= Administration =
+
 
- Usability testing involves acquiring people through the market to evaluate your site whilst performing tasks
+
== Contributors ==
+
 
These people're really comparable in many ways in that both:  
+
Members who have contributed to this project. Newest on top.
+
 
- Find and prioritise usability difficulties
+
* [[User:John|John]]
+
 
- Evaluate designs in the context of tasks
+
All contributors have agreed to the terms of the [[ProgClub:Copyrights#ProgClub_projects|Contributor License Agreement]]. This excludes any upstream contributors who tend to have different administrative frameworks.
+
 
Do they come across the same symptoms?
+
Upstream contributors:
   
+
 
The answer depends on just how precisely you measure this particular, on balance no, not reliably. Most of the time, expert usability reviews tend to come across high level breaches of design rules and consistency. Usability testing is truly better at finding issues related to special domain knowledge and task flows.  
+
* TBA
+
 
If you were to carry out a very expert usability review before conducting usability testing, and compare the 2 sets of findings, you can observe exactly how the issues you found when compared with their real experiences. Did you find most the troubles? Which versions did you pass up? Which versions that you simply thought might always be issues flipped out not to end up being? This kind of will offer you a good feel for how expert usability reviews hold upward versus usability testing.  
+
== Copyright ==
+
 
Often, expert reviews will:
+
Copyright 2012, [[#Contributors|Contributors]].
+
 
- Overlook usability issues that arise during usability testing
+
== License ==
+
 
- Discover some issues that usability testing didn'capital t
+
Licensed under the [[New BSD license|New BSD]] license.
+
 
- Report false alarms (i.e. not real issues)
+
= Resources =
+
 
Which'ersus the problem. No matter how good the expert you are if you just trust by using an expert usability review you'll come across different sorts of issues and overlook some potentially serious ones.  
+
== Source code ==
+
 
Consider the case of a health website aimed specifically at brand-new mums. The expert usability review found plenty of great issues, but might have missed the main killer one that brought on participants to pass comments like "That's just so insensitive!" and "I wouldn'testosterone use this site anymore". And almost all because of the seemingly benign bit of banner advertising for a near by health club placed next to a helpful content about breasts eating. A reviewer would have difficulty predicting the indignant reaction of new mothers who felt the site has been rubbing their nose in it. All things considered there would always be little potential for them going everywhere near a gymnasium with a newborn.  
+
The repository can be browsed online:
   
+
 
Exactly how much overlap will there be between expert usability reviews & usability testing?
+
  https://www.progclub.org/pcrepo/pcsvnrelease
+
 
Normally, there will be some overlap in the problems present in both expert usability reviews and usability testing. Research done by Fu, Salvendy and Turley in 2002 estimated it to become surrounding 41%. Not as high because you might expect. Interestingly, expert usability reviews tend to come across more troubles in comparison to usability testing. But it'ersus leading over amount.  
+
The latest stable released version of the code is available from:
+
 
Expert usability reviews are good...  
+
https://www.progclub.org/svn/pcrepo/pcsvnrelease/tags/latest
+
 
Expert usability reviews will be more common than usability testing just because they will're less expensive and quicker to carry out. Typically, it'll only possess a number of times to inspect a site and write a report and because you don'capital t need to use labs nor recruit consumers, charges are significantly less expensive. For this reason, that they're often favored to usability testing, specifically when time and budget are squeezed.
+
Or if you want the latest version for development purposes:
+
 
There are nevertheless some pitfalls. For a start, a lot depends on the reviewer'ersus level of experience. No two usability experts will find exactly the same issues so the method will be even open up to practitioner variation. The leading problem nevertheless is actually that they will at times pass up the real difficulties that cause customers to fail tasks. This can be particularly correct when the target audience provides a particular skill set. For case in point, a helpful accountant may become better placed to diagnose specific kinds of issues related to online accountancy tasks than a non-accountant reviewer.  
+
svn://www.progclub.org/svn/pcrepo/pcsvnrelease/trunk
   
+
 
...But usability testing is truly da Daddy!
+
== Links ==
+
 
Usability testing takes much more time to package and organise and is more expensive as well - recruiting and incentivising people from a viewers may be costly. But it'ersus definitely worth the effort! The results give a truer picture in the real issues people encounter because these people're derived coming from real consumers in the first place.  
+
* [[Versions]], for information about the ProgClub version number system.
   
+
 
It's inconceivable exactly how sites go reside without checking to see that they will're actually usable. It's like building an auto but not test driving it. "Of course, we've built this unique great website. Umm, well no, we've not examined to find out if people can use it yet. But don'testosterone worry because just about all the links the job and the pages download quickly."
+
= Specifications =
+
 
Another full advantage of usability testing is actually that there'utes a smaller amount conjecture and feedback comes straight coming from the horse'ersus mouth. Video clips of user sessions in particular, can offer a powerful persuasion tool for reluctant stakeholders. It'ersus hard to argue with recordings of people in tears of frustration.  
+
== Functional specification ==
+
 
Use real customers and accept no substitute!
+
=== Standard /etc scripts ===
+
 
Both expert usability reviews and usability testing have their time and place. In practice, people often use expert usability reviews early again to straighten up their design in prep for usability testing. (Indeed this is definitely critical for accessibility testing, since it'ersus a waste of your energy to recruit and test consumers who can'capital t even get into your site in the first place.)
+
Within a branch there might be an /etc folder, and in /etc might be a 'test' or 'set-version' script as standard.
+
 
Whilst a helpful expert usability review will be better than nothing, it'ersus still vital to placed your internet site in front of people while early when it can be way too, fairly than leaving it as well late. Key elements such while site structure and navigation should end up being assessed with customers at the original opportunity. Otherwise you risk having your website considerably overhauled at a late stage.  
+
==== /etc/test ====
+
 
Ultimately, the main element is always to appreciate that expert usability reviews and usability testing are different beasts. The top approach would be to try and integrate both techniques. Remember though, you must test your site with real customers - accept no substitute!
+
The 'test' script, if it exists, will be executed by pcsvnrelease before beginning a release to confirm that the software is fit for release. If the 'test' script exits with a non-zero error level the release is aborted because crucial tests have failed.
http://www.de-lindenhof.nl/index.php/member/10751/
+
 
 +
==== /etc/set-version ====
 +
 
 +
The 'set-version' script, if it exists, will be called by pcsvnrelease after the VERSION* and RELEASE files have been updated so that if the project version number needs to be copied in to other files before a release the 'set-version' script can take care of that if necessary.
 +
 
 +
=== SUBPROJECTS file ===
 +
 
 +
The SUBPROJECTS file lives in the branch root and lists the projects that are managed as subprojects and released in conjunction with the main project. The format of the SUBPROJECTS file is:
 +
 
 +
  externals_path subproject_path subproject_url subproject_branch
 +
 
 +
For example, the 'slib' project might be included as a subproject with an entry in the SUBPROJECTS file like this:
 +
 
 +
lib/slib slib svn://www.progclub.org/svn/pcrepo/slib /trunk
 +
 
 +
Or if you wanted to use the latest maintenance release of version 1 of slib and ignore newer major versions:
 +
 
 +
lib/slib slib svn://www.progclub.org/svn/pcrepo/slib /branches/version/1
 +
 
 +
Note: when subprojects are released they are always minor releases even if the main project is having a major release.
 +
 
 +
Any svn:externals definitions that are defined on a project's subfolders that aren't listed in the SUBPROJECTS file don't get treated as subprojects and released but they do get set to a specific revision (with a revision and peg revision both set to the revision the repository is at at the time of the release). So if you didn't want to manage slib as a subproject but rather wanted to use a specific release of slib you could just define the svn:externals for slib to point at:
 +
 
 +
svn://www.progclub.org/svn/pcrepo/slib/tags/version/1/4
 +
 
 +
Or:
 +
 
 +
  svn://www.progclub.org/svn/pcrepo/slib/tags/release/2012/03/15/001
 +
 
 +
Or if you just wanted to use the latest release (but not manage slib as a subproject) you could specify an svn:externals of:
 +
 
 +
svn://www.progclub.org/svn/pcrepo/slib/tags/latest
 +
 
 +
=== Minor release ===
 +
 
 +
To do a typical minor release of the pcsvnrelease project:
 +
 
 +
$ pcsvnrelease minor svn://www.progclub.org/svn/pcrepo/pcsvnrelease /trunk
 +
 
 +
Or to release a specific branch (e.g. the version 1 branch) of the pcsvnrelease project:
 +
 
 +
$ pcsvnrelease minor svn://www.progclub.org/svn/pcrepo/pcsvnrelease /branches/version/1
 +
 
 +
=== Major release ===
 +
 
 +
To do a typical major release of the pcsvnrelease project:
 +
 
 +
  $ pcsvnrelease major svn://www.progclub.org/svn/pcrepo/pcsvnrelease /trunk
 +
 
 +
Or to release a specific branch (e.g. the version 1 branch) of the pcsvnrelease project:
 +
 
 +
$ pcsvnrelease major svn://www.progclub.org/svn/pcrepo/pcsvnrelease /branches/version/1
 +
 
 +
== Technical specification ==
 +
 
 +
Pcsvnrelease is implemented as a BASH script that uses the svn command-line utility to manipulate the repository.
 +
 
 +
= Tasks =
 +
 
 +
== TODO ==
 +
 
 +
Things to do, in rough order of priority:
 +
 
 +
* Implement minor releases
 +
* Implement major releases
 +
 
 +
== Done ==
 +
 
 +
Stuff that's done. Latest stuff on top.
 +
 
 +
* [[User:John|JE]] 2012-03-15: created project in svn with prototype release script and test repos.
 +
* [[User:John|JE]] 2012-03-15: created project page.
 +
 
 +
= Notes =
 +
 
 +
== Notes for implementers ==
 +
 
 +
If you are interested in incorporating this software into your project, here's what you need to know:
 +
 
 +
Just copy and paste your way to victory, this script is pretty much stand-alone.
 +
 
 +
== Notes for developers ==
 +
 
 +
If you're looking to set up a development environment for this project here's what you need to know:
 +
 
 +
There are testing repositories at:
 +
 
 +
* svn://www.progclub.org/svn/pctestrepo-a
 +
* svn://www.progclub.org/svn/pctestrepo-b
 +
 
 +
Those repositories have been setup with projects and dependencies so that you can test the release script on the 'testproj-a' project like this:
 +
 
 +
$ pcsvnrelease minor svn://www.progclub.org/svn/pctestrepo-a/testproj-a trunk
 +
$ pcsvnrelease major svn://www.progclub.org/svn/pctestrepo-a/testproj-a trunk
 +
$ pcsvnrelease minor svn://www.progclub.org/svn/pctestrepo-a/testproj-a branches/version/1
 +
$ pcsvnrelease major svn://www.progclub.org/svn/pctestrepo-a/testproj-a branches/version/1
 +
 
 +
When you release 'testproj-a' from 'pctestrepo-a' it should trigger a sub-release of 'testproj-b' from 'pctestrepo-b' and 'testproj-c' from 'pctestrepo-a'.

Latest revision as of 16:17, 11 December 2017

Pcsvnrelease is the ProgClub project release script. That's the software that helps us manage versioned releases of our projects as specified on the versions page. For other projects see projects.

Status

Under way. Not released yet, there's stuff TODO.

Administration

Contributors

Members who have contributed to this project. Newest on top.

All contributors have agreed to the terms of the Contributor License Agreement. This excludes any upstream contributors who tend to have different administrative frameworks.

Upstream contributors:

  • TBA

Copyright

Copyright 2012, Contributors.

License

Licensed under the New BSD license.

Resources

Source code

The repository can be browsed online:

https://www.progclub.org/pcrepo/pcsvnrelease

The latest stable released version of the code is available from:

https://www.progclub.org/svn/pcrepo/pcsvnrelease/tags/latest

Or if you want the latest version for development purposes:

svn://www.progclub.org/svn/pcrepo/pcsvnrelease/trunk

Links

  • Versions, for information about the ProgClub version number system.

Specifications

Functional specification

Standard /etc scripts

Within a branch there might be an /etc folder, and in /etc might be a 'test' or 'set-version' script as standard.

/etc/test

The 'test' script, if it exists, will be executed by pcsvnrelease before beginning a release to confirm that the software is fit for release. If the 'test' script exits with a non-zero error level the release is aborted because crucial tests have failed.

/etc/set-version

The 'set-version' script, if it exists, will be called by pcsvnrelease after the VERSION* and RELEASE files have been updated so that if the project version number needs to be copied in to other files before a release the 'set-version' script can take care of that if necessary.

SUBPROJECTS file

The SUBPROJECTS file lives in the branch root and lists the projects that are managed as subprojects and released in conjunction with the main project. The format of the SUBPROJECTS file is:

externals_path subproject_path subproject_url subproject_branch

For example, the 'slib' project might be included as a subproject with an entry in the SUBPROJECTS file like this:

lib/slib slib svn://www.progclub.org/svn/pcrepo/slib /trunk

Or if you wanted to use the latest maintenance release of version 1 of slib and ignore newer major versions:

lib/slib slib svn://www.progclub.org/svn/pcrepo/slib /branches/version/1

Note: when subprojects are released they are always minor releases even if the main project is having a major release.

Any svn:externals definitions that are defined on a project's subfolders that aren't listed in the SUBPROJECTS file don't get treated as subprojects and released but they do get set to a specific revision (with a revision and peg revision both set to the revision the repository is at at the time of the release). So if you didn't want to manage slib as a subproject but rather wanted to use a specific release of slib you could just define the svn:externals for slib to point at:

svn://www.progclub.org/svn/pcrepo/slib/tags/version/1/4

Or:

svn://www.progclub.org/svn/pcrepo/slib/tags/release/2012/03/15/001

Or if you just wanted to use the latest release (but not manage slib as a subproject) you could specify an svn:externals of:

svn://www.progclub.org/svn/pcrepo/slib/tags/latest

Minor release

To do a typical minor release of the pcsvnrelease project:

$ pcsvnrelease minor svn://www.progclub.org/svn/pcrepo/pcsvnrelease /trunk

Or to release a specific branch (e.g. the version 1 branch) of the pcsvnrelease project:

$ pcsvnrelease minor svn://www.progclub.org/svn/pcrepo/pcsvnrelease /branches/version/1

Major release

To do a typical major release of the pcsvnrelease project:

$ pcsvnrelease major svn://www.progclub.org/svn/pcrepo/pcsvnrelease /trunk

Or to release a specific branch (e.g. the version 1 branch) of the pcsvnrelease project:

$ pcsvnrelease major svn://www.progclub.org/svn/pcrepo/pcsvnrelease /branches/version/1

Technical specification

Pcsvnrelease is implemented as a BASH script that uses the svn command-line utility to manipulate the repository.

Tasks

TODO

Things to do, in rough order of priority:

  • Implement minor releases
  • Implement major releases

Done

Stuff that's done. Latest stuff on top.

  • JE 2012-03-15: created project in svn with prototype release script and test repos.
  • JE 2012-03-15: created project page.

Notes

Notes for implementers

If you are interested in incorporating this software into your project, here's what you need to know:

Just copy and paste your way to victory, this script is pretty much stand-alone.

Notes for developers

If you're looking to set up a development environment for this project here's what you need to know:

There are testing repositories at:

Those repositories have been setup with projects and dependencies so that you can test the release script on the 'testproj-a' project like this:

$ pcsvnrelease minor svn://www.progclub.org/svn/pctestrepo-a/testproj-a trunk
$ pcsvnrelease major svn://www.progclub.org/svn/pctestrepo-a/testproj-a trunk
$ pcsvnrelease minor svn://www.progclub.org/svn/pctestrepo-a/testproj-a branches/version/1
$ pcsvnrelease major svn://www.progclub.org/svn/pctestrepo-a/testproj-a branches/version/1

When you release 'testproj-a' from 'pctestrepo-a' it should trigger a sub-release of 'testproj-b' from 'pctestrepo-b' and 'testproj-c' from 'pctestrepo-a'.