Showing posts with label kanban. Show all posts
Showing posts with label kanban. Show all posts

Wednesday, April 8, 2020

Non-Repudiation in Supply Chain Management - Use Case for Blockchain

Supply chains are under strain at the moment -- the fragility of current systems is laid bare during this pandemic crisis. Blockchain, simplified, is a data structure that maintains transactional records and while ensuring security. This decentralized approach ensures — a chain of records which are controlled by no single authority. This enables digital information to be distributed, but not copied, so each individual piece of data can only have one owner. Blockchain is the underlying technology of digital currencies. But it has a multiplicity of uses.

Many call blockchain a “digital ledger” stored in a distributed network. Here is one way to think about how Blockchain works:

“Picture a spreadsheet that is duplicated thousands of times across a network of computers. Then imagine that this network is designed to regularly update this spreadsheet…”

This information is constantly reconciled into a database, which is stored in multiple locations and updated instantly. That means the records are public and verifiable. Since there’s no central location, it harder to disrupt as the data exists simultaneously in millions of places.

In the service of supply chain management, manifests could be secured with this approach. Modern supply chains are complex. A business’ supply chain consists of all the links to creating and distributing it products. Depending on the goods, a supply chain can be extraordinarily complex, spanning numerous stages with multiple geographical (often global) locations. The documentation can consist of a multitude of invoices, statements, payments, bills of lading, etc., and have several individuals and entities involved. The timeframe, even with just-in-time production, can require months for the process to go from raw materials, component construction and assembly, through packaging and distribution.

The idea of using blockchain to streamline workflows for all parties, no matter the size of the business network, is not new. In government procurement, for example, shared infrastructure provides auditors with greater visibility into participants’ activities along the value chain.



The challenges in many supply chains include lack of transparency because data consolidation clouds repudiation. There's a lack of real-time issue resolution resulting in ineffective supply chain risk management. Shocks (as we have seen) result in sudden demand changes -- a "bullwhip" effect that reverberates throughout the vendor ecosystem.

A use case might look like this: instead of having a central intermediary, use blockchain in an Enterprise Resource Planning (ERP) solution to synchronize data and transactions across the network. Each participant verifies the work and calculations of others. This relives the enormous amount of redundancy and crosschecking found in many current systems.

With the right implementation strategy, blockchain has the potential to drive efficiencies, lower costs, and to enhance consumer experience through transparency and traceability.

Monday, June 17, 2019

How to Make Continuous Delivery a Reality in an Agile Environment

Continuous integration and continuous delivery (CI/CD) are core elements of successful DevOps. Systems engineers may start with CI because it is familiar. With a DevOps focus, organizations uncover configuration, packaging, and orchestration that are necessary to effective software development life cycle (SDLC). This empowers developers, administrators and engineers to create valuable CD practices, adding to agility.

Where less experienced developers might struggle with CI/CD performance, testing delays and other bottlenecks, the enterprise would do well to develop processes and best practices to make DevOps in the cloud a value-driven methodology. To save money, this will shorten the SDLC — because CD is all about updating web services. In public clouds such as AWS and Azure, this is done through pipeline stages (e.g. dev, test, staging and production). When containers are implemented with a platform-as-a-service (PAAS) approach, stages become sandbox environments, scratch instances, and production instances.

The benefit of such an approach is that the work outputs and products themselves benefit from flexibility. Regular face-to-face interactions and collaborations between team members are conducted to ensure the scrum teams level-set expectations. Finally, add value by continuous delivery throughout the life cycle, so that the end product is more secure and more reliable. Implementing an agile manifesto tracks with addressing evolving end user requirements. 

For CD, ensure user stories are married correctly to those requirements and that each story rolls up to an Epic that represents a standalone feature. This enables the devops team to release reasonably sized components of functionality that are consumable by users. These are also traceable back to the release plan. We want to ensure verification at each stage because this process defines acceptance criteria — so the stakeholders know when something is declared “finished.”

Schema, user interface, access control rights and static resources such as icons and images are all part of the creation process and we manage them just as diligently as source code. The DevOps team checks assets into a version control system as a single source of truth (GIT or Subversion). This benefits the client by ensuring that developers are making changes in a segregated environment — catastrophic failures are completely avoided with such approach, and integration into a risk management-based security framework is seamless. 


The organization should understand automated quality processes are essential — Selenium is a go-to tool for testing functionality. There are several verifications to make before functional testing. Static code analysis tools, such as PMD, are essential to ensure code conforms to a single style. Unit test coverage is also essential — establish a set of Key Performance Inidcators (KPIs) for coverage of at least 75% of code. Finally, after these automated tests pass, implement a manual peer review. This enables seasoned developers  to spot opportunities for performance improvement where automated tools can’t.