Who We Are• An experiential learning program that provides
technology solutions for our partners, and real-world experience for our students
• Housed within the College of Business at Oregon State University
• Two components:– Hardware & software product testing
– Custom software application development
• Made up of 6 full-time staff and between 40 and 50 Student Interns
Where We Began• Curriculum Workflow, Our First .NET Application
– No Defined Process– Two Developers Just Getting it Done– Valued Client Interaction and Feedback
• Catalog & Schedule of Classes– First Application with Many Developers (6-8)– Still No Defined Process– Daily Progress Updates and TODO Lists– Valued Client Interaction and Feedback– Introduced Source Control
What We Were Missing• Documentation & Code Standards
– Result: miscommunication of requirements and code that is difficult to maintain.
• Testing– Result: users perception of the system skewed since they tested
it, and quality issues.• Defect Tracking
– Result: bugs slip through the cracks after they had been identified, and quality issues.
• Task Tracking– Result: unable to manage large numbers of developers and
keep them on task.– Result: no metrics upon completion on the effort put into the
project, which leads to an inability to make better estimates of future projects.
Why Did it Work• Small Shop• Documentation
– Advantage: fewer communication issues amongst developers and access to the author of code eases code maintenance.
• Testing & Defect Tracking– Advantage: respond quickly to issues and little overhead
allowing more individual developer resource to be applied to a single project. Quick bug fixing improves user perception of the system.
• Task Tracking– Advantage: focus on the project without being distracted by
other projects allowing tasks to be completed without much tracking.
Where We Are Today
• 3 Full Time Staff and 19 Student Interns
• 10 Active Projects, 1 Project Not Started
• 4 Projects In Bid
• 15 Projects in Maintenance
• Advantages of a Small Shop Are Gone
What is TFS?
• Connects developers, testers, managers, analysts by creating “a global, collaborative environment for the entire team.”
Version Version ControlControl
Work Item Work Item TrackingTracking
Build Build AutomationAutomation
Team Team CommunicationsCommunications
ReportingReporting
Process Templates• MSF Agile
– Relies on team member responsibility– Focuses more on the project– Less rigid
• MSF CMMI Process Improvement– Software Engineering Institute’s (SEI) Capability
Maturity Model Integration (CMMI) level 3 with transition to level 5
– Focuses more on the organization– More formal process requirements and
measurements
Review of Agile• As stated at www.agilemanifesto.org:
“We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value:
Individuals and interactions over processes and tools Working software over comprehensive documentation Customer collaboration over contract negotiation Responding to change over following a plan
That is, while there is value in the items on the right, we value the items on the left more.”
MSF Agile Concepts• Roles
– Business Analyst– Project Manager– Architect– Developer– Tester– Release Manager
• Work Items– Individual Work Activities Used
to Track Assignment and Status– Types
• Scenario • Quality of Service Requirement • Risk • Task• Bug
• Work Streams– A Group of Activities (can
include work items)– Can Cross Multiple Roles
Where We Will Be
• Documentation & Code Standards– Defined scenarios for capturing requirements and static code
analysis and reviews will help improve communication and code maintainability.
• Testing– Integrating testing from the beginning at the unit and system
levels will help create quality code.• Defect Tracking
– Bug work items will help keep bugs from slipping through the cracks improving the quality of the applications.
• Task Tracking– Task work items will help communicate to the team what needs
to be done and allow project managers to track progress and keep the customer informed.