Selenium

It is important to ensure quality with the deliveries in an agile development environment. Without ensuring quality, it is not possible to deliver a satisfactory experience to the clients. This is why it is essential to focus on quality assurance.

The testers who work in an agile development environment would have access to a large number of tools, which they can use in order to proceed with testing. One of the most prominent tools out of them would be Selenium. The main objective of Selenium would be to automate testing. Hence, it is possible to use Selenium and validate web applications across different platforms and browsers in an automated mode.

It is possible to use different programming languages such as Python, C#, and Java, to go ahead and create test scripts on Selenium. Then you can use the Selenium testing tool to proceed with testing. You should also understand that Selenium is not just a single tool. Instead, you can call Selenium as a suite of software, where each piece would cater to the different testing requirements that a tester would have. Along with the Selenium suite, a tester can get the Selenium IDE, Web Driver, Selenium Remote Control, and Selenium Grid.

The main use of Selenium is to receive assistance with developing web applications. However, the functionality of Selenium is powerful, and it would not just limit the testers to testing web applications. It is possible for all the testers who use Selenium to go ahead and develop robust regression automation suites. This would help the testers to proceed with regression testing effectively, without spending a considerable amount of time. This would eventually support the agile developments, through the delivery of functional releases without bugs. Moreover, it can support quick releases of the developments to production as well.

— Slimane Zouggari

Coaching dojo

If you want to improve your agile coaching capabilities, you should be equipped with three important skills. They include questioning, listening, and observing. Any person who wants to improve those skills can take a look at coaching dojo.

The main objective of coaching dojo is to provide opportunities, so that you can practice listening without being impacted by any judgements. On top of that, it will help you to collect information effectively and ask various questions, so that you can figure out the real problem. If you can master these skills, you can become a competent agile coach. As a result, you will be able to use your skills to benefit the organization that you work for.

During a coaching dojo session, few people sit together in a circle and start discussing the challenges that they have to face because of work. They will limit these discussions to a time period of 10 to 15 minutes. During this discussion, each participant will need to pick one out of three roles as mentioned below:

  • Client – Client will be the person who is looking for a solution or an alternative approach
  • Coach – Coach will be the person who offers guidance and help to the clients with achieving their goals
  • Observer – Observers would be the people who observe interactions in between the client and coach

When the roles are distributed, the client would state the problem. The coach would provide coaching and the conversation would proceed. At the end of the time period, the observer will be provided with a couple of minutes to provide details of his observation on the interaction that took place in between the client and coach. At the end of the coaching session, all the participants would share information about the insights they gained and things they learned.

— Slimane Zouggari

Dot Counting

Dot Counting is one of the most prominent estimation techniques that you can find in the agile development landscape. You must have come across situations where you voted for something based on dots. You can use the same concept when estimating user stories as well. That’s where Dot Counting would come into play.

You can call Dot Counting as a simple approach available for user story estimation. It is also a highly effective approach available for following. That’s because you will be able to use dots and express how much effort you will have to put on something. Based on Dot Counting, you can go ahead and set up the suer stories visually. You can do that with one of the digital boards or on a whiteboard. Then you can assign a color to each user story.

Before you go ahead with Dot Counting, you should come up with a scale as well. For example, you can proceed with a simple scale of 1 to 5. Then you can ask all the team members to understand the scale and vote with the dots. This is where you will be asking each and every team member to add the number of dots that are representing a story. The number of dots should reflect the effort that is needed to complete the story. Once all the team members have voted, you will be able to overcome the discrepancies associated with it.

One of the biggest challenges associated with Dot Counting is preventing the cognitive bias associated with anchoring. Hence, you will need to come up with a way to hide the votes during the voting stage. Then you will be able to remove the bias, which will provide better results to you with the estimates.

— Slimane Zouggari

 

Agile Transformation Metrics

When you go ahead with agile transformation, it is important to have a good understanding on how to measure success. Then you can determine how all the efforts that you spend on agile transformation are delivering positive results to you. However, measuring agile transformation can be a challenging thing to do unless you are aware about the Agile Transformation Metrics.

There are some important metrics that can be used to measure the success of agile transformation. People engagement holds a prominent place out of them. If agile transformation is successful, people who work in the workplace would be highly satisfied with their roles. Such people would not think twice before they go the extra mile to contribute towards the job. On the other hand, agile transformation would measure continuous improvement as well. This is the ability that an organization would have in order to pursue optimizations relentlessly across the different business functions.

