Category Archives: IT

Challenges of testing when using Scrum

Recently I dived into the merits and challenges of software development (or more generic IT products for that matter) in Agile based settings, in particular using Scrum.  Scrum is one of those methodologies that are part of a wave of Agile based methodologies (LEAN, extreme programming among others) that emerged in the 90’s and in 2001 united for the so called Agile Manifesto. Although Scrum is around for some time, it seems that in recent years Scrum has taken its place in countless organisations as the preferred method of developing software. While studying the Scrum approach I kept a focus on the inclinations for the testing process. I will not go into lengths to give a full description of the Scrum framework in this article but instead focus on possible weaknesses and strengths in relation to the testing process.

A clearly positive aspect of Scrum is that it is not hard to understand. Scrum is defined as a process framework, it does not prescribe an in depth approach on every aspect of the software development. Scrum contains a comprehensive workflow and its own taxonomy (with concepts like SprintIncrementDefinition of Done) is limited. The essential of the Scrum approach could be defined as: transparant software development based on a just-in-time workload, the effort to ensure all involved have a clear picture of the products that will be delivered and the benefit of a team based operation where the group effort is more important than individual success of the team member.

Because the scope of a development iteration (the Sprint) is limited (usually 2 weeks and maximum 4 weeks) the chances of deviation between the mutual understanding of the work to be done and the actual performed work could theoretically not be a too big surprise. Along the path of the Sprint there are mechanisms in place (Daily ScrumSprint Review and Introspective Review) to eliminate risks even further. As -in general- testing activities are based around inventorying and addressing the potential risks, the Scrum approach from a testing perspective is a step in the right direction to deliver quality products.

Yet besides these positive aspects, Scrum also will introduce some trade offs. Before diving into these trade offs, some perspective is needed on how to judge whether something might be considered a weakness or strength when we look at the Scrum process and its intertwining with testing. Over the past decades the most clear contraposition to the Scrum approach of software development has been the waterfall method. The waterfall method implies that there is strict sequential order of activities in the process: it is -for example- uncommon to start coding before the functional and technical requirements are completely set and approved by the stakeholders. An implication of this method is that the time to bring a product to the market might be taking a (too) long time. When the analysis phase within a waterfall project is carried out, internal or external (market) situations might have changed and/or the set requirements have changed. New requirements could be added, old ones could be not longer applicable. In an ever more competitive business world the rise of Agile based methods became new, interesting ways to overcome the waterfall method’s shortcomings. A less positive track record for timely delivered waterfall based projects also contributed to a rise in interest for agile methodologies and Scrum in particular.

Yet for testing purposes the waterfall method unmistakable has its advantages. The well known V-model for testing represents this.

A test strategy could be plotted against the deliverables (or project phases) in the waterfall based project. It gives the test manager time and opportunity to carefully plan and carry out the test strategy, changes never come too abrupt. And if changes come they could be easily adapted into a refined or updated test strategy.

In the Scrum world things work different. The Sprint is short cyclic iteration with a predefined outcome of the Sprint, usually defined as ‘working software’. This approach offers challenges in the testing process. First of all the testing effort has a tendency to become inefficient compared to a waterfall based approach. A test process needs to be in place within each Sprint leading to some inherent overhead (like writing test scripts, setting up test environment, inviting testers for the User Acceptance Test). It is still easier and less time consuming to perform a test process once for a larger number of tasks than numeral times with each Sprint for a specific or small number of tasks. The members of the Development Team (usually between 3 to 9 members) have no specific role within the team and should be able to take on the tasks of another team member. So a team member who develops software should also be able to test the software. This might lead to effects of tunnel vision (approving one’s own work) and a lack of segregation of duties.

The outcome of a Sprint does not necessarily has to be a piece of software that is implemented in the live environment. Preferably it is, but in the Definition of Done it also can be determined that the Scrum Development Team has no role in implementing the software in a live environment. This might be the case when that specific task is to be performed by the IT Operations Department. From a test manager’s perspective this caveat needs attention because it leads to non-addressed risks in the period between the deliverance of the Development Team versus the actual implementation in a live environment.

