|BitShares-Core Development Team|
|Freelancer||Ryan R. Fox (`fox`)|
|Total||up to $1,386,406 (¥9,358,220)|
|Duration||2019/02/04 - 2019/12/29 (47 weeks)|
|Accounting & Reporting||workers.bitshares.foundation/201902-bitshares-core|
This budget proposal represents a follow on to the efforts established and executed by the BitShares Core Team in 2018. It seeks to continue funding the development efforts related to the core protocol and expand its scope within the DAC to deliver greater outreach throughout 2019. The Core Team is responsible to our DAC to transparently deliver a secure protocol, collaborate on research, prioritize innovative features, and engage our Community and the public toward increased protocol adoption.
This is a Budget Worker Proposal which funds the following effort areas through calendar year 2019:
This Worker funds a not to exceed budget for ideation, collaboration, development and defense of the ideas, engagements and implementations required to advance the BitShares Project. Individuals supported by funds from the budget occupy a defined set of Core Team Roles at specific rate valuations detailed in Table 2. below.
BTS are collected into the
"workers.bitshares.foundation" account which is a multi-sig account
"BitShares Blockchain Foundation" and owned by
"committee-account" using the
Budget Worker Model  which provide:
As the team size scales or BTS token valuations fluctuate, subsequent Worker(s) will be offered to fully fund the Intent.
The primary focus of the Core Team remains maintenance and development of the core protocol and oversight of the BitShares Improvement Proposals (BSIP) process. The Core Team will continue to liaise with the BitShares UI Team, and other community lead efforts maintained within the BitShares Organization on GitHub. The Core Team continues to guide Community Contributors toward promotion into open Core Team Roles through the Community Claims program detailed below.
Collaboration tools will continue to include software tools and server infrastructure to support development and testing efforts. The bitshares-core GitHub repository remains the primary source for our planning, discussion and deliveries. The Core Team participates with the UI Team and BitShares Committee to manage access within the BitShares Organization on GitHub.
Attendance and speaking engagements at relevant international conferences, hackathons and events remain an important component of the Core Team’s dedication to community outreach. We gather for in-person meetings prior to each conference and hold remote planning meetings throughout the year.
Expanded Core Team scope for 2019 will include:
The Core Team is comprised of an established group of community members who have demonstrated their ability to collaborate as a decentralized team, recruit contributions from community members and business teams building on the protocol, and advance the pace of innovation throughout 2018. Each team member is focused on returning more value to the BitShares DAC than is drawn from the reserve pool.
This Worker proposes to budget $26,750 weekly for funding development efforts of the Core Team and Community Claims. Approximately $21,450 are consumed by the established Core Team members, leaving $5,300 available for Community Claims or 20% Core Team growth. Demonstrated results of these efforts may warrant drafting subsequent Proposals to fund growth beyond this budget. Weekly quality effort hours estimations are represented in Table 1 below.
Table 1. BitShares Core Team Quality Effort Budget (Weekly)
|Roles (described below)||Rate (USD)||Team Member||Estimated Hours|
|BUDGET FOR CORE TEAM EFFORT|
|Core Developer||$150/hour||Abit More||10 hours weekly|
|Core Developer||$150/hour||Alfredo Garcia||20 hours weekly|
|Core Developer||$150/hour||John Jones||30 hours weekly|
|Core Developer, QA Lead||$150/hour||Peter Conrad||10 hours weekly|
|Junior Developer||$125/hour||Dr. Christopher Sanborn||10 hours weekly|
|Lead Business Analyst||$125/hour||Michel Santos||20 hours weekly|
|Lead Documentation Specialist||$100/hour||T. Sugimoto||15 hours weekly|
|Coordinator||$150/hour||Ryan R. Fox||30 hours weekly|
|Coordinator Assistant (China)||$100/hour||田蒙蒙 Linda Tian||4 hours weekly|
|Coordinator Assistant (US)||$100/hour||沈瞳 Tong Shen||8 hours weekly|
|ONGOING CORE TEAM EFFORT||157 hours weekly|
|– Community Developers||$100/hour||-open-||-|
|– Business Analysts||$75/hour||-open-||-|
|– Documentation Specialists||$60/hour||-open-||-|
|BUDGET AVAILALBE FOR GROWTH||at least 50 hours|
*Additional hours for these roles remain available at this time. Please contact firstname.lastname@example.org for additional information.
The BitShares Core Team is a self-organizing agile-principled team focused on delivering regularly scheduled releases and ad hoc bug fixes for the BitShares Core software. The actual number of contributors and roles may vary within each development cycle (described below), leading to variations in weekly compensation per contributor. The Core Team has discretion in allocating resources to meet the needs of each development cycle.
Producing reliable and secure software at scale requires ideation, organization, definition, prioritization, development, testing and documentation. The ideal team composition includes roles specializing in each of these functions and capable of contributing to many. The goal of a highly functioning team is to fully utilize each individual’s effort and together maximize their collective output.
The Core Team records only “quality effort hours” for the role they are tracking time against. Self-reporting is used, tracked within collaboration tools and peer-checked by Team Members to ensure the effort matches expected quality for the period.
*Subject to change upon consensus of Core Team Members
A typical Feature Release will likely span three weeks from planning thru tested and delivered software, called a sprint. Many agile principals will be adopted by the Core Team, but do not expect a strict scrum practice. This is a global team, so a formal daily standup is unlikely. One should expect asynchronous communication within various collaboration tools keeping the team informed of progress, plans and problems. The community are our stakeholders; we look to them for ideas, enhancements and identifying bugs, then organize these into a backlog for future development. The Coordinator facilitates the prioritization of the backlog items based on feedback from the stakeholders and the Core Team. The team will keep the stakeholders informed of development progress throughout the sprint.
At the beginning of a sprint cycle the Core Team meets to review the prioritized backlog and identify the highest value items that each can contribute to, within the established time block. Many features have dependencies and cannot be implemented within a single sprint. Therefore, the team will create tasks, a subset of the feature, that can be delivered on time. A task may be researching and defining requirements to be implemented later. A task may be writing a test case, or perhaps implementing only a subset of a given requirement, or even documenting how existing code functions. The team will maintain a sprint backlog comprised of the tasks selected from the project backlog. Completing each of these tasks results in incremental value added to the project. Testing is performed throughout the sprint to ensure functioning code from each increment.
As the sprint nears completion, the Core Team will begin release planning. They will select which tested increments are ready to be included in a release candidate. This will be deployed to a staging network for final validation. A release will be tagged within the bitshares-core GitHub repo along with release notes. The team also produce stakeholder documentation detailing resource allocations and budget consumption.
The final steps of the sprint include a retrospective look at how the team performed. Here we reflect on our original estimates, the delivered increments and what contributed to our successes and shortcomings. We will use insights gained from the retrospective to improve in the next sprint. The following day we immediately begin our next sprint cycle.
The BitShares Core Team maintain a prioritized Project Backlog of ideas, enhancements, bugs and BSIPs which they select from for their development sprint. The community is encouraged to comment on the items to aid in refining requirements and guide prioritization. Effort estimates are first assigned to the highest value backlog items. Unassigned and estimated project backlog items are available for ad hoc bounty development. Claiming and successfully completing backlog items is a primary consideration for an invitation to join the Core Team on a future sprint.
The Core Team encourages ad hoc code contributions of estimated project backlog items from any community member and will compensate successfully merged code based on estimates approved by Core Developers. The Coordinator will facilitate onboarding new community contributors to claim a backlog item and implement a solution that fits within architecture design defined by the Core Team. Care must be taken to ensure effort is not duplicated and can easily be merged within a future sprint. Claimed items that become a dependency of a sprint may be recalled by the Core Team to facilitate feature delivery. Compensation for a partially completed increment will be evaluated by the Q/A Lead and Coordinator.
Funding for Community Claims comes from unallocated budget within the Core Team Effort Budget resulting from open Roles on the Core Team as detailed in Table 1.
This section is to be considered guidance, not a legal statement. The BitShares Decentralized Autonomous Community (BitShares DAC) controls the funds collected by this Budget Worker and are issued as compensation to individuals performing agreed work as described elsewhere in this document. Effort contributed by individuals is considered by personal commitment as no formal employment contract is intended or able to be formed between BitShares DAC and the individual worker. Neither the BitShares Blockchain Foundation (BBF) nor the BitShares Committee or any individual serving those entities are to be considered employers of any agreed contribution. No BitShares Core Team Member or Role is considered the manager or the employer of any individual person. Any compensation received from the BitShares DAC might be considered earned income for individual persons involved in their individual situation and may be subject to tax reporting by the recipient. Neither BitShares DAC, nor the BitShares Blockchain Foundation, nor BitShares Committee, nor the Coordinator, or any Core Team Member will neither carry responsibility, nor command, nor issue, nor prepare any document, including tax documents, to any entity or natural person. All effort performed is a contribution to the BitShares DAC adhering to its MIT license.
Each Core Team Member is encouraged to contribute in a responsible way with respect to a work/life balance and legal employee engagements he or she might have entered into, or enter, with an employer.
Table 2. Core Team Roles and Rates
|Roles (described below)||Rate (USD)|
|Junior Core Developer||$125/hour|
|Lead Business Analyst||$125/hour|
|Senior Business Analyst||$100/hour|
|Junior Business Analyst||$75/hour|
|Lead Documentation Specialist||$100/hour|
|Senior Documentation Specialist||$80/hour|
|Junior Documentation Specialist||$60/hour|
The Core Developer is a seasoned C++ developer primarily tasked with writing and documenting the source code. Secondarily, the Core Developer is tasked with refining user stories, requirements and process models prior to development as well as resolving bugs during testing.
Core Developer Key Performance Indicators
The Business Analyst is a key role in a highly functioning team. They review the prioritized list of enhancements and refine them into requirements prior to the Developer beginning their design. Creating requirements documents often include user stories which narrate how the end user and/or system behaves. Process models are another tool for conveying the requirements in a visual flow diagram. Attention to detail and the ability to research and document are desired characteristics During development the Developer will often collaborate with the Business Analyst to clarify and refine requirements to ensure the implementation meets the desired behavior. The Business Analyst will assist the QA/Tester with writing test cases as well as executing and documenting results thereof. The Business Analyst will review and refine documentation produced by the Documentation Specialist to ensure it accurately reflects the requirements.
Business Analyst Key Performance Indicators
The Documentation Specialist is technical writer able to interpret test cases, user stories, requirements, process models and C++ source code. Primarily the Documentation Specialist will write documentation for the development community on the GitHub Wiki and docs.bitshares.org website. Secondarily, the Documentation Specialist will work with Core Developers to revise developer documentation based on the intent of the user stories, requirements and process models to ensure they match the intent and function of the source code.
Documentation Specialist Key Performance Indicators
The QA/Tester is primarily tasked with writing test cases based on user stories, requirements and process models, then executing the tests and documenting the results. Secondarily, the QA/Tester is tasked with revising developer documentation with the Documentation Specialist.
QA/Tester Key Performance Indicators
The Coordinator is an experienced agile project manager or scrum master with deep knowledge of distributed ledger technology. Primarily, the Coordinator is tasked with general facilitation, organization and prioritization of development efforts. Secondarily, the Coordinator iterfaces with the BitShares Community, Committee, BBF and other elected representatives as the liaison and public spokesperson for protocol development efforts. The Coordinator works closely with the Assistance Coordinator(s) to acquire and disseminate information throughout the Community.
Coordinator Key Performance Indicators
This role acts as an assistant to the Coordinator, helping the Coordinator to better communicate with the Chinese community. The assistant will collect ideas and comments from Chinese forums, events and platforms and report these to the Coordinator for reference on a regular basis. The assistant will also help the Coordinator and the Core Team to better present the roadmap and development progress to the Chinese community. The Assistant should be bilingual, familiar with agile software development process and able to collaborate with a geo-distributed software development team seamlessly.
Coordinator Assistant Key Performance Indicators
I have contributed to the BitShares code base for many years .
Started Bitshares contributions into the core more than 2 years ago, initially funded by my own worker proposal. Activity was always maintenance, development, testing, discussion and review around the bitshares-core source code. I also provide support to the community and build utility tools to increase the adoption of Bitshares technology. In the second half of 2018 i joined the core team and had been working there since then.
I am a knowledgeable and long-standing member of the BitShares community (@pc) and an active developer for many years [8-9].
I have been a professional software developer since 1991, and a “hacker” before then. Most of my work experience has been in finance/investments/insurance. I have been contributing to the BitShares codebase since the beginning of 2018. [10-12].
I have actively contributed to BitShares development from its inception [13-16]. I have extensive professional background in project management with software development teams and am a professional scrum master (PSM-1) with multi-national experience in financial services, mortgage banking and manufacturing.
I have more than a decade of experience in scientific computing and developing software for physical simulations, and more than two decades in software development generally . I have been passionate about crypto since 2013, and have been contributing to the BitShares ecosystem since 2017. I have a particular interest in improving privacy preservation within blockchain technologies.
Trained as an aerospace engineer with extensive experience in modeling and simulating the dynamics and control of different types of vehicles. Background in analyzing business processes and finding ways to improve them. Has assisted firms with identifying how to use blockchain technologies as one option in their toolchest .
I have over 10 years of experience in development of web apps, mobile apps, API servers, data processing apps, smart contracts, and have served various roles as SDE, Project Manager, Product Manager, IT Consultant, Agile Coach and CTO [19-21]. As Cofounder & CTO of Spark Blockchain and Liaoyuan, I’ve built a strong connection with the blockchain and startup ecosystem through our blockchain & startup summits and meetups in United States and China .
I have created and revised documentation for BitShares over the past two years . I hold a Masters in MIS and have held professional titles including Systems Analyst & Programmer, Web Designer and Database Administrator. I have experience using Content Management Systems to re-organize multiple websites. I am proficient analyzing system code in many programming languages and have created many web applications and websites.
I was fully engaged in the planning and organization of China Graphene Blockchain DevCon in January and Global Graphene Blockchain DevCon in May, 2018 . I have organized a series of activities like translation, meetups, live events about BitShares. Now I work as Secretary General of Graphene Blockchain Application Center(GBAC) , and regularly communicate with Graphene projects including BitShares community in China. In short, I have extensive professional background in community operation .
The BitShares Core Team use various collaboration tools to organize their work, convey ideas and aid development efforts. Transparency of development efforts to the community is a key requirement. Tools selected by the team generally provide read/reviewer access for the community to observe progress, track our time and provide feedback. Write/contributor access may be limited to a specific Core Team role(s). License quantities and types will vary monthly, therefore $3,000 is budgeted for tools. A non-exhaustive list is provided in Table 3 below.
Table 3. Collaboration Tools (Monthly)
|–Continuous Code Quality||–|
|Escrow and Remittance (BBF)||$2,000|
|TOTAL TOOLS BUDGET (MONTHLY)||$5,000|
Select Core Team members will meet prior to each of the scheduled DevCon events for team building, in person collaboration and presentation preparation. The Core Team participate in conference sessions toward a better understanding of the BitShares Core functionality. A smaller group of Core Team members will likely attend a yet-to-be-organized Hackathon to lend their support. A not-to-exceed budget for Conference participation is provided in Table 4 below.
Table 4. Conference Budget (One-Time)
|DevCon Spring 2019 - Shanghai, China|
|Event tickets (up to $500)||8 Team Members||$4,000|
|Travel round trip (up to $2,000)||8 Team Members||$16,000|
|Lodging (up to $180)||5 Nights||$7,200|
|Meals (up to $50)||5 Days||$2,000|
|BitFest Autumn 2019 - TBD, Europe|
|Event tickets (up to $350)||8 Team Members||$2,800|
|Travel round trip (up to $2,000)||8 Team Members||$16,000|
|Lodging (up to $220)||5 Nights||$8,800|
|Meals (up to $80)||5 Days||$3,200|
|TBD Hackathon 2019 - TBD|
|Event tickets (up to $500)||8 Team Members||$2,000|
|Travel round trip (up to $2,000)||8 Team Members||$8,000|
|Lodging (up to $200)||5 Nights||$3,200|
|Meals (up to $70)||5 Days||$1,120|
|TOTAL CONFERENCE BUDGET (ONE-TIME)||$74,320|
The Team has identified in Chart 1 a set of Initiatives to research, define and develop as part of their 2019 Roadmap.
Caveat: The Core Team cannot commit to deliver fully implemented solutions for all identified Initiatives. The intent here is to provide guidance at the outset, realizing the Core Team continuously evaluates and prioritizes new development tasks ongoing.
Chart 1. Initiatives - 2019
Collectively the Core Team represent the BitShares Project thru their code and documentation efforts. For public speaking engagements and legal representation purposes the Core Team may designate a Member(s) to speak as the authoritative source for BitShares protocol development efforts. Notification will be posted thru the BBF of the current Development Spokeperson(s).
The budget items listed in the tables below represent an upper bound on expenditures. All funds collected and unused at the conclusion of this Worker Proposal will be returned to the Reserve Pool [5-6].
Table 8. Core Team Budget
|Description||Amount (Period)||As Daily||TOTAL BUDGET|
|Total Core Team Roles (Table 1)||$26,750 (weekly)|
|++ Convert to daily (/7 days)||$3,821|
|Total Collaboration Tools (Table 3)||$5,000 (monthly)|
|++ Convert to daily (/30 days)||$167|
|Total Conference Budget (Table 4)||$74,320 (one-time)|
|++ Convert to daily (/47 weeks /7 days)||$226|
|≈≈ TOTAL DAILY BUDGET ITEMS||$4,214|
|≈≈ ≈≈ TOTAL 47 WEEK BUDGET USD||$1,386,406|
|≈≈ ≈≈ TOTAL 47 WEEK BUDGET (CNY EQUIVALENT)||¥9,358,220|
Duration: This proposal will last for 47 weeks, starting from 4th February 2019, ending on 29th December 2019.
Devaluation Multiplier: This Worker introduces a devaluation multiplier to mitigate the impacts of a depreciating BTS token during the active period. We propose to protect against prolonged BTS devaluation of approximately one-third (-33%) by using a 1.50 devaluation multiplier. Initially, BTS will be accumulated at rate 150% of the required daily budget. The BBF will use the accumulated BTS to purchase bitCNY from the market, up to the Core Team Budget detailed above in Table 8.
Calculations (as of 27 JAN 2019):
Payments: All payments are converted from USD and remitted in bitCNY with method developed by the BitShares Blockchain Foundation .