Getting Started. UC Santa Barbara Setup public repository (GitHub, Bitbucket) Identify workflow: https://www.atlassian.



Similar documents
In depth study - Dev teams tooling

Version Control Systems: SVN and GIT. How do VCS support SW development teams?

Understanding Code Management in a Multi-Vendor Environment. Examples of code management in a multi-team environment

Tech Radar - May 2015

The Agile Movement An introduction to agile software development

Call for Tender for Application Development and Maintenance Services

A Practical Guide to implementing Agile QA process on Scrum Projects

CloudBees Continuous Integration and Test with Appvance Enterprise August 28, 2013 Frank Cohen, (408)

Continuous Integration

Double Feature Talk. 1) Intro to SSL 2) Git Basics for Devs & Designers

Agile Project Management with Scrum

Benefits of Test Automation for Agile Testing

Mobile and Cloud computing and SE

You ll need to have: It d be great if you have:

Waterfall to Agile. DFI Case Study By Nick Van, PMP

CPSC 491. Today: Source code control. Source Code (Version) Control. Exercise: g., no git, subversion, cvs, etc.)

Atomate Development Process. Quick Guide

Lucy Zhang UI Developer Contact:

ECE 458 Engineering Software for Maintainability

Client Overview. Engagement Situation. Key Requirements

Agile Project Management in a Regulated Environment

Scrum and Testing The end of the test role Bryan Bakker 20 maart 2012

Group Assignment Agile Development Processes 2012

A BASELINE FOR WEB PERFORMANCE WITH PHANTOMJS

Working In Teams vs. Individually. CS 169 Fall 2012 Armando Fox & David Patterson

The Agile Project Manager

CHAPTER 3 : AGILE METHODOLOGIES. 3.3 Various Agile Software development methodologies. 3.4 Advantage and Disadvantage of Agile Methodology

Scrum vs. Kanban vs. Scrumban

FogBugz & Kiln. Tools for Software Teams From the Makers of Stack Overflow and Trello. Fog Creek Software

Software Development. Overview.

Developer Workshop Marc Dumontier McMaster/OSCAR-EMR

The Agile Drupalist. Methodologies & Techniques for Running Effective Drupal Projects. By Adrian AJ Jones (Canuckaholic)

The Cordova Development Lifecycle

AGILE & SCRUM. Revised 9/29/2015

26 May 2010 CQAA Lunch & Learn Paul I. Pazderski (CSM/CSP, OD-CM, CSQA) spcinc13@yahoo.com Cell: AGILE THROUGH SCRUM

Continuous Integration/Testing and why you should assume every change breaks your code

Roles: Scrum Master & Project Manager

Applying Agile Project Management to a Customized Moodle Implementation

Capstone Agile Model (CAM)

How To Plan An Agile Project

OpenStack CI: flow, tools and more

What CCPForge does Introduction to SESC and CCPForge Workshop Gemma Poulter

Is This Your Pipe? Hijacking the Build Pipeline

Collaboration Tools. EECS 690 Agile Software Development

Product Development Best Practices

Water-Scrum-Fall Agile Reality for Large Organisations. By Manav Mehan Principal Agile consultant

Your guide to building great apps. Upgrade your skills and update your tools to create the next great app

Software Quality Testing Course Material

Continuous Integration

Fail early, fail often, succeed sooner!

IT Home 2015 DevOps 研 討 會

Rugby: An Agile Process Model Based on Continuous Delivery

Team Foundation Server

SUCCESFUL TESTING THE CONTINUOUS DELIVERY PROCESS

CS 4240: Principles of Software Design. Course Introduction. Tom Horton

Moving your development to the Cloud using Visual Studio Online

JavaScript Applications for the Enterprise: From Empty Folders to Managed Deployments. George Bochenek Randy Jones

StriderCD Book. Release 1.4. Niall O Higgins

@tobiastrelle. codecentric AG 1

Introduction to Software Engineering: Overview and Methodologies

Discovery Projects Strategies for Defining the Opportunity. Tom Martin Senior Technology Consultant

Introduction to Agile and Scrum

GOVERNMENT SERVICES. Open Source Software Development Web Content Management Mobile + Web Apps

DELIVERABLE. Europeana Cloud: Unlocking Europe s Research via The Cloud. Deliverable D2.1 Development Environment

Testing in a Medical Device Context Limitations are few

Sandesh Prasanna Kumar

Agile Metrics. It s Not All That Complicated

Source Control Systems

Viewpoint. Choosing the right automation tool and framework is critical to project success. - Harsh Bajaj, Technical Test Lead ECSIVS, Infosys

MTAT Software Engineering

Selling Agile at Your Company

Agile extreme Development & Project Management Strategy Mentored/Component-based Workshop Series

Kanban vs Scrum Making the most of both

SMZ. SocialMedia. Z olutions

Testing and Quality in Agile Development Speaker: Allan Watty Company: ABB Inc Website:

Azure Day Application Development

Project Management. Chapter. A Fresh Graduate s Guide to Software Development Tools and Technologies

Handpoint Point of sale

CS 6361, SPRING 2010 Advanced Requirements Engineering Web Based Meeting Scheduler- Project Plan

The Learn-Verified Full Stack Web Development Program

Course Goals. Solve Non-Technical Customer problem Server side: Ruby on Rails Client side: HTML, CSS, AJAX, JavaScript Deploy using cloud computing

