SlideShare a Scribd company logo
1 of 43
Download to read offline
NERCOMP 2012




Agile Software Development in Practice:
Experience, Tips and Tools
from the Trenches of Higher Education

Valerie Puffet-Michel (valerie.puffet-michel@uconn.edu)
and Thomas Wood (thomas.a.wood@uconn.edu)


Student Affairs Information Technology
University of Connecticut




                                                          1
Who are we?

Student Affairs
Information Technology (SAIT)

Application development team
- 4 developers
- 1 team lead with several hats




                                  2
Who are our customers?

• Center for Students with Disabilities


• Residential Life


• Office of Student Services and
  Advocacy


• Dining Services


• Career Services




                                          3
Outline

• Why write custom software?

• Challenges of software development in higher education

• Our secret sauce!

• Walk through “The life of a feature”

• What worked for us and what didn’t ...

• Where do you start?




                                                           4
Why write custom software for higher education?

• When you can’t always get you want (from a vendor) ...
   • Quality
   • Features
   • Timeliness
• ... you can get what you need!
   • The features you need when you want them
   • Opportunity to design a system: software, business process, integration




                                                                               5
So ...
we want to develop software, but ...




                                       6
It’s not that easy ...

• In typical software projects:
 • Scope, resources, planning determined at start of the project ...
  • ... when you know the LEAST

• We face:
 • Limited resources
 • Diverse demands
 • Everything is important
   (no economy!)




                                                                       7
Agile




        8
What values are driving us?

 Individuals and interactions              over processes and tools


 Working software                          over comprehensive documentation


 Customer collaboration                    over contract negotiation


 Responding to change                      over following a plan




                       while there is value in the items on the right,

                           we value the items on the left more.

                                      Agile Manifesto




                                                                              9
Values   continued


                     10
Our secret sauce!




• Scrum: Agile Project management


• Good development practices




                                    11
Let’s walk through the life of a feature




                                           12
Meeting with the
customers

We want to hire a
notetaker...
It takes too much time
now!

Can you help us?




                         13
Mockup




         14
Clarify the story

• Val & the team have a conversation, clarify the story.




                                                           15
Estimate the story

• The team estimates using a card game called planning poker!




                                                                16
Identify stories and commitment!

• Team commits to a group of stories that they will work on in the next 2 weeks.




                                                                                   17
Daily Standup

• Meeting every day... 15 minutes... standing up!




                                                    18
Development in progress...




                             19
Conversation leads to just enough design

• Story as conversation


• What does it mean for a story to be “done”?


• Design just enough to implement the feature




                                                20
Source control and branching

  • Central source code repository


  • “Trunk”: always deliverable


  • “Branch”: private copy of the trunk




                                          21
Tests

• We believe strongly in tests.
• 2x as much test code as application code
• Tests make us fearless
• Tests give us executable documentation
• Our tests are automated and easy to run




                                             22
Two types of tests

• Unit tests


   • “When a notetaker is hired for a class, the notetaker should be added to
     the list of notetakers for the class.”


• Functional tests


   • “Given I am viewing the schedule for a prospective notetaker,
     when I check the box next to a class, enter a cell phone number
     and click the hire button, I should see the ‘notetaker hired’ message”




                                                                                23
Test Coverage

• Goal is to make sure every line of code is tested.


• All of the individual tests are collected in a test suite


• Coverage measures which lines of code are executed while a test suite run.




                                                                               24
Hire a notetaker screen




                          25
Tom is done!

• What does it mean to be “done”?


   • Story is implemented


   • Tests pass


   • Coverage is good.




                            What’s next?




                                           26
The team reviews the code

• Change is distributed to team members for review
• Why code review?
   • shared ownership
   • increase quality
   • follow standards
   • cross training for free




                                                     27
Jenkins helps test the feature automatically

• Jenkins is a continuous integration server.
• How does it work?
   • When new code is committed to trunk, Jenkins runs the tests
     automatically, measures the coverage, and deploys the application so Val
     can try it out.
• Goal:
   • Automated builds that verify quality:
   • Make sure we still have working software




                Work smarter, not harder!


                                                                                28
