Improving Process for Better Software. Who We Are An experiential learning program that provides technology solutions for our partners, and real- world.
Published byModified over 4 years ago
Presentation on theme: "Improving Process for Better Software. Who We Are An experiential learning program that provides technology solutions for our partners, and real- world."— Presentation transcript:
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: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.