You are on page 1of 14

Improving Process for Better

Software
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
Where We Began
Discover
Requirements
Via User
Feedback
Develop
The
Application
Publish
The
Application
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
Team Foundation Server
Bringing the Team Together
What is TFS?
• Connects developers, testers, managers,
analysts by creating “a global,
collaborative environment for the entire
team.”
Version
Control
Work Item
Tracking
Build
Automation
Team
Communications
Reporting
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
MSF Agile Process Guidance
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.