Dedicated Project Visit Proposal v3

Jacob Dalton

November 9th - December 21st 2012

My personal page on the wiki: http://opensourceecology.org/wiki/Jacob_Dalton

I would like to visit FeF from November 9th to December 21st and take on the role of on site programmer in a trial capacity.

Motivation

For the past 2 months I’ve been in collaboration with Aaron Makaruk and Brad Lewis developing a web application for True Fans to submit videos. This has gone well, and I hope to deploy this application in December. Although remote collaboration has been a fulfilling, there is no substitute for working with people in person to address the project’s needs directly. I believe you’ve considered having a programmer on site before, and hopefully I can prove the utility of this idea without over committing the project’s resources to the position. Moreover, I have strong opinions about our current web infrastructure, and I would like to develop a plan to improve it.

Responsibilities and Work Product

  1. Develop the True Fan web application. Deploy application once finished.
  2. Participate in collaborative production runs.

After completion of the True Fans application, I will pursue other programming and IT related projects commensurate with OSE’s priorities and goals.

Conditions for Success

1. Develop and deploy True Fan application.

The True Fans web application has been in development for two months. By the time of my arrival it should be nearing completion and ready for user testing. As the primary developer of this application it is my responsibility to see that features are added to meet the needs of the design in a manner that is bug free and efficient. Soon after my arrival at OSE, I will consult with the project manager and founder to work out any necessary details relevant to OSE. Afterwards, I will develop any remaining features that are desired and then commence testing in coordination with frontend developer Brad Lewis. I will conduct user testing with the residents of FeF and possibly remote volunteers over skype. Using this data, we’ll tweak and adjust the app. Once the final app is approved by the project manager and founder, the app will be deployed on the OSE wiki.

 Visible Success: App is released to the public before Christmas.

  Estimated Time: 4 weeks programming time.

2. Participate in Collaborative Production Runs

I will make myself available for work on collaborative production runs and other daily work at FeF. As a landscaper, I have significant experience working outdoor construction projects and should be useful with minimal training in that domain. My metal fabrication skills are still rather basic. I have used a lathe, CNC mill, and iron worker. I am familiar and comfortable (although not terribly knowledgeable) with wire feed welders. The first skill I would like to work on is plasma torching. During my stay at FeF, I will seek to develop my fabrication skills and leverage my existing skill base in pursuit of OSE goals and priorities.

 Visible Success: Useful contributions during collaborative production runs.

  Estimated Time: 4-6 hours a day non-programming time.

Other IT Goals Contingent Upon Completing True Fans Application

        If the True Fans application is completed before my DPV is finished, I will then consult with other members of OSE to determine the next highest priority for my efforts. Candidates for future work product include: programming lessons given to FeF residents, a strategic plan for web infrastructure, or the development of a CAM solution for torch table gcode. Pursuit of these goals will not be initiated until the completion of the True Fans Application, and metrics for success and estimates of time will be generated at the time a new goal is chosen.

Time Management

I’ve found that any task that requires deep concentration and creative thinking only yields about 6 hours of high quality output a day, other factors being optimal. As such, I plan to spend 4-6 hours a day coding or designing in pursuit of the stated concrete objectives. The rest of my time (the other 2-3 hours a day) I plan to commit to collaborative production runs and improving my fabrication skills. I would really like to work with each person at FeF so that I can survey how they use the web infrastructure and what their needs are in terms of software, computing technology, and knowledge management.

Pre-Arrival Report

Before arriving, at FeF I would like to record my perceptions and view of the project from the perspective of an external observer. I think this information would valuable to those working inside the bubble at FeF and to help to cultivate a culture of usability thinking in OSE.

Weekly Milestones

Nov. 16 - Nov. 18

PowerCube Production Run / Set Up Work Space / Clarify Final Design Specifications

Nov. 19 - Nov. 25

CEB Production Run / Finished, Testable Prototype.

Nov. 26 - Dec. 2

User Testing & Review

Dec. 3 - Dec. 9

Implement Remaining Features & Retest Usability