Agile Planning & Metrics That Matter

Transcription:

Getting Started Setup public repository (GitHub, Bitbucket) Identify workflow: https://www.atlassian.com/git/workflows Suggested: feature branch, gitflow Git branching basics: http://git-scm.com/book/en/git-branching-basic-branching-and-merging Find yourself an issue tracker GitHub -- link to Trello, Zapier Here s a good one that links to your github repo: https://waffle.io/ UML design tools: Draw your UML diagrams onine (no SW installation necessary!): http://yuml.me/ http://www.visual-paradigm.com/solution/freeumldesigntool Understand/learn about writing user stories http://www.mountaingoatsoftware.com/agile/user-stories, http://www.romanpichler.com/blog/user-stories/writing-good-user-stories/, http://codesqueeze.com/the-easy-way-to-writing-good-user-stories/, https://help.rallydev.com/writing-great-user-story

Getting Started Investigate language, frameworks, install necessary software Debuggers, IDE, tools, TDD Firebug: http://www.w3resource.com/web-development-tools/firebug-tutorials.php Web site testing: Selenium, Watir Chrome DevTools, javascript debugging tools Python: unittest, py.test, nose, pymock, http://wiki.python.org/moin/pythontestingtoolstaxonomy Ruby: http://guides.rubyonrails.org/testing.html C++: http://praveen.kumar.in/2010/04/30/introduction-to-test-driven-development-in-c-using-boost-testlibrary/, http://vimeo.com/13240481 Java: http://vimeo.com/10569751, http://www.javabeat.net/2011/04/test-driven-development-in-java/ Investigate mock up tools: flexmock, wireframing/mock ups http://www.justinmind.com/, http://mashable.com/2010/07/15/wireframing-tools/ Code coverage/metrics Java: http://emma.sourceforge.net/, http://cobertura.sourceforge.net/ http://c2.com/cgi/wiki?codecoveragetools Ruby: https://www.ruby-toolbox.com/categories/code_metrics Python: http://furius.ca/snakefood/, http://mindref.blogspot.com/2010/06/python-pymetrics.html

Getting Started Set up agile process (sprint plan) Story writing & tasks (Trello), burndown (burndownfortrello.com) Use slice-across-system & system works / demo at end of sprint PivotalTracker is free for public projects Set up continuous build process: Travis CI http://about.travis-ci.org/docs/user/getting-started Generate documentation from source code: http://www.stack.nl/~dimitri/doxygen/ Write documentation like code (python): http://sphinx-doc.org/ $50 reimbursable for tools/clouds/services you really need. Speak to mentor/chandra if you need more (before you spend!) Turn receipts into CS financial office, tell them to contact Chandra for approval and to charge the CS Capstone grant

Use Cases and User Stories Use cases: http://en.wikipedia.org/wiki/use_case http://en.wikipedia.org/wiki/use-case_analysis http://alistair.cockburn.us/get/2465 ftp://ftp.software.ibm.com/software/rational/web/whitepapers/raw14023- USEN-00.pdf http://www.gatherspace.com/static/use_case_example.html User stories: http://en.wikipedia.org/wiki/user_story http://capstone.cs.ucsb.edu/cs189a/support/dannorth-stories.pdf http://capstone.cs.ucsb.edu/cs189a/support/agilemodeling-stories.pdf http://www.romanpichler.com/blog/10-tips-writing-good-user-stories/ http://www.mountaingoatsoftware.com/agile/user-stories http://www.romanpichler.com/blog/user-stories/writing-good-user-stories/ http://codesqueeze.com/the-easy-way-to-writing-good-user-stories/ https://help.rallydev.com/writing-great-user-story 4

Capstone Project Requirements (1/2) Use of agile development process with per-sprint task tracking (recommended: Trello or PivotalTracker) Daily scrums recorded by scribe in shared Google Doc Class/discussion days: last 15mins of class Shared with Instructor, Mentor, TA, and team Weekly meetings (virtual is ok) with mentor Weekly meeting with TA Class/discussion attendance and participation in team activities Bring laptop to class Vision statement turned in by deadline (& approved by mentor) Draft 1 and 2 of requirements specification turned in by deadlines Evolve as you design and prototype; approved by mentor Working prototype for base functionality demonstrated in the last week of the quarter 5

Capstone Project Requirements (2/2) Use of a code repository (recommended: GitHub) Ongoing contributions by all members throughout Identify a workflow that works best for your team Can include preparation of requirements documents Use of an issue tracker (recommended: Waffle.io) Documented code Automated unit tests and integration and/or functional tests Code defensively! Use of user stories and/or use cases for requirements and design See next slide Use of UML for system requirements modeling and design Wireframes for user interfaces if any Complete 4 2-week sprints, record retrospectives for each 6

On-going Process Evolving (aka living ) requirements document Identify/learn (and teach each other) the technologies required Write user stories in particular; update the requirements as you go: Prioritize stories and mark mandatory, important, or desirable Assign time estimates to stories; improve your estimation ability over time Specify acceptance test for each story should be in code Concurrently as part of Sprint Break down stories into tasks (begin design/prototyping process) Prioritize tasks Assign timings to tasks Specify what (code) test(s) are to be used as evidence of task completion/ acceptance Each member/developer chooses task, implements, and tests task Another member does code review/test and accepts the pull request Test is the one specified above (Acceptance) When a Story is complete, some member performs story test/acceptance