29
Development practices in a nutshell...

• Source code control


• Simple design


• Automated tests


• Code review


• Continuous integration




                                         30
Val accepts or rejects a story

• Last quality check




                                 31
Demo and customer feedback




                             32
Story is live!




                 33
Repeat as needed!

  • multiple stories (bricks)


  • multiple sprints (rooms)




                                34
Challenges we faced

• Customer collaboration
   • Getting regular time with customers.
   • Getting customers to test the software.
   • Not having the right users in the room (e.g. students, maintenance staff)
• Development practices & estimation
   • Deployment cost
   • Code review bottleneck
   • Difficulty estimating uncertain stories




                                                                                 35
What works for us?

• Customer collaboration and feedback
• Customer prioritizes the work, team only works on most important features.
• We make change happen, flexible
• We continually improve our practices.
• Deliver software as we go (one brick at a time!)



• Team works on one project at a time
• Management support and clear priorities set by SAITOC (Student Affairs IT
  Oversight Committee)


• We have fun and love what we do. Everyone is happy!




                                                                               36
Another view on our practices

• show data!




                                37
Where do you start?	

• One step at a time


• Make mistakes and learn from
  them


• Enjoy the journey ... patience.


• Make it fun!




                                    38
Acknowledgements

• Our team:


   • Matthew Coolbeth


   • Matthew Desmarais


   • Michael Keating


• SAIT




                         39
Questions ?


Valerie Puffet-Michel
valerie.puffet-michel@uconn.edu

Thomas Wood
thomas.a.wood@uconn.edu




                                  40
Learn more
• the agile manifesto: http://agilemanifesto.org/
• scrum
    • Intro to scrum - http://www.mountaingoatsoftware.com/topics/new-to-agile-or-scrum
    • Agile Project Management with Scrum - Ken Schwaber
    • Jeff Sutherland's blog: http://scrum.jeffsutherland.com/

• development practices
    • Practices of an Agile Developer - Venkat Subramanian, Handy Hunt
    • Extreme Programming Explained - Kent Beck, Cynthia Andres
    • Continuous delivery - Jez Humble, David Farley

• estimation, planning and stories
    • Planning poker: http://www.mountaingoatsoftware.com/topics/planning-poker
    • User Stories Applied: for agile software development - Mike Cohn
    • Agile Estimation and Planning - Mike Cohn

• from traditional project management to agility
    • The software Project Manager's Bridge to Agility - Michelle Sliger, Stacia Broderick
    • Agile Project Management: creating Innovative Products - 2nd Edition - Jim Highsmith

• certifications:
    • Scrum Master and Product Owner - Scrum alliance - http://www.scrumalliance.org/
    • PMI- ACP - http://www.pmi.org/Certification/New-PMI-Agile-Certification.aspx

                                                                                             41
Tools

• nose (www.readthedocs.org/docs/nose) - automated test framework


• Jenkins (www.jenkins-ci.org) - continuous integration server


• Pivotal Tracker (www.pivotaltracker.com) - agile project management


• Google Code Reviews (code.google.com/p/rietveld) - code review tool


• Subversion (subversion.apache.org) - version control system




                                                                        42
Software stack

• Debian Linux (www.debian.org) - operating system


• Python (www.python.org) - programming language


• Pylons (www.pylonshq.org) - web framework


• SQLAlchemy (www.sqlalchemy.org) - object relational manager


• Microsoft SQL Server - relational database




                                                                43

More Related Content

What's hot

Agile estimation and planning by bachan anand ( sep 10th)
Agile estimation and planning by bachan anand ( sep 10th)Agile estimation and planning by bachan anand ( sep 10th)
Agile estimation and planning by bachan anand ( sep 10th)Conscires Agile Practices
 
MeasureWorks - Velocity Conference Europe 2012 - a Web Performance dashboard ...
MeasureWorks - Velocity Conference Europe 2012 - a Web Performance dashboard ...MeasureWorks - Velocity Conference Europe 2012 - a Web Performance dashboard ...
MeasureWorks - Velocity Conference Europe 2012 - a Web Performance dashboard ...MeasureWorks
 
