(At least) 5 Ways Agile Isn’t Just for Techies
The Agile Manifesto was created in 2001 by 14 software developers in Snowbird, Utah.
Note from Author: This article is not to deeply explain blockchains or Agile, but to understand how blockchains can act as a complimentary framework to improve HOW agile works in practice.
We'll briefly explain what blockchain technology is and what it enables. By doing so, we show how using blockchain alongside Agile strategy to better scale decentralized teams, eliminate barriers such as lack of trust between parties, the management of agreements, changing requirements, and then explain how its technology could increase efficiencies of Agile methodologies and address challenges they face as they scale, and what the future may bring with complimentary use.
A bit of history on Agile
The agile paradigm was invented, at least in terms of growth and concept awareness – about a decade earlier than modern Blockchain protocol. It's a long enough separation that there were no immediate considerations on how they might directly benefit each other. That is changing now.
Agile methodologies are focused in a fast and continuous value delivery for the customer while maintaining a high adaptability to change. This has led to massive adoption of its frameworks in Software development, due to the constantly changing nature of the software ecosystems being built.
Now, for a brief Blockchain explainer
A blockchain, put simply, is an iteratively growing list of records, called blocks, that are linked together using cryptography. You can also see it as a distributed ledger or database, shared across a public or private computing network. Each computer node in the network holds a copy of the ledger, so there is no single point of “failure”. To ensure all the copies of the records are the same, the network makes constant checks. You cannot edit or modify prior information without adding a record to a chain of events. Once the block is filled with data it is chained onto the previous block, which makes the data chained together in chronological order - thus the term “Blockchain”.
While blockchain technology initially made headlines for its use in cryptocurrencies – it’s simply a type of blockchain-used specifically as a ledger of transactions.
The ledger is also fully programmable using “smart contracts,” a set of conditions recorded on the blockchain, so that transactions automatically trigger when the conditions are met. For example, smart contracts could be used to automate backlog prioritization or automated testing requirement criteria. More on this later.
Smart contracts can be extremely simple or very complex, automating the execution of agreements so that all participants can be immediately certain of the outcome, without any intermediary's involvement or time loss. This is why smart contracts have become so popular in decentralized finance – the lack of intermediaries (humans) can provide lending and other services with far higher returns for customers.
In summary - blockchain’s core advantages are decentralization, cryptographic security, transparency, and immutability. It allows information to be verified and value to be exchanged without having to rely on a third-party authority. Use cases are endless but generally the goals are to increase capacity, boost possibilities for collaboration, lower costs, and decrease lag times of operations.
Perhaps you’re slowly beginning to see Blockchain’s relatedness to Agile. Immutable, distributed records of transactions, stored on participating computers, allowing trustworthy operations to be carried out without the need for a central authority and "smart" agreements (contracts) that provide security and trust, transparency and disintermediation between people leveraging it.
With Agile and Blockchain, if we can show the provenance of where something began, we make it easier to know work that's already been done. This reduces the likelihood of people replicating work output that's already been started or completed, can reduce questions on “status” of work items during meetings – the list goes on, but frictionless, relevant information flows will ultimately make people more efficient.
COMPLEXITY and Organizational design in Agile
Agile works by reducing risk in centralized organizations by allowing roles to be modified as needed, it’s not without downsides. Even with the best software tools, the rate of communication must INCREASE as the complexity of a project scales.
This “trade off”, where communication must increase lockstep with complexity and scale - is where Blockchains can help. The reason is simple – after a certain point of scaling, issues such as cultural differences, management of agreements and requirements, or issues of trust and transparency can be addressed and resolved through a blockchain platform.
There are a few common areas where this complexity increases:
· What is everybody doing?
· What information is most relevant to me today?
· Can my work be validated quickly so I can move onto other things?
· How is my work contributing to the project (network of tasks) overall?
· Is X work done? If not what “state” is it in?
Blockchains allows for all of these “transactions” to be freer and more efficient as complexity grows, with lag time to validate communicative “transactions” shrinks! Team members can see what’s going at a glance whilst not getting bogged down on meetings that aren’t required in order to progress - noise is reduced.
To explain my point, let’s apply Blockchain concepts into some concepts of Agile, many of which can be applied to any Agile process including Scrum, Lean, Kanban, and XP.
Agile and Blockchain offer improvements in:
Decentralized Backlog prioritization: Forms of Intermediation usually handled by Product Owner could be replaced by a smart contract system. Also, changes to a user story can be automated to notify, update or modify criteria in a development card.
· Example: A customer or its users could directly propose elements to be included in the backlog by voting on a blockchain. These would not be added to the backlog until stakeholders with acceptance roles agree. The entirety of this process could be handled as a smart contract, with the end result being a prioritized list of features that begin with users, then flow to stakeholders for prioritization, then land in the Product owner (PO) backlog for further refinement.
Transparency: Communication of every change or action required by Agile is provided in a natural way to the project’s ledger – with key events being capable of triggering various actions.
Acceptance Criteria: Smart contracts can be used to move a feature to the next stage of readiness when conditions are met in the contract. For a product owner, each user story has a data structure that includes key criteria like open/closed, state, sprint numbers, etc.
· When a sprint completes – we can verify on the blockchain that the release contains the new agreed upon functionality according to the acceptance conditions. The value in terms of points is transferred to the development team and automatically reported on the blockchain as “done”. The blockchain ledger will include all the steps taken to complete it and can become the main accountability tool for everyone collaborating on the project, using it as a sole “source of truth” around consensus on changes, priorities, and to aid in future funding.
Team Accountability: By keeping a complete, immutable record of all the developments happening since the very onset of a project and throughout each event– rejections, modifications, or other changes can be understood historically – and events like Retrospectives become more useful
Reconciliation: Backlog elements from different teams can compare themselves against other elements from other program increments to ensure duplicate work is not being done.
Reputation: using a Smart Contract reputation mechanism, team member tasks with higher value could be automatically assigned to those in the team who have greater relative reliability. These metrics could be used to improve cross functionality in any weak areas within the team.
Reduced Scaling challenges in communication: We can mitigate difficulties in communication complexity among people belonging to different sites and branches on multiple teams. By tracking the work in flow and the issues closed buy each developer we allow the customer to automatically be informed on activities being performed.
All these examples show how Agile Development becomes a ledger, founding the base for agreements, accountability and as a value transfer platform during development. It can also enhance collaboration and trust between developers and stakeholders by further removing noise from incoming priorities – further maximizing value for the product or service.
This concept of Smart Contracts and Blockchains can also be seen as a way to alleviate certain tasks often assigned to product owners in a Lean-Kanban or Scrum process.
To purists, these examples may seem contrary to the Agile mindset - open to the continuous changes and based on mutual trust. On the contrary! The future of Agile tools compliments the native nature of blockchains as a trustless technology perfectly suited to the spirit of mutual trust in the Agile manifesto.
Trust is a crucial glue mostly for Agile community. A blockchain does not create or eliminate trust but converts trust from one form to another.
Blockchain and smart contracts provides useful benefits like automatic verification of passing tests and various approvals without directly requiring a PO – and enables the PO to leverage their valuable skills in multiple teams or with customers understanding value.
When creating smart contract agreements for use in development, they render any activity transparent and visible to all the responsible team members since a blockchain is accessible and immutable. As such, it’s a great way to record the workflow and to track the enhancements of the product, the application of learnings, and the productivity of developers.
What does the future hold?
By using Blockchain and Agile, we see the benefit of providing full transparency and maintaining a complete and auditable record of a project, its course, and operations. Leveraging aspects of blockchain in Agile will open the collaborative world up. Not only facilitating working within large projects in the same company, but also by extending the possibilities across organizations sharing different development teams.
One of the great challenges today is to scale agile methods to distributed environments to achieve better and more efficient products or services without increasing complexity. As a decentralized value exchange mechanism, we can see how blockchains and smart contracts can greatly reduce aspects of complexity in delivery.
Eventually, we could use smart contracts as a reliable system for payments, financing, and reputation between a client and the work teams. The relationships between the different stakeholders can be articulated nimbly by translating them into a smart contract depending on the progress and needs of a given product as it evolves. Iterations should be obvious, as a smart contract cannot compete with the importance of relational quality in teams and can’t replicate certain forms of subjective value exchange.
For now – it’s obvious it will be necessary to consider problems that blockchains may have at present: implementation, implantation, regulatory framework, and cultural change, among others. The main challenge is the speed of change in work tools and processes. Therefore, metrics are critical, as we can identify the technologies' strengths and weaknesses in delivery products.
The other thing to realize is that many of the strengths of blockchain and smart contract technology are being partially implemented in many non-blockchain based tools today – such as robotic process automation or simply “RPA”. You also see various automations in JIRA, Azure DevOps, GitHub, and many other tools in the product development ecosystem.
What systems will become popular will be based heavily on how useful qualities of blockchains: transparency, programmability, and immutability are. One thing we can say for all these technologies - User experience, design, and ease-of-use will be critical for adoption.
The Agile Manifesto was created in 2001 by 14 software developers in Snowbird, Utah.