Jekyll2019-06-13T16:44:58+00:00 HaszI build Enterprise software teams at SAP SalesCloud, and also open source projects. #EnterpriseTwitterSteal My Idea: DevFunded2019-05-24T00:00:00+00:002019-05-24T00:00:00+00:00<p>The Enterprise world runs on open source software<a href="#citation1" class="superscript">1</a>. It is possible for large organizations like the RedHat foundation to operate in a self-sufficient manner, and companies like <a href="" target="_blank">Facebook</a> can fund internal support for libraries like <a href="" target="_blank">React</a>, but there are hundreds of thousands of free libraries (npm, alone, hosts over 995,000 packages<a href="#citation2" class="superscript">2</a>) that are supported at no charge by independent developers<a href="#citation3" class="superscript">3</a>.</p> <p>What happens when a developer, either through disinterest, lack of time, or <a href="" target="_blank">outright</a> <a href="" target="_blank">abuse</a> decides to abandon their project? Even worse, what happens if a library is <a href="" target="_blank">hijacked by bad actors</a>? The best case scenario is that a new owner can be found, possibly from within one of the organizations that depend on this software, but there is often internal or legal hurdles to this. The worse case scenario is an outage, data breach, or loss of revenue.</p> <p>Ensuring a viable roadmap or a consistent maintenance and release schedule is no guaranteed thing for maintainers who have a day job, family, hobbies, and personal responsibilities. Even more challenging is that individual developers are often neither interested with or fluent in <strong>how</strong> to effectively engage with enterprise companies in a contractual setting to provide ongoing support<a href="#citation4" class="superscript">4</a>.</p> <p>Providing a web-based solution for connecting corporate funding to independent open source developers would simultaneously ensure support for the software that corporations rely upon and provide a vehicle for compensating independent developers for their efforts to ensure a future of maintenance.</p> <h2 id="overview">Overview</h2> <p>The three main components of this solution are a public code repository for hosting the software packages, a secure website for developers and organizations to interact for contracting and support purposes, and a payments tool to streamline/simplify the process of compensating developers for their time.</p> <h3 id="source-code-repository">Source Code Repository</h3> <p>The core piece of this product is a simple and well-understood method for publicly storing, hosting, and distributing source code. The choice of this solution will be key to driving adoption with developers, who are notoriously picky about the tools and solutions they will adopt. The source code repository would need to support versioning, tracking, packaging, build services as well as basic project management concepts such as tasks, projects, scheduling, and alerting.</p> <h3 id="secure-website">Secure Website</h3> <p>Beyond hosting the technical assets associated with a software product or library, both the corporation and the developer will need a place on the web to collaborate on the general “rhythm of business” processes of ongoing software delivery. On the delivery side, this includes tools such as issue tracking, feature definition and scheduling, and links to different package versions. On the contractual side, this website would need to provide support for authoring and execution of legal contracts between all parties. Table stakes for a secure site like this would be:</p> <ul> <li>User authentication and Single Sign-On (SSO) between all components of the system</li> <li>Mobile/responsive web views</li> <li>Correspondence services (email, SMS) for standard communication items e.g. issue updates, release notifications, contractual updates.</li> </ul> <h3 id="payment-tool">Payment Tool</h3> <p>Payment services need to work hand-in-hand with the contracts component of the secure website and support one-time and recurring payments to developers.</p> <h3 id="how-i-would-do-it">How I would do it</h3> <p>If I was implementing this, Github would be the obvious initial choice for source code hosting and distribution, hosting issues and project collaboration, and as the payment processing tool. Github pages are not yet robust enough to support the secure website, but the standard API set would easily provide sufficient integration points to provide a consistent/connected experience from an externally hosted website to enable project collaboration and legal contract tracking.</p> <p>Additional core services would include static code analysis and package scanning for security and license compliance.</p> <p>As the solution matures, there may be compelling reasons for adopting other platforms such as</p> <ul> <li>BitBucket, or a stand-alone git implementation for source control</li> <li>Additional payment tools to provide support for common corporate payment types, e.g. ACH</li> <li>additional authentication providers, or federation with corporate SSO implementations.</li> </ul> <h2 id="revenue-source">Revenue Source</h2> <p>This solution would charge the buyer a flat fee percentage, less processing fees, of all transactions.</p> <h2 id="benefits">Benefits</h2> <ul> <li>reduced corporate fear or anxiety of broader adoption of valuable tools, leading to greater revenue and reduced development costs</li> <li>Satisfying internal corporate purchasing and legal teams’ need to have structure around engagements</li> <li>Corporate-friendly process for paying external software developers</li> </ul> <h2 id="challenges">Challenges</h2> <ul> <li><strong>Reduced freedom or independent license-</strong> Organizations who fund engineers may feel increased ownership of the software and want to limit developer freedom, leading to resentment and possible abandonment.</li> <li><strong>Scope and schedule creep-</strong> Contracts alone cannot prevent all instances of abuse by either party of the terms of delivery, or honor vacation schedules, sick time, etc.</li> <li><strong>Breach of contract-</strong> Contractual terms provide a promise of delivery, but can not fully guarantee the developer will maintain a product in perpetuity</li> <li><strong>One size fits none–</strong> Contracts or documents may be too broadly scoped and may be completely rewritten or rejected out of hand by corporate legal teams.</li> </ul> <h3 id="citations">citations</h3> <ul> <li><a href="/" name="citation1">1.</a> Number of Fortune 500 companies who use <a href="" target="_blank">open source software</a>.</li> <li><a href="/" name="citation2">2.</a> NPM count of <a href="" target="_blank">total hosted packages</a>.</li> <li><a href="/" name="citation3">3.</a> Github user statistics via <a href="" target="_blank">State of the Octoverse</a></li> <li><a href="/" name="citation4">4.</a> Challenges Startups have <a href="" target="_blank">engaging enterprise organizations</a>.</li> </ul> <h3 id="notes">notes</h3> <ul> <li><strong>full transparency</strong>: my open source project, <a href="" target="_blank">SPGo</a> was affected by the malware attack via transient inclusion in a dependent package, so this problem hits close to home.</li> <li>Github recently announced <a href="" target="_blank">Github Sponsors</a> which provides a channel for end-users to compensate (i.e. encourage) developers who build and maintain the open source software and libraries they use day to day. This vastly simplifies implementation of the payments portion of this service.</li> </ul> <hr /> <p><em>Steal My Idea is a series of posts describing the various opportunities I see in the marketplace for viable businesses, but don’t have the time to build myself. Please go build these products so that I can use them.</em></p>The Enterprise world runs on open source software1. It is possible for large organizations like the RedHat foundation to operate in a self-sufficient manner, and companies like Facebook can fund internal support for libraries like React, but there are hundreds of thousands of free libraries (npm, alone, hosts over 995,000 packages2) that are supported at no charge by independent developers3.Build SharePoint Web Solutions with the Power of Visual Studio Code2019-04-21T00:00:00+00:002019-04-21T00:00:00+00:00<p>SPGo allows you and your team to develop SharePoint web solutions from your local PC using the power of Visual Studio Code. Now you can build and customize SharePoint sites source-control first with all of the power of a top-tier IDE.</p> <p>SPGo is available directly from VSCode (Search SPGo in the extension pane), or from the project page on the Visual Studio Marketplace.</p> <p><a href="" class="button medium center" target="_blank">Get the Extension</a></p> <h2 id="goals">Goals</h2> <p>With SPGo, I will follow the “Lightweight” ethos of VSCode. To support this goal, I will always prioritize the developer experience and treat code files, source control, and simple SharePoint integration as our top priorities. To us, this means working from your local environment to author clean, readable code, in an development IDE that you and your team are already familiar with.</p> <p>Of equal importance to compelling functionality, is keeping this project Open Source. Our source code is published under MIT licence on GitHub and I welcome external feedback, and pull requests.</p> <h2 id="features">Features</h2> <h3 id="automatically-deploy-or-publish-files-to-sharepoint-on-save">AUTOMATICALLY DEPLOY OR PUBLISH FILES TO SHAREPOINT ON SAVE</h3> <p>SPGo can persist changes in your local workspace directly to SharePoint. Use the file pane integration or hotkeys to check out a file from SharePoint, make changes, and then publish a minor or major version.</p> <h3 id="compare-local-files-with-sharepoint-using-vscode-compare">COMPARE LOCAL FILES WITH SHAREPOINT USING VSCODE COMPARE</h3> <p>Any time you check a file out from SharePoint, SPGo will compare the latest server version of that file to your local copy - any differences will be displayed in the native VSCode Compare Window. Additionally, you can compare your local copy of a file with the server copy from the file pane at any time.</p> <h3 id="synchronize-remote-files-and-folders-to-your-local-workspace">SYNCHRONIZE REMOTE FILES AND FOLDERS TO YOUR LOCAL WORKSPACE</h3> <p>Quickly download any available files from SharePoint to populate your local workspace, including WebPart files, Master Pages, html, CSS, and JavaScript files, or even images and documents.</p> <h3 id="author-clean-readable-code">AUTHOR CLEAN, READABLE CODE</h3> <p>VSCode is the premier cross-platform text editor, and supports the latest in code editing and code-management features and is designed for the web. SPGo brings this first-class IDE to SharePoint projects.</p> <h3 id="keep-all-project-configuration-in-source-control-for-easy-team-integration">KEEP ALL PROJECT CONFIGURATION IN SOURCE CONTROL FOR EASY TEAM INTEGRATION</h3> <p>Because you work from your local file system, integration with your source control management tool of choice is easy (and probably already supported by VSCode). Gone are the days of difficult asset tracking, or forcing everyone to share a single SharePoint environment.</p> <h4 id="documentation">Documentation</h4> <p>You can find usage notes, tips, and tutorials on the <a href="">documentation site</a>.</p> <h2 id="what-else">What Else?</h2> <p>I created SPGo because I wanted a better development experience. I also know that I rely heavily on the open-source community for tooling and support in our day-to-day professional (and personal) lives, which made sharing this tool with the community a primary driver. I welcome feedback, assistance and pull requests.</p> <h2 id="how-to-get-in-touch">How to get in touch</h2> <p>Write an email, create an issue on git, @ us on twitter or request support via Stack Overflow. Any way you choose, I embrace feedback and want to hear from you. Here’s how to get a hold of us:</p> <ul> <li>Twitter: <a href="">@chrishasz</a></li> <li>Request a feature: <a href="">Github/chrishasz</a></li> <li>Ask for help on <a href="">Stack Overflow</a>: #SPGo</li> <li>Send us an email: <a href=""></a></li> </ul> <p>Thank you for using SPGo, I hope you enjoy using it as much as I’ve enjoyed creating it.</p>SPGo allows you and your team to develop SharePoint web solutions from your local PC using the power of Visual Studio Code. Now you can build and customize SharePoint sites source-control first with all of the power of a top-tier IDE.