View
4
Download
0
Category
Preview:
Citation preview
University of Tartu, 2013
Ivo Mägi - @ivomagi
*
* 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, …
*
* 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
*
* 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?
*
* 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
*
* 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
*
* 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/…
*
* To conduct acceptance testing
* To push releases for end-user validation
* To run automated tests
* …
*
* 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
*
* Monitoring VCS for updates
* Checking out the change
* Building the application
* Deploying the application
* Running automated tests on application
* Reporting the (possible) errors found
*
* Jenkins * Cloudbees as SaaS
* Bamboo
* CruiseControl
*
* 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
*
* Balsamiq
* Pidoco
*
* 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
*
* 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
*
* Code reviews
* Static code analyzers
* Time trackers (yuck)
* Planning tools
* Modeling tools
* … feel free to investigate and use.
*
* 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
Recommended