Title: Background : The Product
1(No Transcript)
2- The semester was
- Intense
- Our hearts were in the work
Yeah
(Andrew Carnegie)
3 4- Used status meetings for technical discussions
- 3/4 4/4 (go figure)
5Effort Distribution
Operations Meetings, Risk Eval, Process, slides
6Weekly Team Effort - Spring 07
60 hrs/week average (team)
7- Because of all that
- We came out strong.
8- The next step?
- We cant wait to
9Have A Life!
We deserve it
10Our Client
11His preferences
12Our Clients Intuition
13What does our client want?
14Googles Libjingle
15Libjingle Example
16What did we do?
- Our background(or lack of)
- Took 15-744 Computer Networks
- Studied (books, papers, RFCs)
- Talked to experts
- Dave Andersen, Daniel Plakosh, Paulo Marques,
Tony, Brian McBarron - Performed walkthroughs
17We Learned!The eye sees only what the mind is
prepared to comprehend (Henri Bergson)
18Is there any problem?
19Project Context
Network (Router)
Peer A (Sender)
Peer B (Receiver)
20CC View
21For the technically inclined, three slides
22For the technically inclined
- Our client thinks that TCPs saw tooth shape is
bad, because it forces packet losses
Packet Loss
cwnd (congestion window)
(Courtesy of Dave Andersen)
Time
23For the technically inclined
- He thinks that a smoother curve will achieve
higher throughput. (That makes sense)
cwnd (congestion window)
Time
24For the technically inclined
Next slide focuses in this area
cwnd (congestion window)
Time
24
25For the technically inclined
26Lets see how it behaves in practice
27PATRICIO
28- Feasible
- Testable
- Measurable
- Achievable Project
- Now for our approach
29Perspectives on Process
- Operations
- Client Management
- Architectural Reconstruction
- Handling Uncertainties
- Planning
- Development Progress
30Operations
- Whats our process?
- Iterate on the Requirements Specification
- Iterate on the Design Specifications
- Verify design work against our SRS
- Strive toward a defined threshold of success
- Evaluate project risk each cycle
31Added chop-chop-tiveness to TSP
- Tailored peer evaluations
- Embraced satisfaction surveys
- Tracked process conformance, then reported it at
status meetings - Participated in improvement via post-mortem
- Collaborated during common work hours
- Adopted email templates for efficient
communication - Held knowledge sharing meetings (technology and
process)
32Takeaways from courses
- 15-744 Computer Networks
- 17-668 Computer Networks Mini
- 17-615 Software Process Definition
- 17-610 Risk Management for Software Systems
- Architecture
- QA scenarios helped us nail down our requirements
- Architecture reconstruction can help us gain more
insight into performance issues of protocol - Analysis
- Coverity Prevent for static analysis
33Client Management
- How do we operate with the client?
- Structured questions for client meetings
- Maintained a client history log
- Emailed reminders of our Wiki and project
documents - Each iteration on our Requirements Specification
shows it is working
34Libjingle Architectural Reconstruction
- What were dealing with
- Code that evolved from multiple company merges
- Brittle and complex code paths
- How we handled it
- Walkthroughs with Libjingle Chief Architect
- Analysis of code and team knowledge sharing
- We have completed iterations of our design
specifications
35Handling Uncertainties
- Identified the top risks during cycle
36Handling Technical Uncertainties
- Experimentation
- Objective was to uncover the dark areas
- Used the ACDM experiment templates
- A lot more ahead but weve accomplished
- Understanding some client assumptions
- Interfacing our architecture with third party
components
37Planning
- How do we plan?
- TSP development strategy
- Wideband Delphi estimation
- MS-Access custom TSPi tool
- Cycles planned initially, weekly updates
- Effort task completion, EV tracking
38A Look at Estimation
39Summer Plan
40Development Progress
- Is it working? Why the 15 derivation?
- Next cycle, we will buffer for unplanned tasks
41Accomplishments
- Requirement Specification Iteration
- Protocol Design Specification
- Test Suite Design Specification
- Libjingle architecture recovery
- Summer plan
- Test environment setup
42- One last accomplishment
- We understand that we ourselves are our best
assets. - We are a team!
43Future Work
- Verify were following initial proposals
- Hold common working hours during summer
- Average 48 hour work week during summer
- Continue process improvement via post-mortem
- Attempt to extend Coverity Prevent license
- Add entry/exit criteria to our summer tasks
44Lessons Learned
- Even if your customer is in Software Development,
it still doesnt mean they can describe exactly
what they want. - Communicate as much and as many ways possible
- n developers have the communication paths of
n(n-1)/2 - chop-chop has 10 paths, not including our 4
mentors
45More Lessons Learned
- We need to account for unplanned tasks in our EV
- Make design decisions and move on
46Questions
?
?
?
?
?
?
47Questions
?
?
?
?
?
?
48Project goals
- Implement file transfer protocol
- Implement test suite to check correctness and
measure performance
49Gantt Chart Spring 07
50Deliverables Threshold of Success
- Implement a protocol for a correct transfer of
files at least 10Mb between two computers
(protocol properties and correctness specified in
the SRS) - Implement a test suite that
- measures correctness and performance as defined
in SRS - produces a report of those results (report
structure defined in design document)
51Team Threshold of Success
- Team members work on assigned tasks to the level
of quality and effort (assigned hours per task)
specified in the project schedule. - Team members can stray up to 10 of estimated
schedule as long as they update the team when the
original deadline is reached.
52Roles
53(No Transcript)
54Libjingle Connectors
- Uses Signal/Slot Library
- Common interface for components
- Components do not need to know what theyre
calling - Components do not need to know whats calling
them - Emitted signals call all connected slots
55Experiment Extended Sequence Numbers
56Experiment pcp Direct Connections
57Packet Header Comparison
58RUDP Worst Case
59Estimation - Summer
- Estimation for development and QA tasks
- Minimum 754 hours
- Most likely 1024 hours
- Maximum 1352
- Productivity measure 67
- With 30 buffer
- Available hours 5 members 32 hours 12 weeks
1920
60Summer Plan - Estimates
61_at_Risk simulation results
- 95 probability of completing the project by
August 2, 2007 - 100 probability of completing the project by
August 8, 2007
62Architectural view - available
63Architectural views - recovered
64Architectural view test suite
65Architectural view test suite
66(No Transcript)
67(No Transcript)
68Protocol
69Test Suite
70Protocol - Work Breakdown Structure
1.1 Simple file transfer
1.2 Packet reordering and retransmission
1. Protocol impl.
1.3 RTT calculation
1.4 Window adjustments
1.5 Multiple peer connections
71Test suite Work Breakdown Structure
2.1 libjingle wrapper
2.2 NISTNet wrapper
2. Test suite impl.
2.3 logger
2.4 Sender agent
2.5 Receiver agent
72Implementation plan
- Build test suite parallel to protocol
- Test and release an increment of the protocol in
every cycle - Analyze protocol in different environments
73Quality goals
- Software Req. Spec. lt 1 major defect
- Design lt 1 major defect
- Coding standards
- Bugs / KLOC lt 5
74Severity of Defect
- Serious
- SRS Errors or ambiguity in requirements or
quality attributes - Design Docs Errors in architectural views.
Quality attributes not promoted. - Code wrong functionality
75Map Goal - Strategy
76For Code
- Static Analysis (cool!)
- Reviews
- Peer review (check list)
- Unit testing
- Integration testing.
- System testing (performance, reliability)
77Responsibilities
78Responsibilities
79Environment Setup for testing
- NISTNet for network emulation
- Gnuplot for plotting graphs
- Bugzilla for bug tracking
80For the technically inclined
- Graph represents ideal network
- One flow
- 10 ms RTT
- No buffering
- Less than 26 Mbits/s
- ((3210248bits/10 ms)1000)/1Million)
81What went well
- Balanced management activities and deliverables
- Defined threshold of success
- Tracked earned value
- Planned for summer
82What could have been better
- Communicate with the client about how we plan to
approach the problem - Document the requirements so that both client and
team has a clear understanding - Plan ahead and create prototype to mitigate
technology risks and satisfy client
83Process improvements for summer
- Continuously identify and mitigate risks
- Find dependencies between tasks
- Have entry and exit criteria for tasks
- Conduct knowledge sharing sessions on demand
- Use quality status reports for code
- Plan weekly
84Risk mitigation
- Used brainstorming sessions for mitigating top
three risks - Tracked and re-prioritized risks
85Mitigation strategies for top 3 risks
86For the technically inclined
- Graph represents ideal network
- One flow
- 10 ms RTT
- No buffering
- Less than 26 Mbits/s
- ((3210248bits/10 ms)1000)/1Million)