Introduction to TDD
Introduction to TDDIntroduction to TDD
Introduction to TDDAhmed Misbah
 
Devops, the future is here, it's just not evenly distributed yet.
Devops, the future is here, it's just not evenly distributed yet.Devops, the future is here, it's just not evenly distributed yet.
Devops, the future is here, it's just not evenly distributed yet.Kris Buytaert
 
DevOps Anti-Patterns
DevOps Anti-PatternsDevOps Anti-Patterns
DevOps Anti-PatternsFernando Ike
 
Continuously Deploying Culture: Scaling Culture at Etsy - Velocity Europe 2012
Continuously Deploying Culture: Scaling Culture at Etsy - Velocity Europe 2012Continuously Deploying Culture: Scaling Culture at Etsy - Velocity Europe 2012
Continuously Deploying Culture: Scaling Culture at Etsy - Velocity Europe 2012Patrick McDonnell
 
Approaches to Kanban with Microsoft Team Foundation Server (TFS) Dec 6-2012
Approaches to Kanban with Microsoft Team Foundation Server (TFS)  Dec 6-2012Approaches to Kanban with Microsoft Team Foundation Server (TFS)  Dec 6-2012
Approaches to Kanban with Microsoft Team Foundation Server (TFS) Dec 6-2012Imaginet
 
Introduction To Agile Refresh Savannah July20 2010 V1 4
Introduction To Agile Refresh Savannah July20 2010 V1 4Introduction To Agile Refresh Savannah July20 2010 V1 4
Introduction To Agile Refresh Savannah July20 2010 V1 4Marvin Heery
 
SharePoint and the Lean Enterprise
SharePoint and the Lean EnterpriseSharePoint and the Lean Enterprise
SharePoint and the Lean EnterpriseDave Healey
 
A Day in the Life: Developer Enhancements with Visual Studio 2012
A Day in the Life: Developer Enhancements with Visual Studio 2012A Day in the Life: Developer Enhancements with Visual Studio 2012
A Day in the Life: Developer Enhancements with Visual Studio 2012Imaginet
 
Prashant technical practices-tdd for xebia event
Prashant   technical practices-tdd for xebia eventPrashant   technical practices-tdd for xebia event
Prashant technical practices-tdd for xebia eventXebia India
 

What's hot (16)

Agile estimation and planning by bachan anand ( sep 10th)
Agile estimation and planning by bachan anand ( sep 10th)Agile estimation and planning by bachan anand ( sep 10th)
Agile estimation and planning by bachan anand ( sep 10th)
 
MeasureWorks - Velocity Conference Europe 2012 - a Web Performance dashboard ...
MeasureWorks - Velocity Conference Europe 2012 - a Web Performance dashboard ...MeasureWorks - Velocity Conference Europe 2012 - a Web Performance dashboard ...
MeasureWorks - Velocity Conference Europe 2012 - a Web Performance dashboard ...
 
Agile engineering practices
Agile engineering practicesAgile engineering practices
Agile engineering practices
 
Introduction to TDD
Introduction to TDDIntroduction to TDD
Introduction to TDD
 
Devops, the future is here, it's just not evenly distributed yet.
Devops, the future is here, it's just not evenly distributed yet.Devops, the future is here, it's just not evenly distributed yet.
Devops, the future is here, it's just not evenly distributed yet.
 
Anti-patterns
Anti-patternsAnti-patterns
Anti-patterns
 
DevOps Requires Agility
DevOps Requires AgilityDevOps Requires Agility
DevOps Requires Agility
 
DevOps Anti-Patterns
DevOps Anti-PatternsDevOps Anti-Patterns
DevOps Anti-Patterns
 
Continuously Deploying Culture: Scaling Culture at Etsy - Velocity Europe 2012
Continuously Deploying Culture: Scaling Culture at Etsy - Velocity Europe 2012Continuously Deploying Culture: Scaling Culture at Etsy - Velocity Europe 2012
Continuously Deploying Culture: Scaling Culture at Etsy - Velocity Europe 2012
 