An agile organization would be highly innovative. Hence, it is possible to take innovation as one of the Agile Transformation Metrics as well. The agile developers will come up with creative thoughts and new ideas, which can help them to deliver better solutions to cater the existing requirements. On top of that, it would result in the delivery of enhanced customer satisfaction as well. The customers will be satisfied with the benefits, experience, and outcomes that they are getting with the service or product.

The overall productivity in an agile environment would increase. This would help a business to go ahead and make better decisions. On top of everything, the agile team will be able to work along with speed. This will help them to cater to the client requirements in a highly efficient manner, without compromising the quality of the developments under any circumstance.

— Slimane Zouggari

Aspect-oriented programming

Aspect oriented programming, which is also known as AOP is a technique, which can be used to develop reusable and common routines, which can be applied across an application. During the agile development process, this would enable the separation of primary application logic from the repetitive and common tasks. Some perfect examples for such repetitive and common tasks include logging, input validation, and error handling.

During a runtime, you will be able to use Aspect Oriented Programming in order to hot-patch the applications, which are susceptible to embed intrusion detection and SQL injection. There is no need to modify underlying code in order to offer these functionalities. Along with the centralization of all security logics, it is possible to save time when developing a product in an agile environment.

There are some significant differences in between object oriented programming and aspect oriented programming. The main objective of object oriented programming is to promote flexibility and reusability of code. In the meantime, aspect oriented programming would act as a paradigm, which will deliver all benefits that are offered with object oriented programming. On top of that, it is possible to have loose coupling, and provide applicable the chance to use pluggable aspects as required. This will help the developers to refrain from making any changes to the code in order to bring in new functionality.

Developers who adhere to aspect oriented programming will also be able to focus entirely on the business logic of the application, while weaving the aspects to the overall business logic. Among the benefits that come along with AOP, the most prominent benefit would be the ability to write the aspects once and reuse them over and over again within the application as needed. Hence, it is a great method available to reduce code complexity.

— Slimane Zouggari

Conversational Story

One of the most prominent misconceptions that we can see within agile environment is assuming that the product owner is creating user stories and placing them in front of all the developers to work on. This would highlight the fact that the product owner is responsible for understanding what has to be done and the product owner communicates with the developers on how it has to be done.

However, this approach is quite different in the real world. The product owner is aware about the business and he has a good understanding about the need for software. On the other hand, the developers are versed with technology and they know how to implement things. Hence, it is possible for the developers to figure out the requirements put in front of them by the product owner.

To overcome all sorts of misconceptions associated with this process, it has become important for the product owners to use Conversational Stories. A Conversational Story will help the developers to get a better understanding on what has to be done to support a business.

There are some unique qualities that you can find within a Conversational Story. For example, it would spot the gaps and inconsistencies that exist in between the stories. On the other hand, it would use technical knowledge to offer new stories, which would fit perfectly well to the vision of the product owner. It is even possible to use Conversational Stories as the base and look out for alternative stories, which can be cheaper to develop based on the existing technological landscape. On the other hand, it is possible to split the stories further, so that it is possible to plan and implement easily. Due to all these reasons, the process of creating Conversational Stories can be considered as something that would help people to invest on the stories.

— Slimane Zouggari

Water-Scrum-Fall

Water-Scrum-Fall is a software development methodology that combines the elements of both Scrum and waterfall development methodologies. Most agile organizations out there in the world are currently following the Water-Scrum-Fall procedure because of the effectiveness associated with it.

Back in the day, waterfall was the most common development methodology. However, organizations understood the shortcoming associated with sticking to a waterfall methodology. For example, they were spending too much of time unnecessarily on the project upfront. On the other hand, they had to face numerous challenges at the time of implementing change as well. However, those organizations were not ready to go fully agile as well. That’s where they started using a combination of waterfall and agile methodologies, which is known as Water-Scrum-Fall.

Water-Scrum-Fall can be considered as a flexible approach available for development of a product. That’s because it is helping the development teams to fully understand the problem that has to be solved, while providing them the opportunity to come up with a practical method to solve it. Organizations that follow Water-Scrum-Fall methodology are adhering to the waterfall method when they are planning, project management, and budgeting. However, the development teams are adhering to agile in their day to day developments. This will eventually benefit the development team to get their work done.

