Applied Agile andOpen Source Development



Applied Agile andOpen Source Development

0 0


applied-agile-and-scholar

Presentation for Nan Niu's class on 3/8/2016

On Github uclibs / applied-agile-and-scholar

Applied Agile andOpen Source Development

Sean Crowe / Glen Horton / James Van Mil

University Libraries Digital Collections and Repositories

Background

Culture

  • Open Source
  • ICLAs

Hydra Stack

Separation of concerns with best of breed components hydra stack - heirarchy of promises

Local team

Libraries

  • Developers
  • Librarians
  • Co-ops

IT@UC

  • Servers
  • System administration

Scholar/Curate

Self-submission repository responsive to University research and instruction community.Scholar@UC - http://scholar.uc.edu

Curate

Gem created by Notre Dame and developed in consortium including UC

Scholar@UC features

  • DOIs
  • Collections
  • Authentication

User groups & Task forces

  • Digital Repository Taskforce
    • Early Adopters Working Group
    • User Stories Working Group
    • Metadata Working Group

History

  • Digital Repository Task Force; Winter, 2013
  • Scholar@UC campus-wide rollout; Winter, 2016

Ruby/Rails culture

  • Convention over configuration
  • MVC
  • DRY

Agile Development

Agile software development is a set of principles for software development in which requirements and solutions evolve through collaboration between self-organizing, cross-functional teams. (Wikipedia)

This means:

Not planning the project milestones from the end-to-end...

A lot of communication throughout the project.

Scrum

Roles

Product owner, Scrum Master, Development team.

Workflow

A short "sprints" of development, usually a week or two, with daily "stand-ups", followed by communication and reflection.

Artifacts

The product backlog, and the sprint backlog.

Requirements

Requirements are best assembled and documented through conversation, to establish shared understanding functionality

User Story Mapping is an example of this kind of conversation. (Here's a good book on that topic) This process generates a map of workflow, with user roles, which can be used to create the backlog.

User stories

Descriptions of functionality that use business-language to capture what a user needs to do to complete a task.

Formatted as, for example:

As a user-type, I want to function, so that benefit.

Goal to to express testable system behavior in a management-friendly format.

Agile Development (in practice)

How our team applies everything we just covered

Scrum

Roles

Product owner committee Scrum Master / Development Team

Workflow

2-3 week Sprints Stand-ups 3 times a week (which also serve as department meetings) With a weekly swarm Followed by sprint wrap-up With bi-weekly product owner committee meetings

More on Workflow

It begins with sprint planning Create local branches with git Collaborate, communicate, and code Push branch, to Github, and open pull request Tests all pass, someone else reviews the branch It ends with sprint planning

Artifacts

The product backlog and the sprint backlog

Requirements

For us, this essentially means developing issues

A librarian Early Adopter Working Group works with faculty across UC to conduct focused sessions and they pass notes to the Use Cases Working Group, which develops user stories and then the Use Case Working group meets with the development team to analyze the stories and open issues.

Use Case Repository

DevOps

Development →   ← Operations

(it's a culture)

UC Libraries (the Dev)

cream filling

IT@UC (the Ops)

Why Devops?

breaks down silos

good for agile

reduces bottlenecks and errors

faster (continuous?) delivery

Infrastructure Automation

(Ansible, Puppet, Chef)

Containers

(Docker, Vagrant)

Continuous Integration

(Bamboo, Jenkins, Travis)

Quality Assurance

specs and manual testing

penetration testing

Production Deployment

Change Management

Questions?

uclibs.github.io/applied-agile-and-scholar

github.com/crowesn

github.com/hortongn

github.com/jamesvanmil

Applied Agile andOpen Source Development Sean Crowe / Glen Horton / James Van Mil University Libraries Digital Collections and Repositories