Executive Summary of 4 commonly used Agile Methodologies

AGILE – What business executives need to know #2: Overview of 4 most commonly used Agile Methodologies

In the first article in this series we focussed on an overview of what Agile software development is and referred to the Agile SCRUM methodology to describe the agile principles.

Let’s recap – Wikipedia describes Agile Software Development as an approach to software development under which requirements and solutions evolve through the collaborative effort of self-organizing cross functional teams and their customers / end users.  It advocates adaptive planning, evolutionary development, early delivery, and continuous improvement, and it encourages rapid and flexible response to change. For an overview see the first blog post…

Several agile delivery methodologies are in use for example: Adaptive Software Development (ASD); Agile Nodelling; Agile Unified Process (AUP); Disciplined Agile Delivery; Dynamic Systems Development Method (DSDM); Extreme Programming (XP); Feature-Driven Development (FDD); Lean Software Development (LEAN); Kanban; Rapid Application Development (RAD); Scrum; Scrumban.

This article covers a brief overview of the four most frequently used Agile Methodologies:

  • Scrum
  • Extreme Programming (XP)
  • Lean
  • Kanban

 

SCRUM

Using Scrum framework the project work is broken down into user stories (basic building blocks of agile projects – these are functional requirements explained in an in business context) which are collated in the backlog (work to be done). Stories, from the backlog, are grouped into sprints (development iteration) based on story functionality dependencies, priorities and resource capacity. The resource capacity is determined by the speed (velocity) at which the team can complete stories, which are categorised into levels of complexity and effort required to complete. Iterations are completed with fully functional deliverables for each story until all the needed stories are completed for functional solutions.

SCRUM

Scrum is based on three pillars:

  • Transparency – providing full visibility on the project progress and a clear understanding of project objectives to the project team but more importantly to the stakeholders responsible for the outcome of the project.
  • Inspection – Frequent and repetitive checks on project progress and milestones as work progresses towards the project goal. The focus of these inspections is to identify problems and differences from the project objectives as well as to identify if the objectives have changed.
  • Adaptation – Responding to the outcome of the inspections to adapt the project to realign in addressing problems and change in objectives.

Through the SCRUM methodology, four opportunities for Inspection and Adaptation are provided:

  • Sprint Retrospective
  • Daily Scrum meeting
  • Sprint review meeting
  • Sprint planning meeting

A Scrum team is made of a Product Owner, a Scrum Master and the Development Team.

Scrum activity can be summarised within the following events:

  • Sprint – a fixed time development iteration
  • Sprint Planning meetings
  • Daily Scrum meetings (Stand-Up meetings)
  • Sprint Review meetings
  • Sprint Retrospectives

 

XP – EXTREME PROGRAMMING

XP

Extreme Programming (XP) provides a set of technically rigorous, team-oriented practices such as Test Driven Development, Continuous Integration, and Pairing that empower teams to deliver high quality software, iteratively.

 

LEAN

LEAN

Lean grew from out of the Toyota manufacturing Production System (TPS). Some key elements of this methodology are:

  • Optimise the whole
  • Eliminate waste
  • Build quality in
  • Learn constantly
  • Deliver fast
  • Engage everybody
  • Keep improving

Lean five principles:

  1. Specify value from the customer’s point of view. Start by recognizing that only a small percentage of overall time, effort and resources in a organization actually adds value to the customer.
  2. Identify and map the value chain. This is the te entire set of activities across all part of the organization involved in delivering a product or service to the customer. Where possible eliminate the steps that do not create value
  3. Create flow – your product and service should flow to the customer without any interruptions, detours or waiting – delivering customer value.
  4. Respond to customer demand (also referred to as pull). Understand the demand and optimize the process to deliver to this demand – ensuring you deliver only what the customer wants and when they want it – just in time production.
  5. Pursue perfection – all the steps link together waste is identified – in layers as one waste rectification can expose another – and eliminated by changing / optimizing the process to ensure all assets add value to the customer.

 

KANBAN

Kanban is focussed the visual presentation and management of work on a kanban board to better balance the understanding of the volume of work with the available resources and the delivery workflow.

KANBAN

Six general work practices are exercised in kanban:

  • Visualisation
  • Limiting work in Progress (WIP)
  • Flow management
  • Making policies explicit
  • Using feedback loops to ensure customer and quality alignment
  • Collaborative & experimental evolution of process and solutions

By limiting WIP you are minimising waste through the elimination of multi tasking and context switching.

