Early Draft -- Technical Requirements Document
From Vermont Virtual
Contents |
Virtual Company Hosting Services Functional Specification
Abstract
The following is an early draft of a technical requirements for a hosting site for virtual companies. (VCH refers to the virtual company hosting site, which VVCC is developing.)
As should be obvious, given the context of this site, we are currently experimenting with how much of this functionality can be realized in a wiki context.
If anyone wants to contribute to building a new site with this new functionality, or can suggest other readily available systems that could provide some of this functionality, we would be very grateful.
Some broad ideas of technical implications follow the requirements.(added March 14th, 2009)
Requirements
Virtual Company Requirements (draft – June 1, 2008)
Partial list of functions required for hosting company site:
- Condition access on agreement to terms of service.
- Display existing virtual companies and facilitate search to find one that user might want to join.
- Enable users to apply to become participants in particular virtual companies.
- Enable a founder to create a new virtual company, choosing among alternative forms of operating agreements and *alternatives re requirements for participants and default roles to be filled by either self-selection or vote of active participants.
- Enable choice of company name and (ideally) check with Vermont Secretary of State to determine name availability. (Possibly, display list of pre-approved names or suffixes use of which avoids need for prior check other than for identical strings.)
- Obtain payment from founder of any required fees.
- Generate necessary forms for (electronic or paper) filing with Vermont Secretary of State.
- Report to founder when virtual company has been registered with state.
- Create new virtual company headquarters site for the new virtual company.(VCH site)
- Limit access to company-only areas of VCH site to authorized participants. If approval is required to become a participant, VCH offers founder or other appropriate participants ability to issue such approvals (and adjusts access accordingly).
VCH site displays (ideally graphically) the state of the company, at any given time. This includes lists of participants, assets, debts, bank account, books, contracts (with suppliers and customers), terms of operating agreement, pending proposals requiring voting, status of rating of members by other members, roles that are available to be adopted (and information re who is filling what roles), tax obligations and payments, history of actions taken by company. It
- allows participants to take actions (voting, rating, contribution of content) as permitted in the operating agreement (and, to extent possible, uses code to enforce the operating agreement and prevent unauthorized actions).
- links to virtual company bank account (kept at online banking site of the bank providing these services) and company books (kept by accounting firm.
- offers optional capability to build public facing areas that offer products or services produced by the virtual company (use of these is not required to be exclusive, however payments to virtual company from third parties must come into the controlled bank account).
- allows participants to publish to each other information regarding the nature of their contributions.
- supports discussion, blogging re new information for the vc participants, wiki facilities for creation of shared documents of various kinds.
- displays applicable articles of LLC and operating agreement, and provides means for their amendment by appropriate majority of active members.
- tracks which members are “active” members within meaning of operating agreement and limits voting and rating rights accordingly.
- provides means for constrained issuance of instructions to bank regarding payments to third parties and distribution of net proceeds to members. Where minimum votes of participants, or the approval of agents that have been elected for this purpose are required to authorize such payments, system enforces these rules.
- shows history of various information re state of company over time, to enable perception of trends.
- provides public facing information including link to agent for service of process in Vermont.
- links to online dispute resolution provider to be used to resolve intra-company disputes and, where required by contracts, disputes with third parties.
- enables expulsion of participants in accordance with operating agreement.
- tracks participants’ entitlement to distributions of net proceeds and obligations to pay portions of company income taxes.
- provides information to accountants to enable filing to consolidated tax return for company and, if elected, payment of taxes on behalf of non-vermont participants.
- tracks information regarding obligations to pay annual franchise fees.
- tracks and facilitates filings required to do business in various states, as required (perhaps in coordination with accounting firm).
- allows individual participants (and other participants) to see all of the roles they play, actions they have taken, comments and ratings and votes they have made, and their relationships to the company and to other members.
- contains a repository of key documents of the virtual company.
- contains a calendar showing key events (past and planned) related to operation of the virtual company.
- contains a (possible) display of relationships with other companies that provide bonds or insurance designed to enhance trust by third parties dealing with the virtual company.
- contains current statement of company goals and provides optional mechanism for dissolution and/or transfer of company assets in exchange for consideration.
- prevents transfer of any interests in the company by participants.
- enables generation of email to be sent on behalf of the company (with appropriate authorization).
Hosting Company site calculates fees due from virtual companies to hosting company and issues appropriate directions to debit virtual company bank account for such fees, reporting these actions on the VCH site as appropriate.
Broad Ideas on Technical Implementation
The reality of most information architectures is that one application rarely fills all of their requirements, and even fewer do it well. The secret of most information architects then, is to make a layered system look like one integrated sytem. This is the case with the Vermont Virtual Company hosting "site". Site is in quotes, because, as you'll see, there is much more here than a web site or web application can effectively deliver on its own.
The following descriptions are broken down into three data delivery and interaction conduits. A public facing web site, a public facing web application, and a hybrid desktop/mobile/web application. The later is sometimes referred to as a "cloud application".
These three conduits are all built on a bottom infrastructure that could be called the data service, data nexus, datasource, or database depending on your familiarity with those terms.
First Conduit: Hybrid desktop/mobile/web application.
Although most of the functionality set out in the early requirements drafts for a VCH site could be implemented with a web application, there is a tremendous amount of value that would be missed if that were the sole delivery mechanism for virtual company hosting.
Goals:
- A comprehensive application would give users access to their company data much more responsively than a web application.
- It would also allow them to work offline, and then sync their work with other members when they get back online. (Think of a doctor or a journalist in a remote location.)
- It would provide the powerful tools needed to interact with banks, accounting systems, and other members.
- It should be easy to adopt for a new virtual company, and easy to extend for a growing one.
- All of the data that drives this application should also be available through other hooks, so that virtual companies who are capable of customizing their virtual environment are able to do so.
Description:
Think of it this way. The financial markets generate enormous amounts of data each day that can be mixed in various contexts depending on the requirements of end users. Further, the end user also needs to interact with that data whenever they desire to trade a financial instrument. The web based trading applications of Charles Schwab, Fidelity, and many others suit the requirements of most retail investors, but an active trader, or a professional must have a much more powerful system available. A system like the Bloomberg terminal integrates news, data, analysis, charts, and trading functionality into one place.
Vermont Virtual must focus on the data, and the application programming interfaces, or hooks, into that data as a service. This allows growing virtual companies to build their own data interaction systems that they believe will give them a competitive advantage. They will have some elbow room to optimize the software constraints on their operating agreement, decision making processes, and features for collaboration. Those systems will use Vermont Virtual as their central data nexus, just like the thousands of stock trading systems around the world use the exchanges as their central data nexus.
Vermont Virtual Company would do well to develop an application in the likeness of the Bloomberg Terminal which would provide a comprehensive delivery and interaction interface for a virtual company's data and collaboration mechanisms. If a company then chooses to develop their own systems, hooking into their existing data hosted by Vermont Virtual, and continuing to use Vermont Virtual data services, should be a no brainer.
Implementation:
In the past, a powerful data integration application like the Bloomberg Terminal would have required a reasonably powerful computer. Today, there are platforms being built that tremendously simplify the development and deployment of applications meant to integrate data from multiple sources on multiple devices and platforms. Google Gears is a plugin that extends the Firefox and Internet Explorer web browsers with this capability. Adobe has developed Air, which not only extends the browsers on computers, but on mobile devices as well. Microsoft is also in the same space with their Silverlight platform. Although it is more complex, the tried and true Java platform cannot be ignored for its power in this category. Also, as a shameless self promotion, we are also in the process of founding a virtual company, The Fireworks Project, that is creating a platform specifically for this purpose with the goal of making the development of cross platform integrated data applications as easy and dynamic as creating a simple web page.
The "cloud computing" services now offered by Google (http://code.google.com/appengine/), and Amazon (http://aws.amazon.com/ec2/) are making scalable data integration applications a reality. Vermont Virtual could host data on one of these systems, and sleep worry free that bandwidth would never dry up and data would never be lost.
Second Conduit: A Public Facing Website
Having the purpose of informing visitors about VVC, public relations regarding VVC, search engine ranking, and VVC branding.
Goals:
- Navigation should be minimal. Reduce the chance a visitor will get lost.
- Content and copy should be easily edited wiki style by authorized accounts.
- Structural changes should be easily made without a redesign of the code base.
- Markup and JavaScript design must comply with all web standards for search engine ranking, accessibility by the impaired, and browser compatibility.
- Visual design must indicate that it has been well conceived and creative.
- Entire website code base should be able to be lifted and dropped onto any web hosting service without restructuring.
Implementation:
A good choice would be a content management system that supports all these requirements. Drupal(http://drupal.org/), Django (http://www.djangoproject.com/), and modx (http://modxcms.com/) earn top marks in this category. In additions to meeting the above requirements, these frameworks are quick and inexpensive to deploy, and scale to very large traffic loads.
Third conduit: A Public Facing Web Application
This facilitates the founding of a virtual company, listing of virtual companies, recruiting contributors for virtual companies, and joining virtual companies as a contributor. This would be the online bazaar for VVC.
Goals:
- Navigational and content features must recognize that users may be introduced to this web app through the VVC public facing website, a search engine, or directly by way of a URL, bookmark, or web anchor link on another site.
- The Focus must be on functionality, and by it's very nature, some search engine ranking mechanisms will suffer. This underscores the importance of a well designed public facing website for VVC.
- The web application also must have a low barrier to entry, to encourage users to take part and try it out. In other words, getting an account on VVC should take no more than a username and password. Further information can be gathered as required.
- Entire website code base should be able to be lifted and dropped onto any web hosting service without a restructuring.
- Structural changes should be easily made without a redesign of the code base.
Implementation
Once again, there are code frameworks available that would greatly reduce the time and expense of deploying a scalable and dynamic web application. Some good ones are Django (http://www.djangoproject.com/), Ruby on Rails (http://rubyonrails.org/), and CakePHP (http://cakephp.org/). It's worth noting that all of these web application frameworks will also be able to fill the shoes of the content management system used for the public facing website. Choosing one to do both should be the topic of a more detailed discussion.
Summary
Next time you visit a blog, the New York Times website, your online stock broker, or Facebook, think about what is going on, and you'll see these last two data interaction conduits at work. If you have experience with Salesforce.com, Google Docs offline, Gmail offline, Oracle Siebel CRM, Tom Tom GPS, and almost any Adobe Air application or iPhone app, you'll have seen the first conduit as well.
