User:Homunq/application

From OLPC
Jump to: navigation, search

This page is to document my application to work as a contractor for OLPC during the summer and early fall of 2008.

Basic idea

I would like to apply to work on the Develop activity and related changes in Glucose. I can provide a rough plan and roadmap now, but inevitably there will be readjustments as the process goes on. Also, an important part of the job will be forging consensus on design decisions, and work done in this direction will not be immediately apparent in code. Thus, while I understand that I will be paid based on productivity and not on hours worked or lines of code, I hope that course corrections would be accounted for, and deliverables would be somewhat flexible.

Responsibilities

I think that about

  • 10% of my time would be spent on design and discussion.
  • 50% would be spent on coding and debugging new features (with glucose/fructose ratios varying from 0:4 to 3:1, averaging about 1:3).
  • 25% would be testing (and management of third-party testing) - I would be responsible for maintaining a test plan.
  • 5% would be working with other contributors to the Develop codebase.
  • And 10% would be non-develop contributions to Glucose - code review, bug management/occasional testing, and the odd patch or translation; my current top interests are datastore/backup and tablet mode.

Deliverables

This is pretty much the order I would like to take things. Note that the first priority is to have a solid, usable Develop; extra features are added one-by-one.

The median task should be complete in under half the given time and tested in another 25-30%. This leaves a margin of savings for the 20% of tasks which take over twice as long as scheduled.

  • Journal and Sugar patched and working with Develop. Develop runs usably on unmodified Joyride. work: 2 days.
  • Some code cleanup and commenting, removing unused classes: 3 days
  • View source (dump into journal version) in activity.py, usable by most activities: 1 day
  • New bundle format included in Glucose, relevant code and design reviewed and checked in.
  • Signature service in Glucose, and P_IDENT : 3-5 days
  • MANIFEST and signatures fixed in bundlebuilder.py and activitybundle.py: 2 days
  • Activity.info updates: threading/versioning support, : 1-5 days
  • installing multiple bundle versions, compile on install, activity registry fixed: 2 days
  • Glucose UI for managing the above: 3 days (optional)
  • Develop ensures valid bundle format, related UI: 2 days
  • Develop UI for signature management: 2-4 days
Total: 15-23 days, 3-5 weeks (confidence: high on core features, low on extra features)
  • Spanish localized strings for all of the above: 1 day (confidence: high)
  • Hello_world "new" activity
  • Adapt basic skeleton, UI for "creating": 2 days
  • Add some options, so you can have simpler or more complex versions (hello net, hello journal, edit toolbar, localized versions): 3 days (confidence: high - the question is only how many extra features fit in that time.)
  • 3-way merges: first step towards collaboration
  • Design and discussion: 2 days (and continues throughout)
  • UI for getting 3 merge targets: 1-2 days
  • unsupervised merges:2 days (stealing code)
  • hack gtksourceview to show patches (inline, serially?): 4-7 days
  • 2-way rollback: 3-5 days
  • 3-way merges: 2 days
Total: 14-20 days???
  • Help integrating sugarbot (GSoC project) into develop: 5 days
  • Notification of updated version available (for collaborating developers):
  • Most work in Glucose
  • est. 1-2 weeks

That is about three months of work there. After this, I would move towards more real-time collaboration, basing it on unsupervised merges+notification (granularity would be 1-5 lines merged at once). Pylint would also be a useful feature at this point, as it would help make collaboration safer. There are also plenty of tasks improving the Glucose UI for the new features (auto-update, for instance, could be two weeks' work or more to get everything in Glucose right).