There is no prescription of the number of steps to follow but it should align with the natural evolution of the changes being made in resolving a problem or completing a specific peace of work.

It focuses on delivering to customer expectations and needs by promoting team collaboration including the customer.

 

A Pragmatic approach

These techniques together provide a powerful, compelling and effective software development approach that brings the needed flexibility / agility into the software development lifecycle.

Combining and borrowing components from different methodologies to find the optimum delivery method that will deliver to the needs of the organisation is key. Depending on the specific business needs/situation, these components are combined to optimise the design, development and deployment of the software.

Helpful references:

A good overview of different agile methodologies can be found on slideshare at https://www.slideshare.net/SmartBizVN/introduction-to-agile-and-lean-software-development.

 

Let’s Talk – Are you looking to achieve your goals faster? Create better business value? Build strategies to improve growth? We can help – make contact!

 

What CEOs are looking for in their CIO

During the CIO-Dialogue 6 held in Brighton in November 2012, I had the privilege to listen to Simon La Fosse presenting. Simon, CEO of LaFosse Associates, is a specialist technology executive search and head-hunter with 25 years experience in the recruitment market.

What does a CEO really want from his CIO?… Simon presented the head-hunters perspective followed by a lively discussion. This presentation had a profoundly positive impact on my confidence especially after pondering on the key aspects that was highlighted (listed below) and measuring yourself to identify areas of strength and where I can improve.

What I took away from the interaction…

The CEO is looking for a CIO that he can build a professional relationship with. Someone they can trust to help them through the disruption technology is continuously causing in business.

The CIO must not be too involved in the daily operations as they have to see the bigger picture and spot opportunities through interaction with peers and bring those to the CEO in clear, concise, precise and commercial terms. To be able to do this the CIO needs a fantastic leadership team in place. Smart people that know how to do their job (see ‘Success?… People Come First’) and bring valuable feedback and management information to the CIO in support of the business. A leadership team that will give the CIO the time to focus on the bigger picture. Measuring your management team with the same criteria is important as your team in essence are the channel that will get the job done.

Key aspects that are personality trades and skills

that the CIO must possess to satisfy the CEO’s requirements…

  • Emotional Intelligence – Someone that understands and who can manage emotions. Emotions bridge thought, feeling and actions and affect many aspects of a person and hence teams. There are three aspects of the effect of emotions: Physical, Behavioural and Cognitive. How tuned in is your intuition to understand and manage emotions? Emotional intelligence is about two key principles: firstly it is about awareness, identifying and understanding emotions and secondly it is about using and managing emotions. Emotional intelligence is a key trade in the success of influence and motivation of people. How emotionally intelligent are you?
  • Ambition – CIOs have to have a desire for achievement, success, honor and the willingness to strive for it’s attainment. Ambitions drives change for the better which is should be a constant in any CIOs strategy and objectives.
  • Advocacy – Supporting the CIO in his business vision, mission and strategy and continuously recommending technology innovative ideas and plans in support of the his technology team to drive the success of the CIOs objectives.
  • Influence – Gravitas within his personality to be a compelling force in the organisation that effects peoples actions, behaviour, opinions, decisions for the better good of the business.
  • Assertiveness – Be confidently self assured and positive in his communication, strategy and decisions to build the confidence in others that the right things are going to happen. Someone that can stand his ground without being aggressive.
  • Authenticity – You get hired for the person you are. Be truthful to yourself and others and do not wear a mask at work.
  • Results – CEO are looking for results, getting the job done by not taking too high risk.
  • Simplicity – Do your thinking before hand and present to the CEO in a compelling way. Exercise the art of taking a complex subject and present it in a simple compelling way that enable the CEO to make knowledgeable and quick decisions.
  • Commerciality – Continuously keep an eye on the business commercials. Look for ways to improve the bottom line. How can you improve the revenue and reduce the cost? Question if the status quo are still relevant. Constantly drive improvements. Keep coming back with savings.
  • Dissatisfaction – Always look for ways to improve without demoralising your team. Evaluate and embrace innovative ideas.
  • Leadership – Leadership is the art of leading a group of people or an organization to execute a common task by providing a vision that they follow willingly through the inspiration received from the leader’s passion , knowledge, methodologies, and ability to influence the interests of all members and stakeholders. (see ‘Leadership by Definition‘) Do not just lead your technology team – lead from the top, also lead your piers – lead sideways. Be accountable and responsible.
  • Values – The basis for ethical action and believes. Values defines your sense for right and wrong. Values influence attitudes and behaviours. Ethical personal and cultural values are very important. Understand the business ethics and the values of your CEO.
  • Culture fit – Specifically referring to organisational culture which is the behaviour of the people working within the organisation. You must be getting on with people. Understand when the culture is changing and influence the change to the desired outcome.
  • Sector Knowledge – Know your subject (technology) in relation to the business but more importantly know your organisation’s product, their market and the opposition.
  • Supplier Relationships – Know the industry to bring options in supplier selection. Understand how the CEO wants this to be managed. Build meaningful and, more importantly, business valuable relationships. Aggressively manage the suppliers by always comparing and looking for the best value delivery – this is not always the cheapest option…
  • International Experience – We live a multi-cultural society where a dynamic mixture of races, languages and culture are working together in a global environment. The CIO must be confident and at ease in his environment through cultural understanding, exposure and experience gained through international exposure.
  • Agility – You must ensure that you and your organisation have the ability to rapidly respond to change without disrupting the stability to operations on a continuous basis.
  • Trust – The CEO is relying on the CIO and visa versa. Trust involves two parties with a ‘trustee’ and a ‘trustor’ – The trustor is reliant on the actions of the trustee. In the CEO and CIO relationship the trust is mutual to each other. Trust is the believe that the other will do as expected to ensure a positive outcome of a situation with an unknown outcome in the future. Trust is so key that if you loose the trust of the CEO, move on.
  • Accountability – According to Wiki is Accountability the acknowledgment and assumption of responsibility for actions, products, decisions, and policies including the administration, governance, and implementation within the scope of the role or employment position and encompassing the obligation to report, explain and be answerable for resulting consequences. The CEO has to know that the CIO will take accountability for the actions of his devision. CIOs have to take accountability with comments like: “leave this to us/ IT”, “it is our issue, we’ll sort it out”.
  • Complexity – Technology is complex but the CEO relies on the CIO to keep things simple. The CEO has lots on his mind and relies on the CIO to be short, precise and to the point explaining a complex situation or proposition in simple terms.
  • Surprise – Most CEO will agree with this, they just do not like surprises! Keep them informed so no situation or communication turns into a surprise.