Solr pattern
Solr patternSolr pattern
Solr pattern
 
Approaches to Kanban with Microsoft Team Foundation Server (TFS) Dec 6-2012
Approaches to Kanban with Microsoft Team Foundation Server (TFS)  Dec 6-2012Approaches to Kanban with Microsoft Team Foundation Server (TFS)  Dec 6-2012
Approaches to Kanban with Microsoft Team Foundation Server (TFS) Dec 6-2012
 
Introduction To Agile Refresh Savannah July20 2010 V1 4
Introduction To Agile Refresh Savannah July20 2010 V1 4Introduction To Agile Refresh Savannah July20 2010 V1 4
Introduction To Agile Refresh Savannah July20 2010 V1 4
 
SharePoint and the Lean Enterprise
SharePoint and the Lean EnterpriseSharePoint and the Lean Enterprise
SharePoint and the Lean Enterprise
 
A Day in the Life: Developer Enhancements with Visual Studio 2012
A Day in the Life: Developer Enhancements with Visual Studio 2012A Day in the Life: Developer Enhancements with Visual Studio 2012
A Day in the Life: Developer Enhancements with Visual Studio 2012
 
Anti-Patterns part 1
Anti-Patterns part 1Anti-Patterns part 1
Anti-Patterns part 1
 
Prashant technical practices-tdd for xebia event
Prashant   technical practices-tdd for xebia eventPrashant   technical practices-tdd for xebia event
Prashant technical practices-tdd for xebia event
 

Similar to Agile Software Development in practice: Experience, Tips and Tools from the Trenches of Higher Education

Software Supply Chain Automation Removes Roadblocks to Rugged DevOps
Software Supply Chain Automation Removes Roadblocks to Rugged DevOpsSoftware Supply Chain Automation Removes Roadblocks to Rugged DevOps
Software Supply Chain Automation Removes Roadblocks to Rugged DevOpsSeniorStoryteller
 
Get your Project back in Shape!
Get your Project back in Shape!Get your Project back in Shape!
Get your Project back in Shape!Joachim Tuchel
 
Concept to Completion: an Entrepreneurs Guide to Creating a Software Product
Concept to Completion: an Entrepreneurs Guide to Creating a Software ProductConcept to Completion: an Entrepreneurs Guide to Creating a Software Product
Concept to Completion: an Entrepreneurs Guide to Creating a Software ProductLee Jones
 
Zero to ten million daily users in four weeks: sustainable speed is king
Zero to ten million daily users in four weeks: sustainable speed is kingZero to ten million daily users in four weeks: sustainable speed is king
Zero to ten million daily users in four weeks: sustainable speed is kingplumbee
 
Agile, DevOps & Test
Agile, DevOps & TestAgile, DevOps & Test
Agile, DevOps & TestQualitest
 
From XP and Continuous Integration to DevOps
From XP and Continuous Integration to DevOpsFrom XP and Continuous Integration to DevOps
From XP and Continuous Integration to DevOpsIBM UrbanCode Products
 
Tooling for the JavaScript Era
Tooling for the JavaScript EraTooling for the JavaScript Era
Tooling for the JavaScript Eramartinlippert
 
Quality in Project Management
Quality in Project ManagementQuality in Project Management
Quality in Project Managementdaragao
 
Project Management Foundations Series Course 104 - Agile Project Management C...
Project Management Foundations Series Course 104 - Agile Project Management C...Project Management Foundations Series Course 104 - Agile Project Management C...
Project Management Foundations Series Course 104 - Agile Project Management C...Think For A Change
 
What are the Tools & Techniques in Agile Project Management?
What are the Tools & Techniques in Agile Project Management?What are the Tools & Techniques in Agile Project Management?
What are the Tools & Techniques in Agile Project Management?Tuan Yang
 
Agile the Pivotal Way
Agile the Pivotal WayAgile the Pivotal Way
Agile the Pivotal WayMike Gehard
 
