140 likes | 280 Views
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:
E N D
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
Team Foundation Server Bringing the Team Together
Work Item Tracking Version Control Reporting Team Communications Build Automation What is TFS? • Connects developers, testers, managers, analysts by creating “a global, collaborative environment for the entire team.”
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 toolsWorking software over comprehensive documentationCustomer collaboration over contract negotiationResponding 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.