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 realworld 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

Publish The Application

Develop 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, Work creating a global, Version analysts by Item Tracking Control collaborative environment for the entire team.
Reporting Build Automation Team Communications

Process Templates
MSF Agile
Relies on team member responsibility Focuses more on the project Less rigid

MSF CMMI Process Improvement


Software Engineering Institutes (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 Individual Work Activities Used to Track Assignment and Status Types
Scenario Quality of Service Requirement Risk Task Bug

Work Items

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.

You might also like