2. Success?
• Our aims are each different
• Wide adoption
• Learning experience
• Proud of code
• Benefit RCOS
All our projects are different.
•Integration into GNOME
•Learn a lot about Objective-C
•Code is robust & modular
•Give RCOS publicity
•Since aim for all projects are different, can’t really measure success here
•But we all do something in common
•Submit a proposal to Moorthy (tell him we’re gonna do something)
•Write code (Attempt to do what we’ve proposed)
3. Success.
Do what you set out to do.
•Might seem scary at first...
•Therefore, structure goals in a comfortable way
•How do you do this?
4. Setting Goals Effectively
• Helps:
• Transparency
• NOT over committing
• Efficiency
• So, how do you practically:
• Stay transparent
• Without committing to too much
• Keep goals manageable
•Transparency:
•When people are paying you, they like to hear what you’re doing.
•Also, don’t want to commit to more than you can do
•Efficiency:
•If you have structured goals, everyone is on the same page
5. 3-Tier Semester Goals
• Level 1 goals:
• Bare minimum
• Level 2 goals:
• Would be cool, should be achievable
• Level 3 goals:
• Ideal conditions, everything works out perfectly
•High level goals
•hope to achieve for the semester
•Level 1
•Bare minimum need to achieve to NOT consider project a failure.
•Level 2:
•would be cool, should be able to get to most
•Level 3:
•These are things that would make the results of the semester perfect, and that you may not have
time to accomplish.
6. 3-Tiers
• Helps:
• Transparency
• Not committing to too much
• Implementation priority
7. Example: Concert
• Level 1:
• Audio organization page is fully functional
• Manage collections page is fully functional
• Dashboard page is fully functional
• Level 2:
• Color scheme developed and implemented
• Buttons & Icons developed and implemented
• Level 3:
• Pretty start page with information about application
• UI is reliably responsive
• Loading notifications
AFTER goals: Time to implement
8. Iterative Development
• SD&D is awesome...but it kind of sucks
• Tons of writing about your “process”, not really
practical
• Iterative Development: epitome of practical
• Constant revision/re-evaluation of project & goals
• Choose an applicable iteration duration
• Lots of code to get something working:
• Longer iterations (2-3 weeks)
• Project already working/smaller scope:
• Shorter iterations (1 week)
Not an expert on agile development
•have found following useful
•Iteration duration
•Project is large (i.e. lots of code): larger iteration time
might be more useful
•Smaller iteration time is useful if goals could be
accomplished in a smaller amount of time
9. Each Iteration
• Starting a project?
• First iteration:
• Attempt an end-to-end (probably terrible)
solution
• In general:
• Refine goals based on lessons learned
• Choose next high-level goals to tackle
• Create granular tasks
• Contributors can make clear commitments
•end-to-end solution
•Could be CLI only, or Django app without views (just
models and unit tests)
•granular tasks
•need to complete to accomplish goal
•tasks can be assigned to people
•people can make clear commitments
10. Example: Concert
• High level goal:
• Audio organization page is fully functional
• Tasks:
• Retrieving list of a collection’s audio files should
be available via REST api
• Audio files panel retrieves and lists the files
• ...