A view additional trades and skills – from my perspective…

  • Visionary – Have the ability to read the current trends and envision the future. Have a clear and specific view of the future incorporating the advances in technology and social or political arrangements. Bring those views to the CIO to incorporate in his vision for the business.
  • Motivator – The ability to get the best out of people through your ability to understand, manage and work with people. This links in closely with Leadership and Emotional Intelligence. You must be able to motivate and keep your teams motivated to ensure optimum productivity and delivery to expectations.
  • Coach & Mentor – Build a relationship with your staff and piers to help encourages the lending of assistance, guidance and help. Nurture relationships of learning, open dialogue and challenge to drive towards greater knowledge, experience that ultimately leads to increased wisdom which in turn achieve the goals of the business.
  • Catalyst for Innovation – Encourage and reward the continuous renewing, changing and creating of move effective products, operational processes and business models to adapt to a changing environment. This links in with agility mentioned above.
  • Integrator – Be the person that ensures the forming components of an organisation, for example the different departments, sub systems, infrastructure, governance groups and teams, etc. sufficiently integrate with each other forming a single unit driving towards the same business objectives. Technology can and should provide the glue between the different components. To accomplish this, a very good understanding of the bigger picture of the organisation is needed. Innovation with different parts of the business will not deliver it full value without effective integration into the revenue streams of the business.

What other trades and skills do you feel is key for a CIO to fulfil the expectations of the CEO?

Let’s Talk – Are you looking to achieve your goals faster? Create better business value? Build strategies to improve growth? We can help – make contact!

AGILE Software Development – What business executives need to know

AGILE Software Development – What business executives need to know

As a business executive how much do you really know about the Agile approach to software development? As the leaders within the company responsible for using technology innovation as an enabler to accelerate the business operations and improve the companies results, do you really understand your role and involvement in the technology development methodology used in your organisation? How can you direct the team if you do not understand the principals of the software development game?

All executives in businesses using an agile approach for software development must understand the basic principals, rules, practices and concepts of “Agile”. With an understanding of the methodology the software development team is following, a better understanding and appreciation of the team and their efforts are reached improving your ability to lead and direct the people involved across the business.

This series of Blog Posts provides an executive summary of the “Agile Software Development Approach” to get your tow in the water.

