The process of ideating and developing products (including software products) falls within the domain of Complex Systems. A complex system is a dynamic network of interactions, where the behaviour of the system as a whole may not be predictable based on the behaviour of its component. A model such as the Cynefin Framework which was developed by David Snowden has helped with our understanding of complexity and our approach to addressing complex real world problems.
Models are useful tools that helps understand our self and the growth process. Learning is a critical part of the growth process and I have always referred to the Shu-Ha-Ri concept as a model that help me with mapping out where i was along the process. It is a a very simple but POWERFUL concept and i am hope you find this useful as much as I have.
Shu: In this phase, the apprentice follow the rules that have been taught and rarely deviate from the rules.
A very long time ago, I was coaching a Scrum team where a team member was on an hourly contract and was regularly billing 70-80hrs a week. Among many other ideas that I discussed with client, I advised my client was to transition this consultant away from an hourly contract to a full time with a full-time (40hours a week) contract. With this new arrangement, my client can recruit two full time consultants instead of one person at 70-80hrs week.
I have always been one of those people that believed one of the major factors for succeeding with Agile ways of work is physically co-located teams. As far back as 2007, I remember the joys of walking into an open plan office bustling with activity, and colourful post-it notes on white boards within the office. Being the self confessed Agile Evangelist that I was, I would lobby for co-location within the work place as i believed it complimented collaboration; we just preferred the business and technology teams sat next to each other.
It is surprising that many “agile” teams still have a User acceptance testing phase within their software development lifecycle; if this doesn't surprise you, then it surprises me. To be clear, I refer to an “agile” team as a team that has adopted one of the Agile methodologies i.e. Scrum, Kanban, SAFE e.t.c. as their chosen methodology to build their product. One of the agile manifestos reads “Customer Collaboration over Contract negotiation” and this implies that we are encouraged to Collaborate with the Customer while building the product.
Fix us Quick. The process of transforming an organisation to be Agile is a one that is ladden with continous learning and not a quick fix as some might make it seem. Organisations would often employ an Agile Coach for 3months to 1 year hoping that at the end of this period, the organisation would have completed their transformation journey. A great Agile Coach will always inform you that even after the engagement ends, the journey of Agile Transformation has not ended.
Usually when I join an organisation or team to help identify challenges with current processes and help the teams fix their processes, I would usually look for bottlenecks within the organisation. Once identified, bottlenecks are usually not difficult to eliminate compared to the effort that is required to ensure that behaviours that have introduced the bottlenecks are unlearnt.
A bottleneck can be described as a process within a chain of processes that reduces the overall capacity of the entire system due to the limitation of that single process.
Download actual conference slides here: pptx pdf
Introduction: Agile has been around for a while and whilst there has been a lot of successes recorded for some aspects of the software development process such as analysis and development, it seems that testing is that “area” that is being pushed to the right and sometimes made optional. In my years of working in Agile, there are certainly a lot of moments that I had thought “everything else but testing is Agile”.
Most Agile methodologies provide for the application of a Technical Spike for exploring a new technology or risky areas of a product. The Scaled Agile Framework (SAFe) methodology defines the Spike as a type of Exploration and Enabler Story.
There are a number of approaches that have been recommended for Technical Spikes. These include:
Estimating and sizing a Technical Spike Story
Timeboxing a Technical Spike .
I was recently contacted to write an article for a devops online which has been published here but i wanted to post same article on my blog. This is by no means a detailed tutorial but i hope it gives a very quick overview on Continuous Integration and Continous Delivery.
Software development is usually undertaken by one software development team or a number of software development teams. Each software development team would usually consist of developers, testers and business analysts.