To overcome these potential trouble with the testing process different ideas have been introduced to deal with potential shortcomings. We will have a look at two of them: Agile Testing Quadrants and Test-Driven Development.

Agile Testing Quadrants

Developed by Brian Marick it places different tests in different quadrants based on their relevance (technology driven versus customer driven, supporting the team versus product critique). An advantage of this visual representation is that the Development Team is aware of the tests that support the quality of their products.

Test automation is an important aspect of trying to solve issues of reducing the testing time it will take from the resources of the Development Team or stakeholders to perform tests. We need to be aware though that test automation is not the ultimate cure for time related issues. Tests have to be coded, so it takes time to complete them before the test automation can facilitate the products that emerge in Quadrant 2. Test ware needs to be maintained as well. For example external factors like an organisation upgrading to a new version of a browser or a fixed security leak need to be taken in account when keeping the test ware up to date.

In Quadrant 4 tests like Performance, Load and Security Testing are positioned. These type of tests require special expertise that is not necessarily available by default within the Development Team. Also the same as for test automation is applicable: the test ware for Performance, Load and Security Tests needs to be initially produced and afterwards actively maintained in order to keep them relevant or simply working in future Sprint iterations/ increments . With Security Tests you might even ask if it is desirable to run these test from within the team due to their delicate nature and from a perspective of segregation of duties.

Test-driven development (TDD) has its origins in extreme programming, an other Agile method. With TDD the developer starts his work by writing the actual test before writing the software code for the product to be delivered. Although TDD has a lot to be said about that goes beyond the scope of the article the clear advantage is that it solves issues raised in previous paragraph. The creation and maintenance of test ware becomes an integral part of the work by the Development Team.

Conclusion
Scrum needs an organisational change of mentality to gain the best results. If only the IT software development is isolated and using Scrum, while other parts of the organisation (Marketing, Finance, Purchase, HR) do not participate, Scrum will be less relevant or even fail to work. But even within the IT department itself the integration of Development Team with the Operations organisation, becomes unavoidable and mandatory to tackle the problem of the possible gap between the Scrum product according to the Definition of Done and the ‘real’ live implementation date.

Test automation is necessary to keep control over the time aspects concerned with testing. But as test automation needs its own level of maintenance it is certainly not the answer to all challenges that the Development Team faces. Especially the tests in Quadrant 4 (Performance, Load, Security) require special expert knowledge that will not always be present by default from the Development Team. If that is not the case it will need to be planned with the required resources and might lead to more planning or product related issues that are difficult to match with the short cyclic iteration of the Sprints.

The_Rise_and_Rise_of_Bitcoin

Review ‘The rise and rise of Bitcoin’

The rise and rise of Bitcoin (TRARB) follows the path from the invention of Bitcoin and its the rise in the early years (until 2014) through the eyes of documentary maker Nicholas Mross. His brother Dan Mross is a Bitcoin enthousiast and computer scientist. He is the main person in the documentary, interviewing important names in the Bitcoin world and participating in events like Bitcoin conventions. The double ‘Rise’ title can be explained due to the volatile nature of Bitcoin, where more than once Bitcoin seemed to go definitely down, only to re-emerge with a higher price and bigger importance.

In 2012 Dan understands that the developments around Bitcoin could become important enough to start documenting them. Dan is followed through his personal involvement: mining Bitcoins. Mining is the process of earning a Bitcoin reward by offering computer processing power enabling the Bitcoin transactions. By the end of the documentary it is becoming clear that the days for mining are over for the ‘hobbyist geeks’. The market has become highly competitive and Dan decides to stop mining and sell his mining rig.

Throughout the actual developments and interviews the documentary is very useful to watch for people who are new to Bitcoin because with clear visuals its roots and the technology behind Bitcoin are being explained. A counter in the lower side of the screen reminds the viewer of the US dollar price of the Bitcoin of that moment in time during the documentary. Usually it fluctuates in the range of $1 to $250. It is not until the latest shots of the documentary that it passes the $ 1.000 landmark.