Agility is expected in modern software development and the customers assume that through appropriate planning, solutions are build with the ability to anticipate changes and to realign over time as requirements and needs are changing.

Agile comes from the Latin word ‘agere’ which means “to do” – it means the ability to progress and change direction quickly and effectively while remaining in full control.

Software development delivering products and solutions, usually come about through the same phases within the business:

  • A need – The business has a particular demand and/or requirement and need a new software product or changes and enhancements to existing software solutions to address this demand and deliver value to the client and/or customers.
  • Funds – Budgets are drawn up and the business secures the availability of funds required to deliver the new project
  • Project Acceptance – The business stakeholders approves the software development project and it is chartered.
  • A Plan – Project Planning and Management is the fist but also a continuous key exercise in any project.
  • Execution – Build it!
  • Acceptance and Go-Live – The business accepts the software as fit for purpose, addressing the need and it is released into production.
  • Support – The provision of operational and technical support to keep the new software working after deployment into production.

In addressing this business need, software technology development teams follow a typical cycle – The Software Development Cycle:

Requirements –> Design & Architecture –> Functional Specifications & Use Cases –> Acceptance Criteria –> Technical Specifications –> Code Engineering –> Testing –> Deploy –> User Acceptance –> Production –> Support –> Requirements for a new cycle

SWDev_Trad_Agile

In traditional software development, individual specialised groups of Business Analyst, Testers, Architects, Designers, Developers and Network Engineers completing each step by working through the full scope of the project before it is handed over to the next step. A lot of effort is spent in each of the steps and more time is spent in handing over documentation and knowledge from one step to the other until the project is done.

In agile software development, the entire project team, consisting of members from specialised groups, is responsible to complete small increments of working software that deliver value to the business. Collaboration, across the whole company and the end user, client or customer during the development of each increment, ensures the need is met. The full Software Development Lifecycle is followed in the development of each increment, which is concluded with a release of working software into production. Change is the only constant in today’s world, so the project planning is done one increment and release at a time starting with high-level functionality. More incremental releases are completed adding more detailed to the functionality until the full project scope has been completed or until the business is satisfied that the need has been addressed.

Agile project management is not meant to replace formal project management methodologies, but to compliment it.

Agile Software Development’s Prime Goal: High value, high quality software, delivered quickly and frequently!

Agile Manifesto

Agile is all about – expecting change through rapid feedback and interaction though-out the project; the ability to adapt and anticipate change events, delivering scalable components that address the stakeholder’s needs; parallel cycles of work delivery with good communication and progress feedback; keeping it simple assuming the lowest cost and simplest solution is the best; demonstrating the progress after each cycle and evaluate improvements to feedback into the next cycle.

Agile Framework

Being agile is all about being flexible and adaptable to continuous change. Agile project management can help to manage change consistently and effectively. It is all about thinking lean and making optimum use of resources as well as looking after the team though continuous interaction, coaching and mentoring to increase the performance.

Inception – Setting the project up for success

During inception all members of the team collaborate and define the outcomes of the project and what success looks like. The team grasps an understanding of the business requirements, meet the stakeholders, and compile a prioritized list of the functionality required broken down as “user stories” – later more on user stories. The high level solution design and underlining technical architecture are compiled followed by an estimating exercise defining the high-level effort required to deliver the project scope.

Iteration 0 – Preparation that enables the team to be productive from Iteration 1

In this iteration preparations of the team’s workspace, tools and infrastructure are completed.

Execution – The execution consists of a series releases that each consists of a series of time-boxed iterations – also called sprints – where the software increments are planned, built (coded and tested), deployed and demonstrated to the stakeholders.

image003

Closing – Was the business need met by this project delivery? Ensure everyone understands how the new changes introduced by the project will work in operations with appropriate handovers from the project team to the operational teams. The team does a retrospective to discuss the ‘Lessons Learned’ – What has worked well? What caused difficulties? What value and benefits were added? How accurate was the estimates? What should be done differently next time? These answers are an important feedback loop to continuous improvement.

Cycling through the iterations, the focus is on continuous improvement of the functionality, productivity and efficiency to optimize the use of funds and reduce waste. Through this constant cycle of adapting and learning, excellence becomes an reality.

Agile Methodologies: The next post give an executive overview of four of the most commonly used Agile Methodologies.

Let’s Talk – Are you looking to achieve your goals faster? Create better business value? Build strategies to improve growth? We can help – make contact!