{
    "componentChunkName": "component---src-templates-post-page-js",
    "path": "/2018/cryptomate/stakeholders",
    "result": {"data":{"site":{"siteMetadata":{"title":"Solid Abstractions","siteUrl":"https://solidabstractions.com","twitterId":291334023,"author":{"fullName":"Julien Hartmann","profileHtml":"I am an open-source de­vel­op­er, for­mer IT con­sul­tant with a pas­sion for new tech­nol­o­gies. I be­lieve the role of an en­gi­neer is to em­pow­er peo­ple, by as­sem­bling sim­ple, re­fined de­signs.\n","links":[{"url":"https://github.com/spectras/","name":"github","title":"GitHub"},{"url":"https://stackoverflow.com/users/3212865/spectras","name":"stackoverflow","title":"StackOverflow"},{"url":"https://www.linkedin.com/in/julienhartmann/","name":"linkedin","title":"LinkedIn"}],"profilePicNode":{"original":{"src":"/static/profile-pic-301a9cbe7b572c3e7910c9717d2b3bcd.jpg"}},"url":"https://etherdream.org/about"}}},"markdownRemark":{"id":"030f346a-e446-5a1c-aa5c-dd457d6e1e81","excerpt":"We will start our job with identifying all stakeholders we can. Then, depending on how close\nto the project they are, we will get to know them and find out their goals.","html":"<p>We will start our job with identifying all stakeholders we can. Then, depending on how close\nto the project they are, we will get to know them and find out their goals.</p>\n<p>--- excerpt ---</p>\n<p>We will start our job with identifying all stakeholders we can. Then, depending on how close\nto the project they are, we will get to know them and find out their goals.</p>\n<blockquote>\n<p>A <em>stakeholder</em> is someone, either an individual or a group of people, that has either\nsome interest in our project, or some concern about it.</p>\n</blockquote>\n<p>This is a major part of our work, as stakeholder's objectives will be our requirements and\nconstraints, or at the very least, should we compromise not to pursue some, we will know\nwhich, why and what impact it will have.</p>\n<h2 id=\"stakeholder-list\">Stakeholder list</h2>\n<p>Here is what I came up with. Feel free to add yours, and send me <a href=\"/about\" class=\"internal\">feedback</a> if I\nmissed some.</p>\n<div class=\"figure-wrapper\"><figure id=\"fig-1\"><img src=\"/files/stakeholders-f813beadac67490604090b007a3d03f0.png\" alt=\"Stakeholders map\" srcset=\"/files/stakeholders-1.5x-cdcb7e280a483169d0f7e71b06af1f15.png 1.5x, /files/stakeholders-2x-02f8e6145eaa58da2d9c408205e9adb3.png 2x\"><figcaption><div class=\"figcaption-wrapper\">Stakeholders map. Boxes are systems. Blue emphasizes internal stakeholders.</div></figcaption></figure></div>\n<ul>\n<li>\n<p><strong>Users</strong></p>\n<ul>\n<li><strong>End users</strong>: people who will use Cryptomate for their daily trading.</li>\n<li><strong>Dev users</strong>: people who will use the Cryptomate engine to build trading tools.</li>\n</ul>\n</li>\n<li>\n<p><strong>Team</strong></p>\n<ul>\n<li><strong>Developers</strong>: us, when working on Cryptomate.</li>\n</ul>\n</li>\n<li>\n<p><strong>Third Parties</strong></p>\n<ul>\n<li><strong>Market data providers</strong>: run services we will extract data from. For simplicity, we will\ngroups the diverse stakeholders (shareholders and teams) under a single group.</li>\n<li><strong>Trading platforms</strong>: run the platforms Cryptomate will place orders on. For simplicity,\nwe will also groups the diverse stakeholders (shareholders and teams) under a single group.</li>\n<li><strong>Regulation authorities</strong>: many countries impose obligations and restrictions on products\nthat involve financial services such as automated trading tools.</li>\n</ul>\n</li>\n<li>\n<p><strong>Other</strong></p>\n<ul>\n<li><strong>Management</strong>: well, that's us too in this project.</li>\n</ul>\n</li>\n</ul>\n<h2 id=\"business-goals\">Business goals</h2>\n<p>I did interview a couple of prospective users, both end users and dev users. For management\nand developer roles, I will be answering as myself. And for third parties, I will make\neducated guesses based on my knowledge of the domain and online resources.</p>\n<h3 id=\"end-user-a\">End user A</h3>\n<p><strong>Main driver:</strong> wants to increase his wealth through trading.</p>\n<p><strong>Goals</strong></p>\n<ul>\n<li>A wants to have the ability to resume running previous strategies when starting cryptomate,\nbecause he doesn't want to have to track positions when he reboots his computer.</li>\n<li>A wants to have a way to see all open positions at a glance, because he wants to feel in\ncontrol of his money.</li>\n<li>A wants to define his strategies without having to know programming or other technical\nstuff, because that is not his thing.</li>\n<li>A wants Cryptomate to be well documented and intuitive, because he is busy and cannot spare\ntoo much time learning new tools.</li>\n<li>A wants to have feedback on his strategies, across multiple securities, so he can\noptimize them.</li>\n<li>A wants to get reports of Cryptomate orders so he can cross-check them with his broker\nand use them for legal processes.</li>\n<li>A wants a fast way to stop all running strategies and close open positions, so he can\ncut losses should a bug or a bad strategy occur.</li>\n</ul>\n<p><strong>Worst that could happen?</strong></p>\n<p>A bug in Cryptomate triggering uncontrolled positions.</p>\n<h3 id=\"end-user-b\">End user B</h3>\n<p><strong>Main driver:</strong> wants to increase his wealth through trading.</p>\n<p><strong>Goals</strong></p>\n<ul>\n<li>B wants to have the ability to write his own indicators, because he likes to fine-tune\nhis strategies.</li>\n<li>B wants to write strategies using code, because he is familiar with programming and\nit allows expressing more complex strategies with ease.</li>\n<li>B wants to have cross-market strategies, because he often trades correlated markets and\nwants to take advantage of that correlation.</li>\n<li>B wants to be able to submit strategies, start and stop them programmatically because he\nlikes to automate his activities through scripting.</li>\n<li>B wants Cryptomate to send out notifications to a message broker, because he has his\nown desktop event management he wants to feed them into.</li>\n</ul>\n<p><strong>Worst that could happen?</strong></p>\n<p>Getting credentials stolen or abused, and used to buy into a pump&#x26;dump scheme.</p>\n<h3 id=\"dev-users\">Dev users</h3>\n<p><strong>Main driver:</strong> wants to increase his wealth by selling trading tools.</p>\n<p><strong>Goals</strong></p>\n<ul>\n<li>Wants the documentation to be accurate and thorough, so he does not waste his time while\nusing the API.</li>\n<li>Wants Cryptomate to provide meaningful errors and debugging output, so he does not waste\nhis time while using the API, and has relevant data when investigating bug reports.</li>\n<li>Wants interactions to use market standards, so he has a broad choice of tools and\narchitecture to design his own solutions.</li>\n<li>Wants the engine to be able to run strategies independently, because he wants to share\nengine instances across many customers.</li>\n<li>Wants strategy to be self-contained so he can let users easily share strategies among\nthemselves.</li>\n<li>Wants the engine to allow horizontal scaling, so he can support a large number of customers\nwith limited hardware costs.</li>\n<li>Wants to allow users to add custom (untrusted) indicators without compromising the tool.</li>\n</ul>\n<p><strong>Worst that could happen?</strong></p>\n<p>Running into bugs or hidden limitations with Cryptomate after committing a large amount\nof resources into a project.</p>\n<h3 id=\"developers\">Developers</h3>\n<p><em>That's me.</em></p>\n<p><strong>Main driver:</strong> wants a cool subject to write about on his blog.</p>\n<p><strong>Goals</strong></p>\n<ul>\n<li>Wants to minimize development costs (time).</li>\n<li>Wants to emphasize code quality so as to minimize support and maintenance costs.</li>\n<li>Wants to demonstrate key software architecture concepts and key code concepts for his\nwebsite, by showing how they are useful in a real-world software product.</li>\n<li>Wants to have fun designing a cool project, and build professional recognition on a\ntrendy subject.</li>\n</ul>\n<p><strong>Worst that could happen?</strong></p>\n<p>Low quality product that would give him bad press.</p>\n<h3 id=\"market-data-providers\">Market data providers</h3>\n<p><strong>Main driver:</strong> make money, either through paid-for data access or through trading fees.</p>\n<p><strong>Goals</strong></p>\n<ul>\n<li>Want Cryptomate to follow their policies, so it does not affect their platform's\navailability and reliability in a bad way.</li>\n</ul>\n<h3 id=\"trading-platforms\">Trading platforms</h3>\n<p><strong>Main driver:</strong> make money through trading fees.</p>\n<p><strong>Goals</strong></p>\n<ul>\n<li>Want Cryptomate to follow their policies, so it does not affect their platform's\navailability and reliability in a bad way.</li>\n<li>Want Cryptomate to protect their customers so they do not get indirect bad press or\nloose paying customers because of a security breach in Cryptomate.</li>\n</ul>\n<h3 id=\"financial-authorities\">Financial authorities</h3>\n<p><strong>Main driver:</strong> protect users from scams and majors losses due to ignorance.</p>\n<p>To be honest, I would need advice from several lawyers for those, specializing in different\njuridictions. I cannot afford that on an illustrative project, so there is a high risk this\nwill lack goals.</p>\n<p><strong>Goals</strong></p>\n<ul>\n<li>Want to ensure end users are warned of the risks of trading before engaging with the markets.</li>\n</ul>\n<h3 id=\"management\">Management</h3>\n<p><em>That's me again.</em></p>\n<p><strong>Main driver:</strong> increase visibility of his website.</p>\n<p><strong>Goals</strong></p>\n<ul>\n<li>Wants Cryptomate to gain some traction, because that will give legitimacy to articles\nabout it.</li>\n<li>Wants the architecture to be cleanly modularized so modules can be the focus of\ndedicated articles.</li>\n<li>Wants the project to be open source, because he would like a community to form around it.</li>\n</ul>\n<p><strong>Worst that could happen?</strong></p>\n<p>Low quality product that would give him bad press.</p>\n<h2 id=\"conclusion\">Conclusion</h2>\n<p>We now have a clear view of who Cryptomate will affect and why they care. We know what they\nexpect from our solution. In the <a href=\"requirements\" class=\"internal\">next post</a>, we will translate those objectives\ninto functional requirements and quality attributes.</p>","fields":{"isPage":false,"slug":"/2018/cryptomate/stakeholders"},"frontmatter":{"title":"Stakeholders and Goals","classname":null,"date":"2018-08-03T00:00:00.000Z","formattedDate":"August 03, 2018","isoDate":"2018-08-03T00:00:00+00:00"},"headings":[{"value":"Stakeholder list","depth":1},{"value":"Business goals","depth":1},{"value":"End user A","depth":2},{"value":"End user B","depth":2},{"value":"Dev users","depth":2},{"value":"Developers","depth":2},{"value":"Market data providers","depth":2},{"value":"Trading platforms","depth":2},{"value":"Financial authorities","depth":2},{"value":"Management","depth":2},{"value":"Conclusion","depth":1}],"image":null,"series":{"name":"cryptomate","fullName":null,"fields":{"slug":"/cryptomate"}},"tags":[{"name":"architecture","slug":"/tag/architecture"}]}},"pageContext":{"series":"cryptomate","slug":"/2018/cryptomate/stakeholders","previous":{"fields":{"slug":"/2018/cryptomate/getting-started"},"frontmatter":{"title":"Getting Started","series":"cryptomate"},"tags":[{"name":"architecture","slug":"/tag/architecture"}]},"next":{"fields":{"slug":"/2018/cryptomate/requirements"},"frontmatter":{"title":"Requirements and Quality Attributes","series":"cryptomate"},"tags":[{"name":"architecture","slug":"/tag/architecture"}]},"seriesPrevious":{"fields":{"slug":"/2018/cryptomate/getting-started"},"frontmatter":{"title":"Getting Started","series":"cryptomate"},"tags":[{"name":"architecture","slug":"/tag/architecture"}]},"seriesNext":{"fields":{"slug":"/2018/cryptomate/requirements"},"frontmatter":{"title":"Requirements and Quality Attributes","series":"cryptomate"},"tags":[{"name":"architecture","slug":"/tag/architecture"}]}}},
    "staticQueryHashes": ["1733002695","4006707078"]}