Bitcoin was invented as an alternative to the banking system and especially its 2008 collapse when worldwide banks needed to be bailed out at the expense of the taxpayer. The idea behind Bitcoin was that it couldn’t be manipulated by a central authority. Only a fixed amount of coins are issued, following a fixed set of rule.This is structurally different from how the fiat system works, where printing takes place in accordance to policies from a central bank. Satoshi Nakamoto was the mysterious person behind the Bitcoin principles and until now his identity is unknown. His 2008 white paper was a brilliant vision on bringing together technologies (like cryptography, peer-to-peer networking and proof of work) that would lead to the design and implementation to the world’s first cryptocurrency.

The Cyprus crisis in 2013, where consumers were cut off from their bank deposits gave Bitcoin for the first time an excellent use case: if the consumers had deposited their money in Bitcoin then it would have stayed out of reach from authorities, instead of being deprived from their deposits. Also in later cases (Zimbabwe, Venezuela) and in countries where there is no tradition of private banking, Bitcoin would prove to be an excellent reason for consumers to turn to Bitcoin.

An interview with Gavin Andresen is one of the interesting pieces in this documentary. Andresen kept a close (business) relationship with Nakamoto. Nakamoto gradually disappeared from the Bitcoin community around 2010-2011. In one of his last postings he regrets that his invention is now being used by the likes of Wikileaks to accept anonymous contributions. Andresen would be become the most influential developer until 2016 (when Andresen himself stepped down).

One aspect about Bitcoin would be a constant factor through the years: the very tense relationship with authorities. Mt. Gox, originally a trading card platform before it was transformed to become the world’s largest exchange would be subpoenaed by American authorities. A hack of the exchange in early 2014 send Mt. Gox into insolvency prematurely. The Mt. Gox episode is a very crucial element in early Bitcoin history and the documentary is probably the only filmed material from inside the company. The ‘dark web’ website ‘Silk Road’ would be very early on the radar of authorities. Silk Road made it possible to buy  drugs and medicines online. Payment could be settled only by transferring Bitcoin. In 2014 the website was dismantled by authorities and leading engineer Ross Ulbricht was arrested and send to jail.

Charlie Shrem (CEO of BitInstant) can be seen explaining his fear of going to jail or becoming a martyr. His company needs to spend large sums on lawyers to stay legally compliant. Besides these legal trouble it becomes clear that due to the popularity of Bitcoin his company has increasingly difficulties in handling the client transactions in a properly manner. Ultimately Shrem would also be arrested in 2014 and sent to jail on charges of money laundering.

Consumers would have their own struggles to keep their investment safe because of the many attempts of hacking exchanges, the worst example being the already mentioned Mt. Gox exchange. Throughout the documentary it becomes clear that after the wild first years the Bitcoin was becoming a more professional, streamlined industry. Many companies from the early years would be forced to stop (BitInstant, Tradehill) and be replaced by companies backed by large investment parties (like BitPay and Coinbase).

After the documentary was released there would be another development in the Bitcoin industry: the rise of alternative coins and hard forks from Bitcoin (like Litecoin and Bitcoin Cash). Vitalik Buterin appears as the lead writer for the Bitcoin Magazine. He would later become the founder of Ethereum, the largest competitor of Bitcoin. Roger Ver is portrayed in the documentary trying to convert Japanese retailers to use Bitcoin for client payments. Ver would become the man behind the Bitcoin Cash hard fork.

TRARB is a must see documentary for anyone who is interested in the short and turbulent history of Bitcoin and wants to know more of its origins. It will give a good insight to the big names in crypto. Throughout the documentary I felt an often returning feeling how fast all developments have gone in just a few years. This documentary will remain an important document on how a technological development revolutionised the financial-economic world. Maybe in 10 years we will look back at it as a fad that faded in oblivion or as a starting point of a technological development like the rise of internet in the mid 90’s.

Nootdorp, March 2018