One of the most important aspects that you can find in a Water-Scrum-Fall environment is that the project would still need high-level project planning. However, it would have governance and approval gates, where it is following a traditional approach as per the waterfall method. In the meantime, the development team would adhere to non-agile interactions with the project and front end teams. This would eventually help them to adhere to the Dev-Ops and continuous delivery principles, while ensuring smooth transition in between all deliverables.

— Slimane Zouggari

Offshore teams and scrum

The concept of hiring off-shore teams for software development is gaining more attention along with time. That’s because it is possible to hire experts to get work done, while reducing the overall cost associated with it. However, it is also important to understand how to practice scrum along with the offshore teams, so that it is possible to get maximum efficiency out of remote teams.

When following the agile development methodology with offshore or remote teams, it is possible to have a clear framework, which would ensure iterative development and high team collaboration. Along with that, it would also be possible to focus on efficiency and quality as well.

Implementing scrum with offshore teams might sound like a challenge. This is why it is important to clearly define the overall product vision statement before going forward. Then it is possible to create a clear roadmap of the product. Based on that, you will need to get the product development teams to conduct demonstrations. You can aim to have demonstrations at the end of each agile sprint, where the team members can present what they could develop within the sprint.

In order to implement agile with remote teams, it is important to invest money on appropriate collaboration technologies. There are numerous tools that can benefit the developers with it. JIRA is a perfect example for such a tool. On the other hand, it is possible to use tools such as Slack and Trello, as they have proven to deliver positive results to the people who are working in an agile environment.

You can also have regular agile team meetings as well as sync-up sessions along with the team members. On top of that, it is essential to communicate with the customers while continuing to proceed with the developments.

— Slimane Zouggari

Value Stream Mapping

Value Stream Mapping, which is also known as VSM is an effective lean tool, which you will use to document each and every step of a process in the form of a flowchart. It is a quite popular tool among the lean agile practitioners. That’s because it is possible for them to use value stream mapping in order to figure out waste and reduce the process cycle times. On top of that, VSM can help them to go ahead with implementing process improvements as well.

You should keep in mind that VSM is acting in the form of a workplace efficiency tool. This tool would combine the material processing steps, along with flow of information. On top of that, it would take the important related information into consideration as well. If your agile organization wants to plana project, implement it, and improve throughout the lean journey, you should be using VSM and all the benefits that come along with it. That’s because VSM can deliver all the support that you need to develop a strong implementation plan, where you can maximize the resources that are available to you. Along with that, you will b able to use the time and materials that are available to you in an efficient manner.

Value is referring to what the customers will be able to get as the final service or product. To ensure the delivery of value to customers, it is important to pay special attention to quality inspections. That’s because no customer would be willing to do quality checks after getting the service or product. Hence, you need to adhere to VSM and do quality checks, so that you can ensure the fact that product you offer to the market is meeting quality expectations and quality standards.

— Slimane Zouggari

 

Force field analysis

Force field analysis is the concept where you would be evaluating the pressure that is in favor of change and against the change. When you are working in an agile environment, you will come across the need to conduct force field analysis, so that you can determine the likelihood of implementing change.

People often encounter struggles when they are trying to make tough decisions. This is where they will hash through both pros and cons, while agonizing over going for the right decision. When someone is making challenging or difficult decisions, it is important to use a well-structured and an effective decision-making technique, which can eventually enhance the overall quality of decisions. Along with that, it is even possible to improve the chances of securing success. That’s where force field analysis would come into play.

Force field analysis was introduced during the 1940s by Kurt Lewin. Even though it was used as a tool in social psychology, we are now capable of using this tool in the agile development environments. According to this concept, we evaluate the situations where two forces, where one force is in favor of change and the other force is against the change, are pushing onto each other. If a change is to happen, the driving forces should gain more strength. Or else, the resisting force should weaken.

When implementing force field analysis in the real world, it is possible to describe the proposal or plan for change first. Then it is possible to figure out all the forces for change and forces against the change. By assigning scores for each force, it is possible for you to analyze and determine whether you should go ahead with the change or not. This is quite useful at the time of implementing an agile project.

— Slimane Zouggari