Decision About Which Agile Method To Use - A Perspective
By Raju Dhole
Introduction:Agile methods have gained widespread acceptance in software development organizations for formulation and development of solutions for enhancing existing products or creating new ones. The method has been very effective in the continuous delivery of new and effective solutions.Organizations trying to introduce Agile methodologies, in the beginning, are faced with a choice of which type of Agile methodology is best suited for their environment and types of project work. You may learn more about the challenges encountered by the first-time Agile organizations here.The Agile Manifesto favors the delivery of working software in comparison to comprehensive documentation. There is a constant emphasis on a relation between organization and developers rooted in-Trust,Integrity, andTransparency.It may not be a huge shift, but is still a powerful challenge for many companies. The team should be trained well, should be aware of Agile concepts and should have the required tools needed to perform. A team of experienced and skilled developers is more efficient to take decisions when compared to a less experienced team and understands customer commitment much better. Agile delivery values direct interaction and business user collaboration instead of uneven communication in the life cycle at fixed points. Effective involvement of the business reduces the delivered features risk that do not meet customer requirements.How to decide the best Agile methodology that is suitable for an organization?Despite the fact that every Agile methodology offers incremental and iterative delivery of software, the differences lie in the way artifacts produced and each methodology is executed.Let us discuss in detail the most popular Agile Methodologies:Scrum: Scrum is focused on self-organizing teams. Its core principles are aligned with client-driven adaptive planning. Scrum method’s main priority is the delivery of working software in no more than 30 days. Delivered software needs to be in releasable shape.Minimum documentation is supported. Scrum is most used in the Agile framework. Its widespread usage and benefits have made it the most popular Agile method.Extreme Programming(XP): It keeps things simple and concentrates on the continuous implementation of best practices such as-Ongoing testingRefactoringCode reviews (pair programming)Continuous integration.In this method, there is a focus on the developer’s capability and getting into the development of the working prototype as fast as possible.Feature Driven Development (FDD): Breaks down the delivery of a larger product into small features. Typically, FDD is characterised by-Short iteration cyclesSimple processesSuitability for predictable evolutionThe method needs experienced resources to define the required features in great details to make them implementable.Kanban: It is based on Toyota’s just-in-time (JIT) production system. The salient features are as follows-Focuses on eliminating bottlenecksIncredibly simple and powerful Kanban boardsKanban uses Flow and visual methods to bring elements of agile in the overall development process.Makes elaborate use of visual tools.Typical usage involves a space in the office area with printed boards showing status of the activities as shown in the diagram below.Lean Development: Lean Development concentrates on offering value for money. It recommends amplifying learning, avoiding unnecessary errors, delivering as early as possible and deciding as late as possible. The first and foremost principle of lean project management is diminishing waste in an established process. It is more frequently applied to production and manufacturing than in product development. Lean mainly focuses on key process improvement points, such as standardizing means of production and reducing bottlenecks. Although Lean has a different application than the Agile methodology, there are certain common elements such as-Valuing a strong facilitator andPipeliningDSDM: It is developed from a business perspective and lays a strong emphasis on project management. The plans produce based on increments.Sometimes, a combination of multiple methods is the best solution. For example, a combination of Scrum and Kanban is a preferred combination for projects that need the iterative approach of Scrum and the visual elements of Kanban. Similarly, pair programming aspects of Extreme programming (XP) are borrowed for Scrum development teams. It is also advisable that, Agile is not a suitable methodology for some projects. This also should be kept in mind while evaluating an appropriate Agile methodology.In Summary:Agile method to be used for an organization depends on the objectives and desired outcomes. The methods can be implemented either in an existing program or for a new one. Current state and resources available will be of prime importance in deciding the approach and the timeline of implementation. It has been proven time and again that Agile methodologies help an organization to improve the speed of product delivery and quality. They also help establish clear communication channels within the organization and with critical customers and have an approach and method to incorporate customer feedback quickly in the product roadmap.
based on 0 customer reviews
Use of Agile Methodologies In Electro-Mechanical Industry - A Perspective
By Raju Dhole
Agile methods have gained mainstream acceptance in software development organizations for the development of solutions for enhancing existing products or creating new ones. The method has found widespread acceptance and has been very effective in the continuous delivery of new and effective solutions.
At the first thought, the potential of Agile methodology to be used for product design does not seem like a logical extension of software development approach. The agile approach needs teamwork, collaboration, and adaption. A task is broken into small increments. Iteration planning is preferred over a long-term focused plan. Cross-functional teams work on all parts of a task including planning, analysis, design, build, testing for an iteration.
However, the Agile methodology is a natural choice for product design. It is used for complex projects that have ever-changing needs and requirements, which can’t be fully predicted or estimated before commencing a project.
To make sure that the Agile methodology is fully potential for the mechanical engineering world, following actions are needed:
Product developers have to build in lead times for parts procurement
Communicate with suppliers that are not part of the development cycle
Specific components like electrical parts, moulded parts, circuitry have to be taken into consideration while deciding the timeline
Constant communication with manufacturing teams have to be maintained to make sure dependencies are met
An overall method can be certainly customized for initial stage design approach.
Usage in Analysis and Design:
Agile methodology is of the perfect use for Computer Aided Design and Drafting, (CADD). During this process, iterations are short. The design is broken into multiple logical parts.
Engineers work in the small teams and in an iterative manner on a specific design, parts of design or assemblies. The cycle would end with analysis and virtual prototyping until the product is ready for release. A larger team might participate in the release. The team would include the members from quality control, marketing and manufacturing to provide continuous feedback. Based on a feedback, the engineering team might need to go through the multiple iterations to refine the design.
Below is the interesting video about the use of the Agile process for automotive development.
Tenets of the Agile Manifesto:
Agile manifesto has the business value represented in the following tenets:
1) Individuals and interactions over the process and tools
In today’s fast-paced world, every company treats employees as independent minds. This would help the company to rely on the individuality of the employees and cooperation among them. Regular communication and collaboration between various departments like a business, engineering, administration, and production can bring up issues quickly and help with faster solutions that have merits and benefit all.
2) Working software over comprehensive documentation
In the process, mechanical engineering work may not be as easy to compartmentalize as the components of a piece of software. However, building and iterating from the start can sometimes achieve a much better product than getting everything on paper first going for the actual product with a production run. Powerpoint slides presentation and simulations can certainly help with understanding of the product. Still physical, in-hand prototype is the best way for finding design problems, sparking new ideas, or convincing a customer to sign off a project.
3) Customer collaboration over contract negotiation
The initial discussions/negotiations with a customer and planning is the right way to start. However, full path of the project or changes that could come along the way cannot be predicted upfront. This makes it more important that company stays adaptable and works closely with its customers. Continuous communication with the customers will reveal problems sooner, help meet the specifications more accurately, and more rapidly adapt to any changing circumstances. Overall, this leads not only a more satisfied customer, but also a more efficient and flexible organization.
4) Responding to change over following a plan
A company that can quickly adapt to new specifications in a project will require employees that can think and react quickly, a wider range of knowledge and expertise, and a modular and reconfigurable environment. The Agile company values rapid response to change and continuous improvement of their product and organization. These qualities are obviously valuable for any project, however, so it is easy to see how that change can be a beneficial for the company.
The concept car:
The concept car is a great example of the use of Agile methodology tenets in a mechanical engineering context. No auto manufacturer would spend tens of millions of dollars, or more, designing a car line, tooling up an entire assembly line, and manufacturing thousands of units, without first gauging the demand. Instead, they work through imaginative sketches and hand-made prototypes, all the while gauging feedback from the engineering team that would design it and the people who would drive it, at corporate meetings and at car shows.
The concept car most likely never goes to retail, but it lets the company predict the path they should follow, and save time and money designing next year’s production models. The concept car is an example of what is called as “Minimum Viable Product”. The company wants the car to be successful, so it can gauge the reaction of the consumers and industry experts that either love it or hate it.
Use of the latest technologies:
With the ever-increasing functionality of CAD suites and the growing prevalence of a cloud-based file-sharing software, a mechanical engineering firm can easily involve their client in the product development process. An engineering firm recently retrofitted a client’s 120-foot counter-flow heat exchanger, and sent design files back and forth half a dozen times, iterating with the direct input of the field service engineers from client’s team. Even if one’s client doesn’t have CAD capability, tools such as Adobe 3D files and screen-sharing programs can allow for the same collaboration and cooperation. This continuous collaboration and constant communication resulted in a product design as per the need and eventual success of overall project.
Entire engineering process can be viewed as a company’s product. This makes it valuable to look at “early and continuous delivery of products” in a mechanical engineering context. Current technologies make this collaboration even more achievable. Development using agile methodologies can work for mechanical engineering organizations, but with customization and refinement.
based on 2 customer reviews
Water-Scrum-Fall: Is it a Myth or Reality?
By Raju Dhole
Usage of Agile Methods for software Development has caught on like wildfire. Every organization wants to follow Agile methods for software development projects to gain all or some of the following advantages.
Faster Software Delivery
Continuous Customer Feedback and Optimization
Improved Software Quality
Improved Communication with Users and Business Sponsors
Accommodation for Continuous Changes
Early Return on Investment
Continuous Visibility on Features Being Developed
Though usage of Agile Methodology has caught on, software development organizations have implemented Agile methods as per their own convenience and suitability by tweaking existing waterfall processes. Hence the term Water-Scrum-Fall. Through this article, I will take a look at how Agile methodology is adopted in software development organizations and what modifications are made to the pure Agile processes to suit the adopting organizations to get optimum benefit. I will explore the topic through existing literature and my own experience of working in the IT industry.
Software development organizations adopt Agile methodologies based on various factors. Some of the factors are listed below.
Benefit from the method and maintain leadership position
Pressure from competition
Risk of losing out on the latest methods and trends
Internal cost pressures, Agile methods might be a win-win solution
Some organizations embark on the journey to adopt Agile methods by following the classical and complete method of adoption. The stages of adoption followed by these organizations are shown in Figure 1.
Figure 1 – Stages of Agile Methodology Adoption
As can be seen from Figure 1, the standard process of adoption starts at pre-adoption phase with inception and goes all the way thru Execute-Deliver, gaining Insights along the way by learning about measures, data and feelings. Organizations learn through the process during initial iterations for pilot projects. The learnings are applied to future iterations of the process and process matures. Organizations continuously perform analysis of return on investment and perceived gains from Agile method adoption. This helps them to make any changes to adoption method to optimize the gains.
Agile transformation methods and experience gained through Agile methodology adoption is very well depicted through the following Youtube Videos-
So far, the discussion in this article focussed on the traditional way of Agile methodology adoption. Does every software development organization use the standard Agile methodology for the full lifecycle of software development? Do organizations invest in required training and infrastructure to implement Agile for the complete software development lifecycle?
A look at the industry trends reveals that some organizations use an approach with a combination of waterfall and Agile methodologies. These organizations take baby steps in Agile methodologies adoption. The Agile methodology is tweaked as per the need of the adopting software development organization. Figure 2 shows the model of pure waterfall process adopted by a software development organization.
Figure 2 – Steps of pure Waterfall Model
Steps indicated in Figure 2 are executed in sequence to execute a software development project and achieve the desired business objective. As per the adaptation practised by a software development organization, certain steps of the waterfall cycle are implemented using the Agile method. The adaptation is solely dependent on the organization and how it sees the process change fit for the project under execution.
Figure 3 shows the adaptation of standard Agile methodology as modified for an organization in the financial industry for a development project for a Large Retail Bank. The adoption was necessitated by this particular project where design and build activities were to be iterated based on changing requirements. The approach allowed necessary flexibility to implement varied design approaches and pass them quickly to build phase to avoid large-scale changes once the complete design was done. Some part of testing activities were also iterated, however, most of the testing followed waterfall methodology as unit testing was covered along with build activity. Unit testing done in an iterative manner helped generate stable delivery of code from build phase to the testing phase thereby allowing the project to maintain waterfall approach for testing and resulted in a very few testing defects.
Figure 3 – Water-Scrum-Fall used for project in Large Bank
Another aspect of Agile is how it is perceived by persons performing various roles. Developers and Testers have most work during the middle phase of the project. Independent studies have proven that developers and testers are very quick to adopt new practices. Developers and Testers are also very keen to adopt Agile practices. Primary reason could be that Agile practices provide them with more opportunities to collaborate. This could be one of the primary reasons for the success of Water-Scrum-Fall.
Analyst Watch: Water-Scrum-fall is the reality of agile https://t.co/tvdHhmVmus @darth_dread @simpod @8erbacherozzo
— Angry Guider (@AndyRuggeri) November 17, 2017
In my work experience in Information Technology industry, I have also come across examples of the approach outlined above as Water-Scrum-Fall being used. It allows the flexibility of Agile with the right tweaks needed to make it effective for a particular software development organization and a specific project. I have seen this approach being extensively used in regulatory and legal compliance projects for software development for Banking and Telecom industry clients. These projects usually have Designed, Build and Test activities done with an Agile approach. Some projects even include Releases in the Agile approach and adopt phase-wise releases. This approach proves to be more beneficial as the final product is also developed iteratively and has more flexibility to adapt to changes in the life of the project.
I have covered all elements of standard Agile adoption process and steps followed by software development organizations to adopt Agile methodologies. Some organizations tweak Agile processes to adopt them for some part of software development life cycle, thereby giving rise to the term Water-Scrum-Fall. Organizations have found their own way of adopting Agile methodologies by the way of Water-Scrum-Fall. Experts, however, warn that Water-Scrum-Fall is fine as a starting point but it should not be the end goal of the Agile journey of an organization. The full potential of Agile can be realized with complete Agile adoption by truly embracing Agile manifesto (http://agilemanifesto.org/) and its guiding principles. However, Water-Scrum-Fall is a reality and is here to stay as organizations have found benefits from adopting the methodology.
based on 4 customer reviews
How To Define Agile Benefits For Business Sponsors?
By Raju Dhole
“Agile” has been a buzzword in organizations of late. Use of Agile methodologies results in continuous engagement of end users in the development process. Organization development processes are tailored to make them focused on accommodating change. Agile processes work well for both development teams and business sponsors. To make Agile appealing to organizations, possible benefits have to be articulated well. This would act as an incentive for business sponsors to consider Agile. This is of immense help especially at the beginning when organizations are in a dilemma about the use of Agile methodologies. Buy in from business sponsors is critical as it results in continuous involvement of stakeholders and also helps to get the right product owners involved during the development process.
Approach to define Agile benefits for software development project:
The benefits from Agile could be seen on multiple parameters of a software development project.
To understand which parameter would appeal to a business sponsor, pre-work is needed to assess current performance of software development process. The performance should be understood in terms of Speed of delivery of scope, schedule adherence, cycle time, cost, quality of product and number of post-production issues. In addition to understanding current performance, some thought should also be given to the return on investment for a particular parameter. For example, an organization might be struggling with the issue of late delivery of products and cycle time could be a priority to bring in optimum return on investment.
In an adaptive or agile life cycle, the sponsor & customer reps should be continuously engaged with the project to provide feedback on deliverables as they are created and to ensure that the product backlog reflects their current needs.
— Joelle A Godfrey (@jgodfrey) 29 December 2017
Above tweet from Joelle stresses the fact that sponsor should be continuously engaged with project and provide feedback on deliverables.
Table 1 represents the probable ask from business sponsor and the parameter to be picked up for improvement.
Table 1 – Relationship between business sponsor ask and improvement parameter
Based on feedback from business sponsor, a specific parameter could be the focus of improvement for Agile method implementation.
Figure 1 shows the role of a Project Office and its contribution as a bridge between Development team and Business community.
Figure 1 – Project Office (PO) as a bridge
I have taken a case study of an organization with issue of quality for delivered Information Technology (IT) system with a high number of issues after production rollout. This impacted the ability of users of the system to carry out their day-to-day business functions. Figure 1 indicates the number of issues for that system post implementation in production. The data is shown as week over week number after implementation of the newly developed system in production.
Figure 2 – Post-implementation issues after production rollout
As can be seen from figure 2, the number of issues post implementation were high. It took almost 10 weeks to get the number of issues under control. A high number of issues also resulted in IT teams continuously working on fixing issues. Business users were unable to use the system effectively because of constant flow of issues for multiple weeks.
For the newly developed system continuous post-production issues also resulted in lack of interest on part of the users to promote the usage. This did not help change management and migration to the new system. Users tended to get disillusioned by the new system and did not want to invest time in learning its functioning and features.
In summary, high volume of post-implementation issues resulted in failure of newly built system to gain traction with business users.
For this case study, a deep dive was performed to understand the issues related to post-implementation defects. Following were identified as root causes:
Lack of understanding of business analysts for actual user needs
Lack of participation of business users in reviews for requirement sign off
Lack of participation of business users in initial testing of new features
Lack of usability testing of newly developed features
Lack of phase-wise development for features, development of all features completed and then only business users were involved for testing
Compressed timeline for testing resulting in less focus on performance and operability testing
Armed with the above analysis, a discussion was scheduled with the business sponsor. Questions were asked about the priority for the organization. This would enable to focus on the right return on investment parameter for use of Agile practice. In the long run, the usage of Agile methodologies would have positive influence on multiple parameters. However, to begin with, specific parameters should be focused to get benefits with respect to most pressing issue.
Business sponsor mentioned that he would like to focus on quality of product to reduce post-implementation issues and improve ease of use of new features, to begin with. The focus should be on these parameters.
An analysis of post-production defects was done. The analysis pointed to a high number of defects for some specific features involving multiple paths to accomplish same business functionality. This needed discussions with business users to make sure they are aware of how the business functions are to be used and how a standard training package could be developed for a larger community of business users.
With respect to usability of the product, special attention needed to be given to a set of test cases pertaining to usability. Assessment of usability of the product had to be carried out as a part of usability testing. Feedback from business users had to be incorporated during development and testing.
In the case organization, Agile scrum was chosen as Agile methodologies to be used for implementation of upcoming product. The team was trained in the usage of Scrum methodology. Appropriate roles were assigned to the identified team members. The team took time to get started as it was a new process. Specific areas identified during the discussion with business sponsor were kept as priority areas of improvement and Agile sprint plans were made in line with specific outcomes in mind. Each sprint took up development of a business feature. Business users could get an early preview of what is coming up in the new product. They provided feedback about specific changes and usability of the product. These feedbacks and suggestions were incorporated in upcoming sprints. Constant communication and interaction with business users helped to create an environment of teamwork and trust. Business users also helped to create a training plan for the product for rolling out to larger organization and community of business users. After complete development and thorough testing the product was released to production. There were very few issues in post-production. The comparison of post-production issues is shown below.
Figure 3 – Comparison of post-production issues before and after Agile implementation
As seen from Fig. 3, there were very few issues after Agile was implemented. The feedback from business users for usability was incorporated while testing was in progress. Business users also contributed to the training plan for a wider organization rollout. All this was possible because discussions with business sponsor helped to identify critical pain points, allowed mitigation actions and stated possible benefits from Agile implementation.
This case study showed that gathering feedback from business sponsor helps to identify priority areas of improvement when Agile is being implemented for the first time. Based on feedback from business sponsor, appropriate benefits could be identified and expected outcomes defined, keeping in mind the critical pain areas.
Early discussion with business sponsor contributed to the understanding of critical pain points
Mitigation actions and focus areas were identified
Possible benefits after Agile implantation were stated
Agile implementation was successful with perceived benefits being realized
based on 20 customer reviews