17
University of Tartu, 2013 Ivo Mägi - @ivomagi

University of Tartu, 2013 Ivo Mägi - @ivomagi€¦ · * Automated tests * Libraries, servers, services, ... * The best way to articulate and communicate UI requirements is over a

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: University of Tartu, 2013 Ivo Mägi - @ivomagi€¦ · * Automated tests * Libraries, servers, services, ... * The best way to articulate and communicate UI requirements is over a

University of Tartu, 2013

Ivo Mägi - @ivomagi

Page 2: University of Tartu, 2013 Ivo Mägi - @ivomagi€¦ · * Automated tests * Libraries, servers, services, ... * The best way to articulate and communicate UI requirements is over a

* 

* Collaboration infrastructure: rules for the game * Managing requirements * Issue tracker * Version control

* Development infrastructure: your tools at hand * Build script * UI mockuping/wireframing * Continuous integration * Staging environments * Automated tests * Libraries, servers, services, …

Page 3: University of Tartu, 2013 Ivo Mägi - @ivomagi€¦ · * Automated tests * Libraries, servers, services, ... * The best way to articulate and communicate UI requirements is over a

* 

* All your requirements are documented in the Wiki

* All your requirements are documented in unified format

* All your requirements are divisible for implementation

* You refer to the requirements from the issue tracker

Page 4: University of Tartu, 2013 Ivo Mägi - @ivomagi€¦ · * Automated tests * Libraries, servers, services, ... * The best way to articulate and communicate UI requirements is over a

* 

* Home of your day-to-day activity plan * And I do mean day-to-day, I wish to see you

actually using the tool

* Integrated with requirements and source code.

* I want to see in a task * What has to be done?

* Who is going to deliver it?

* When it is going to be delivered?

Page 5: University of Tartu, 2013 Ivo Mägi - @ivomagi€¦ · * Automated tests * Libraries, servers, services, ... * The best way to articulate and communicate UI requirements is over a

* 

* At minimum, I expect the following to be in your VCS * Source code * Build scripts * Automated tests

* All commits are linked to the issue in issue tracker. * Each iteration is tagged using the iteration

name

Page 6: University of Tartu, 2013 Ivo Mägi - @ivomagi€¦ · * Automated tests * Libraries, servers, services, ... * The best way to articulate and communicate UI requirements is over a

* 

* One-click build to * create executable/deployable

* run the application

* run the unit/acceptance tests

* If I have to install something manually, it must be truly well reasoned

* Runs on any machine * Configuration is external to the script

Page 7: University of Tartu, 2013 Ivo Mägi - @ivomagi€¦ · * Automated tests * Libraries, servers, services, ... * The best way to articulate and communicate UI requirements is over a

* 

* Shell scripts. Pay attention to cross-platform compatibility.

* Platform-specific build utilities, like Ant and Maven for Java apps.

* Virtual Machine building * VirtualBox creation scripts

* Puppet/Chef/…

Page 8: University of Tartu, 2013 Ivo Mägi - @ivomagi€¦ · * Automated tests * Libraries, servers, services, ... * The best way to articulate and communicate UI requirements is over a

* 

* To conduct acceptance testing

* To push releases for end-user validation

* To run automated tests

* …

Page 9: University of Tartu, 2013 Ivo Mägi - @ivomagi€¦ · * Automated tests * Libraries, servers, services, ... * The best way to articulate and communicate UI requirements is over a

* 

* For webapp * Does your customer provide the enviroments? * Do you have your own servers to use? * If not, university can grant access to Amazon EC2

instances. * Contact me about your needs.

* For mobile app * You need to push the deliverables to the

marketplace * For desktop app * You need to make the binary available for download

Page 10: University of Tartu, 2013 Ivo Mägi - @ivomagi€¦ · * Automated tests * Libraries, servers, services, ... * The best way to articulate and communicate UI requirements is over a

* 

* Monitoring VCS for updates

* Checking out the change

* Building the application

* Deploying the application

* Running automated tests on application

* Reporting the (possible) errors found

Page 11: University of Tartu, 2013 Ivo Mägi - @ivomagi€¦ · * Automated tests * Libraries, servers, services, ... * The best way to articulate and communicate UI requirements is over a

* 

* Jenkins *  Cloudbees as SaaS

* Bamboo

* CruiseControl

Page 12: University of Tartu, 2013 Ivo Mägi - @ivomagi€¦ · * Automated tests * Libraries, servers, services, ... * The best way to articulate and communicate UI requirements is over a

* 

* All your applications have UI

* The best way to articulate and communicate UI requirements is over a visual representation

* Create UI mockups or wireframes before development

Page 13: University of Tartu, 2013 Ivo Mägi - @ivomagi€¦ · * Automated tests * Libraries, servers, services, ... * The best way to articulate and communicate UI requirements is over a

* 

* Balsamiq

* Pidoco

Page 14: University of Tartu, 2013 Ivo Mägi - @ivomagi€¦ · * Automated tests * Libraries, servers, services, ... * The best way to articulate and communicate UI requirements is over a

* 

* Unit and acceptance tests are required

* Tests must be executable from the build script

* Tests must be repeatable

* Not yet graded in 2nd iteration, recommending to start investigating though

Page 15: University of Tartu, 2013 Ivo Mägi - @ivomagi€¦ · * Automated tests * Libraries, servers, services, ... * The best way to articulate and communicate UI requirements is over a

* 

* Extremely project – specific.

* Use existing infrastructure. Do not build your own storage / HTTP server / etc.

* Check out for 3rd party libraries before you write anything on your own

* If confused, consult with me first

Page 16: University of Tartu, 2013 Ivo Mägi - @ivomagi€¦ · * Automated tests * Libraries, servers, services, ... * The best way to articulate and communicate UI requirements is over a

* 

* Code reviews

* Static code analyzers

* Time trackers (yuck)

* Planning tools

* Modeling tools

* … feel free to investigate and use.

Page 17: University of Tartu, 2013 Ivo Mägi - @ivomagi€¦ · * Automated tests * Libraries, servers, services, ... * The best way to articulate and communicate UI requirements is over a

* 

*  You need to use the tools we described in previous slides

*  But focus on the benefits what the tool provides, as opposed to grading criteria's

*  If something seems unreasonable, lets discuss it