The BA works for IT?

Usually the Business Analyst works for either for the IT department or some form of Project Management office, or as part of a software consultancy. A question I asked myself recently was, is this they way things should be. The classic idea of a business analyst is as that all important connection and facilitator between business and IT.

Doesn’t the BA being connected to IT bias the analyst towards creating ‘software team friendly’ changes, i.e. prioritizing or championing changes that are easy to implement, or that make sense from the viewpoint of the development team?

In a webcast by the Agile coach Mike Cohn, he stresses the importance of balancing the forces of IT and the business to create the perfect environment for implementing well prioritised, valuable software change. If one or the other has too much influence and power, this creates an unfavourable environment.

The BA is a key role in understanding the needs of both sides, and to facilitate discussions, even if they are working under the IT department or PMO umbrella.

One Bitcoin same value as one ounce of gold

A couple of years ago I thought how amazing it would be if one bitcoin was worth more or less the same as one ounce of gold. Well, this week this came true, with the dollar value of bitcoin reaching all time highs.

http://www.coindesk.com/price-bitcoin-now-worth-one-ounce-gold/

Property Registration on blockchain

One of the most promising POCs going on at the moment in the blockchain world is the idea of registering and transferring assets, including property and home ownership. The goal is to make the process more efficient, cheaper for participants in the process, and more transparent.

Bitfury, known primarily for it’s mining capability, is partnering with the government of Georgia, to develop a Proof of concept

One of the key use cases for blockchain technology involves situations where there are multiple independent parties, and a need to record the ownership and transfer of assets or value where it would be very beneficial not to have a single source of truth. The high levels of corruption in the managing of property in Georgia make it a very good candidate for Blockchain.

 

Learning ethereum and Solidity basics

Ethereum is a public blockchain system similar to Bitcoin, but it provides a comprehensive programming structure to write and deploy smart contracts, small programs that can be used for many use cases, from enforcing agreements between multiple parties to issuing your own cryptocurrency.  It has it’s own programming language called Solidity.  I recently started learning about Ethereum and got my hands dirty with some entry level coding and setting up a local Ethereum blockchain for learning.

The easiest way to get an understanding of Solidity, Ethereum and Smart contracts is to use Truffle, a framework that will let you compile and deploy simple smart contracts to play with.

The first steps are to install TestRPC which produces a local Ethereum blockchain and 10 addresses to play with, as well as nodejs, Truffle and a handful of dependencies.

The following is the video (by Jordon Leigh and Will) I used to get going. It provides a great walkthrough for making a basic contract and concludes with an intro on how Ethereum handles a token issuing contract (or Metacoin), which is a common scenario. Jordon plays the role of new learner in the video, although he clearly knows the stuff well, it’s a good style for learners!

 

 

I did need to spend a few hours resolving issues with installation of TestRPC and Truffle (the guys in the video are using a Mac) and I’ve left a few notes below the video on all the things I needed to install as dependencies.  You’ll (hopefully) find one or two of these things are already installed on your system.  The video does not cover the actual installation of TestRPC and Truffle.

1. Downloaded and installed node.js (which installed npm I guess)

2. Downloaded testrpc files,

https://github.com/ethereumjs/testrpc/wiki/Installing-TestRPC-on-Windows

3. Downloaded github for windows. (desktop.github.com) and install

4. Add the path of gitbub to PATH (Environment settings in Advanced settings – Control Panel)
e.g. C:\Users\Admin\AppData\Local\GitHub
\PortableGit_284a859b0e6deba86edc624fef1e4db2aa8241a9\cmd

5. Install Visual Studio community edition

https://www.visualstudio.com/downloads/

6. Install Python 2.7

https://www.python.org/download/releases/2.7/

7. Add Python 2.7 location to windows PATH

8. Install Open SSL

http://slproweb.com/products/Win32OpenSSL.html

9. Download/Install windows SDK 8.1 !!. (actually step 10 should achieve this as well)

10. Add VC++ files (from within Visual studio CE) to add the Cl.exe file

11. Try and install testrpc (https://github.com/ethereumjs/testrpc)

https://github.com/ethereumjs/testrpc/wiki/Installing-TestRPC-on-Windows

12. Install Truffle

https://medium.com/zeppelin-blog/the-hitchhikers-guide-to-smart-contracts-in-ethereum-848f08001f05#.tw652mkog

13. I ran from c:/Users/Admin

type truffle and should see list of truffle standard commands.

Note: If using standard windows command window and running truffle commands opens the js file instead of command, you may need to append’.cmd’ to the end,
e.g. truffle.cmd init. I heard that with Windows Powershell you may not need to do this.

 

Instant Confirmations and Double Spends

When making a transaction with BTC using a wallet, it is broadcast to the network. A miner will verify the transaction by checking that the amount you are sending and address matches an unspent input of a previous transaction in the chain. The miner will include your transaction in a pool of other transactions and include them in a block. They then attempt to solve the block. Miners compete to solve the block. It usually takes an average of 10 minutes for a miner somewhere to crack a block and for any given transaction to be added to the blockchain ledger.

Generally, particularly when being a receiver of BTC from an unknown or untrusted party, it’s recommended to wait for six confirmations to consider the transaction well and truly concreted into the blockchain with no risk that there has been a double or multiple spend that could later invalidate the transaction. This would take approximately one hour from the time that the transaction is submitted.
For relatively small amounts, one confirmation may be considered enough. Interestingly, some payment service providers such as CoinDesk give a nice friendly confirmation message within seconds of a payment made to them on behalf of a merchant. How is this possible when it takes several minutes for a transaction to clear on the blockchain? In this case, Coindesk validates your transaction, transmits it to the BTC network, tells the merchant that monies have been received and then kind of assumes that the transaction will be OK.

It is willingly taking on the risk that a payment could be dishonest and that a double spend could be happening. If a double spend occurs, Coindesk could either be lucky or unlucky; lucky if their transaction makes its way into the main chain; unlucky if their transaction ends up in a block which later becomes orphaned. Coindesk is running a succesful service so its assumed that double spends do not occur against them so frequenctly.

Why would anyone want to perform a double spend? In an attempt to obtain goods or services from 2 seperate parties with the same cash! kind of like trying to write 2 identical cheques with 2 people attempting to pay with them at the same time in 2 different cities. Before the merchants and the banks know what’s going on, the fraudsters have made off with double values of goods.

We’ll discuss more about double spends in the future. For now it’s good to know that if you really need a BTC payment to be accepted in a few seconds and it’s a relatively small amount, services like Coindesk exist that make this possible.

Powered by WordPress