Dec. 10 - Dec. 16

Deploy Application & Announce

Dec. 17 - Dec. 21

Review Use & General Feedback

Marcin’s Questions

Please link to all work product of the last 2 months of development as part of this document so I can evaluate what has been done.

Go to http://wwwtest.collaborative-revolution.com/wiki/Special:ShareOSE to view the current running status of the application. However this will change even before I arrive at FeF as I plan to develop the True Fans app during the next week preceding my arrival. To get an accurate sense of the project at precisely the time this document was written go to the project github repo: https://github.com/jdalt/ose-specialpage-extension/ , clone the application, and checkout commit 9998ba0021 ("Extended the MW Forms to allow tableless forms"). For more meta information about development see the Microfunding Outline google doc where we’ve been coordinating project management. Brad has also done some design docs.

Design/Functionality Wireframe Diagram

See the end of document Wireframe.

Description of all features - like we discussed.

See Comments on Final Specs (Jacob).

Weekly schedule of goals and Conditions of satisfaction for each week.

See Weekly Milestones which precedes this section.

Discussion of where this will be published.

The True Fans application will be a MediaWiki special page extension. It will be published on the wiki and require an additional database on the web server. The architecture was designed with flexibility in mind so that the display front end could be switched to an independent Drupal site at a later date or the True Fans database on the backend can be changed to a more sophisticated contact management system.

How will we invite True Fans to submit videos?

We should open the application up in accordance with how likely we expect quality contributions. I think each resident of FeF should make a True Fan video first (maybe with the help of Tristan...hint...hint) and then we’ll start accepting outside contributions in the following order:

  1. During beta/user testing we’ll send personal emails to particularly enthusiastic True Fans that have already added a picture and text on the True Fans wiki page. This will allow us to populate the application with quality videos before we release generally. This should also give us good feedback into the soundness of our approach (question for science: does textual enthusiasm translate into the desire to make videos?).
  2. Just after deployment we’ll send a mass email to all True Fans inviting them to contribute in this cool new way.
  3. A few days later (and hopefully many videos later) we’ll create a blog post announcing this cool new thing we built so that True Fans and supporters can contribute to the new project.

It also strikes me that I might be showing up in some of the videos on the youtube channel. Do we want to explain what I’m working on or do we want to be somewhat coy with it and build some anticipation (which has obvious drawbacks if I fail to deploy the application)? This is something I think we should discuss in our initial meeting.

What features will be tested before deploying the platform to True Fans?

As the primary developer it's my responsibility to manually test the technical foundations of the code during development. However it is more important to test the application for usability. We need to make sure that users intuitively understand how to operate the application. I plan to do usability testing in person with members of FeF and remotely with select True Fans. Brad Lewis will also conduct usability tests remotely. We will test to see if users understand the flow of the form and whether they can do basic tasks that the application was designed to do (view videos, upload videos, send emails, and send messages over social networking services).

How will we solicit feedback from True Fans prior to deployment?

We can do this by inviting a select group of them to contribute before we release to the general public. This will occur during the last stage of user/beta testing.

What is the specific intended release date?

Friday December 14th, 2012.

What follow through will you be able to provide to maintain and evolve the platform?

I’ll support the platform regardless of circumstances for 3 months after deployment. Even if my personal circumstances change, 3 months of support is my guarantee that I will be there to fix things if they need fixing. Beyond that and in reference to the next question, I have written well commented code that can automatically generate documentation using the tool Doxygen. Furthermore, if I stop maintaining this, I will write a document outlining the design of the True Fans extension and offer to review the entire codebase with the new maintainer over skype.

How will you document your progress and results on the platform so someone else can step in if needed?

See above (well documented code, Doxygen for documentation, architecture document, and skype code review/commentary).

Are there any expenses that will be incurred by OSE?

Monetarily: no. Materially: One less room in Hablab and the energy my laptop draws off the power infrastructure.

Wireframe

https://docs.google.com/drawings/d/1_qJv7_qKAV6lr4fGaxjRYAG61z5U_wqMirPNtsr-Hq8/edit