Lean-Agile Development with SharePoint - Bill Ayers
Lean-Agile Development with SharePoint - Bill AyersLean-Agile Development with SharePoint - Bill Ayers
Lean-Agile Development with SharePoint - Bill AyersSPC Adriatics
 
Effective Prototyping Process for Software Creation
Effective Prototyping Process for Software CreationEffective Prototyping Process for Software Creation
Effective Prototyping Process for Software CreationJonathan Arnowitz
 
Intro Of Agile
Intro Of AgileIntro Of Agile
Intro Of AgileSam Hwang
 
Executing for Every Screen: Build, launch and sustain products for your custo...
Executing for Every Screen: Build, launch and sustain products for your custo...Executing for Every Screen: Build, launch and sustain products for your custo...
Executing for Every Screen: Build, launch and sustain products for your custo...Steven Hoober
 
Scaling r&d org while maintaining quality
Scaling r&d org while maintaining qualityScaling r&d org while maintaining quality
Scaling r&d org while maintaining qualityAviran Mordo
 
Standardization and strategy in agile
Standardization and strategy in agileStandardization and strategy in agile
Standardization and strategy in agileNaveen Gupta
 

Similar to Agile Software Development in practice: Experience, Tips and Tools from the Trenches of Higher Education (20)

Kku2011
Kku2011Kku2011
Kku2011
 
Software Supply Chain Automation Removes Roadblocks to Rugged DevOps
Software Supply Chain Automation Removes Roadblocks to Rugged DevOpsSoftware Supply Chain Automation Removes Roadblocks to Rugged DevOps
Software Supply Chain Automation Removes Roadblocks to Rugged DevOps
 
Get your Project back in Shape!
Get your Project back in Shape!Get your Project back in Shape!
Get your Project back in Shape!
 
Concept to Completion: an Entrepreneurs Guide to Creating a Software Product
Concept to Completion: an Entrepreneurs Guide to Creating a Software ProductConcept to Completion: an Entrepreneurs Guide to Creating a Software Product
Concept to Completion: an Entrepreneurs Guide to Creating a Software Product
 
Zero to ten million daily users in four weeks: sustainable speed is king
Zero to ten million daily users in four weeks: sustainable speed is kingZero to ten million daily users in four weeks: sustainable speed is king
Zero to ten million daily users in four weeks: sustainable speed is king
 
Agile, DevOps & Test
Agile, DevOps & TestAgile, DevOps & Test
Agile, DevOps & Test
 
From XP and Continuous Integration to DevOps
From XP and Continuous Integration to DevOpsFrom XP and Continuous Integration to DevOps
From XP and Continuous Integration to DevOps
 
Agile Methodology
Agile MethodologyAgile Methodology
Agile Methodology
 
Tooling for the JavaScript Era
Tooling for the JavaScript EraTooling for the JavaScript Era
Tooling for the JavaScript Era
 
Quality in Project Management
Quality in Project ManagementQuality in Project Management
Quality in Project Management
 
Project Management Foundations Series Course 104 - Agile Project Management C...
Project Management Foundations Series Course 104 - Agile Project Management C...Project Management Foundations Series Course 104 - Agile Project Management C...
Project Management Foundations Series Course 104 - Agile Project Management C...
 
What are the Tools & Techniques in Agile Project Management?
What are the Tools & Techniques in Agile Project Management?What are the Tools & Techniques in Agile Project Management?
What are the Tools & Techniques in Agile Project Management?
 
Agile the Pivotal Way
Agile the Pivotal WayAgile the Pivotal Way
Agile the Pivotal Way
 
Lean-Agile Development with SharePoint - Bill Ayers
Lean-Agile Development with SharePoint - Bill AyersLean-Agile Development with SharePoint - Bill Ayers
Lean-Agile Development with SharePoint - Bill Ayers
 
Effective Prototyping Process for Software Creation
Effective Prototyping Process for Software CreationEffective Prototyping Process for Software Creation
Effective Prototyping Process for Software Creation
 
Intro Of Agile
Intro Of AgileIntro Of Agile
Intro Of Agile
 
Core Principles Of Ci
Core Principles Of CiCore Principles Of Ci
Core Principles Of Ci
 
Executing for Every Screen: Build, launch and sustain products for your custo...
Executing for Every Screen: Build, launch and sustain products for your custo...Executing for Every Screen: Build, launch and sustain products for your custo...
Executing for Every Screen: Build, launch and sustain products for your custo...
 
Scaling r&d org while maintaining quality
Scaling r&d org while maintaining qualityScaling r&d org while maintaining quality
Scaling r&d org while maintaining quality
 
Standardization and strategy in agile
Standardization and strategy in agileStandardization and strategy in agile
Standardization and strategy in agile
 

Recently uploaded

CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistandanishmna97
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusZilliz
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsNanddeep Nachan
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Jeffrey Haguewood
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxRustici Software
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Victor Rentea
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Orbitshub
 
Platformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityPlatformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityWSO2
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProduct Anonymous
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDropbox
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...apidays
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoffsammart93
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesrafiqahmad00786416
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...apidays
 
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​Bhuvaneswari Subramani
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Victor Rentea
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FMESafe Software
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century educationjfdjdjcjdnsjd
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MIND CTI
 

Recently uploaded (20)

CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistan
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
 
Platformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityPlatformless Horizons for Digital Adaptability
Platformless Horizons for Digital Adaptability
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 

Agile Software Development in practice: Experience, Tips and Tools from the Trenches of Higher Education

  • 1. NERCOMP 2012 Agile Software Development in Practice: Experience, Tips and Tools from the Trenches of Higher Education Valerie Puffet-Michel (valerie.puffet-michel@uconn.edu) and Thomas Wood (thomas.a.wood@uconn.edu) Student Affairs Information Technology University of Connecticut 1
  • 2. Who are we? Student Affairs Information Technology (SAIT) Application development team - 4 developers - 1 team lead with several hats 2
  • 3. Who are our customers? • Center for Students with Disabilities • Residential Life • Office of Student Services and Advocacy • Dining Services • Career Services 3
  • 4. Outline • Why write custom software? • Challenges of software development in higher education • Our secret sauce! • Walk through “The life of a feature” • What worked for us and what didn’t ... • Where do you start? 4
  • 5. Why write custom software for higher education? • When you can’t always get you want (from a vendor) ... • Quality • Features • Timeliness • ... you can get what you need! • The features you need when you want them • Opportunity to design a system: software, business process, integration 5
  • 6. So ... we want to develop software, but ... 6
  • 7. It’s not that easy ... • In typical software projects: • Scope, resources, planning determined at start of the project ... • ... when you know the LEAST • We face: • Limited resources • Diverse demands • Everything is important (no economy!) 7
  • 8. Agile 8
  • 9. What values are driving us? Individuals and interactions over processes and tools Working software over comprehensive documentation Customer collaboration over contract negotiation Responding to change over following a plan while there is value in the items on the right, we value the items on the left more. Agile Manifesto 9
  • 10. Values continued 10
  • 11. Our secret sauce! • Scrum: Agile Project management • Good development practices 11
  • 12. Let’s walk through the life of a feature 12
  • 13. Meeting with the customers We want to hire a notetaker... It takes too much time now! Can you help us? 13
  • 14. Mockup 14
  • 15. Clarify the story • Val & the team have a conversation, clarify the story. 15
  • 16. Estimate the story • The team estimates using a card game called planning poker! 16
  • 17. Identify stories and commitment! • Team commits to a group of stories that they will work on in the next 2 weeks. 17
  • 18. Daily Standup • Meeting every day... 15 minutes... standing up! 18
  • 20. Conversation leads to just enough design • Story as conversation • What does it mean for a story to be “done”? • Design just enough to implement the feature 20
  • 21. Source control and branching • Central source code repository • “Trunk”: always deliverable • “Branch”: private copy of the trunk 21
  • 22. Tests • We believe strongly in tests. • 2x as much test code as application code • Tests make us fearless • Tests give us executable documentation • Our tests are automated and easy to run 22
  • 23. Two types of tests • Unit tests • “When a notetaker is hired for a class, the notetaker should be added to the list of notetakers for the class.” • Functional tests • “Given I am viewing the schedule for a prospective notetaker, when I check the box next to a class, enter a cell phone number and click the hire button, I should see the ‘notetaker hired’ message” 23
  • 24. Test Coverage • Goal is to make sure every line of code is tested. • All of the individual tests are collected in a test suite • Coverage measures which lines of code are executed while a test suite run. 24
  • 25. Hire a notetaker screen 25
  • 26. Tom is done! • What does it mean to be “done”? • Story is implemented • Tests pass • Coverage is good. What’s next? 26
  • 27. The team reviews the code • Change is distributed to team members for review • Why code review? • shared ownership • increase quality • follow standards • cross training for free 27
  • 28. Jenkins helps test the feature automatically • Jenkins is a continuous integration server. • How does it work? • When new code is committed to trunk, Jenkins runs the tests automatically, measures the coverage, and deploys the application so Val can try it out. • Goal: • Automated builds that verify quality: • Make sure we still have working software Work smarter, not harder! 28
  • 29. 29
  • 30. Development practices in a nutshell... • Source code control • Simple design • Automated tests • Code review • Continuous integration 30
  • 31. Val accepts or rejects a story • Last quality check 31
  • 32. Demo and customer feedback 32
  • 34. Repeat as needed! • multiple stories (bricks) • multiple sprints (rooms) 34
  • 35. Challenges we faced • Customer collaboration • Getting regular time with customers. • Getting customers to test the software. • Not having the right users in the room (e.g. students, maintenance staff) • Development practices & estimation • Deployment cost • Code review bottleneck • Difficulty estimating uncertain stories 35
  • 36. What works for us? • Customer collaboration and feedback • Customer prioritizes the work, team only works on most important features. • We make change happen, flexible • We continually improve our practices. • Deliver software as we go (one brick at a time!) • Team works on one project at a time • Management support and clear priorities set by SAITOC (Student Affairs IT Oversight Committee) • We have fun and love what we do. Everyone is happy! 36
  • 37. Another view on our practices • show data! 37
  • 38. Where do you start? • One step at a time • Make mistakes and learn from them • Enjoy the journey ... patience. • Make it fun! 38
  • 39. Acknowledgements • Our team: • Matthew Coolbeth • Matthew Desmarais • Michael Keating • SAIT 39
  • 41. Learn more • the agile manifesto: http://agilemanifesto.org/ • scrum • Intro to scrum - http://www.mountaingoatsoftware.com/topics/new-to-agile-or-scrum • Agile Project Management with Scrum - Ken Schwaber • Jeff Sutherland's blog: http://scrum.jeffsutherland.com/ • development practices • Practices of an Agile Developer - Venkat Subramanian, Handy Hunt • Extreme Programming Explained - Kent Beck, Cynthia Andres • Continuous delivery - Jez Humble, David Farley • estimation, planning and stories • Planning poker: http://www.mountaingoatsoftware.com/topics/planning-poker • User Stories Applied: for agile software development - Mike Cohn • Agile Estimation and Planning - Mike Cohn • from traditional project management to agility • The software Project Manager's Bridge to Agility - Michelle Sliger, Stacia Broderick • Agile Project Management: creating Innovative Products - 2nd Edition - Jim Highsmith • certifications: • Scrum Master and Product Owner - Scrum alliance - http://www.scrumalliance.org/ • PMI- ACP - http://www.pmi.org/Certification/New-PMI-Agile-Certification.aspx 41
  • 42. Tools • nose (www.readthedocs.org/docs/nose) - automated test framework • Jenkins (www.jenkins-ci.org) - continuous integration server • Pivotal Tracker (www.pivotaltracker.com) - agile project management • Google Code Reviews (code.google.com/p/rietveld) - code review tool • Subversion (subversion.apache.org) - version control system 42
  • 43. Software stack • Debian Linux (www.debian.org) - operating system • Python (www.python.org) - programming language • Pylons (www.pylonshq.org) - web framework • SQLAlchemy (www.sqlalchemy.org) - object relational manager • Microsoft SQL Server - relational database 43