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

 

Emergent Leadership

Agile organizations are highly creative, collaborative, and adaptive. In fact, you can make an agile organization equivalent to a living organism, which is operating on various principles. They would usually flatten the overall hierarchical structure, which would make the organizational chart unimportant. They will be based upon self-organization, autonomy, and empowerment. Hence, hierarchical leadership would not be the best fitting leadership style for an agile organization. It is important for an agile organization to follow Emergent Leadership style. Then it is possible to have the right leadership in all different instances, whenever it is required.

When it comes to an agile organization, each and every person would be a leader. In other words, everyone will be able to take a step and go for an initiative. In cast if that initiative is grabbing the interest of others, it is possible for establish a team, and go ahead with supporting it. This would deliver radical transparency to an agile team. On the other hand, it would be possible to take care of feedback, while correcting the ideas that don’t support the overall purpose that a team is trying to achieve.

Emergent Leadership is the best leadership style that is available for an agile development environment as of now. That’s because an agile environment would have a highly collaborative culture, which is based with a high level of safety, transparency, and trust. On top of that, it would also have an excellent evolutionary purpose as well. This would create alignment within the different parts of the organization, which would help it to head in the same direction along with a clear purpose. On top of that, it is possible to stick to this leadership style and achieve a higher level of collaboration, which would eliminate chaos.

— 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

 

Agile Fluency Model

When an agile team is adopting agile practices, the overall team culture would shift. This is where the team would start focusing more on the customer, business, and user benefits at the time of product development planning. In other words, this is where the team would focus on fluency.

Agile Fluency Model is all about exhibiting the proficiency of supporting the business to get its requirements catered through the agile development approach. In other words, a team that works under the Agile Fluency Model will have a clear understanding about the market needs and will work accordingly to cater to the market needs. Along with time, it would be possible for a team to ensure maximum fluency as well.

Achieving fluency under Agile Fluency Model is never an easy thing to do. For example, the team members will need to practice their skills under pressure. They will have to keep on performing under pressure as well. On top of that, it is important for them to deliberate and work along with consistent practice as well.

It is also important to understand that organizational fluency is related to the team fluency. Therefore, it is important to focus on the team efforts, which will eventually ensure the success of an entire organization. In the meantime, you should figure out that the fluency of a team would vary based on the capabilities of the individuals who are performing as team members. It would also vary depending on the organizational culture, relationships, management structure, and the technologies and tools that the teams are using. No matter what, it is worthy to have a clear understanding about Agile Fluency Model and implement that in the practical world, so that it is possible to experience all benefits that come along with it.

— Slimane Zouggari

Cucumber

Cucumber is a popular testing tool, which is supporting Behavior Driven Developments. Testers who are working in an agile environment will be able to use Cucumber and proceed with writing tests, which any person can easily understand. Even a person who doesn’t come from a technical background will be able to understand the test cases that are written with Cucumber.

The users of Cucumber would usually be product owners and business analysts. In an agile environment, they will have to work closely along with the testers. If those stakeholders can understand test cases, it would be possible for them to support the testers with their testing. On the other hand, it would be possible to streamline the acceptance testing as well. That’s because the customers will be in a position to understand test cases and work on acceptance testing. The product owners will be able to review and sign off test cases as well. This can be done even before the developers start writing their codes. The Cucumber framework is using Ruby as the programming language.

It is possible to use Cucumber for test automation as well. Even if testing complex scenarios, Cucumber will help to break down into simple components and proceed with testing. On the other hand, it is possible to take numerous additional features into consideration and proceed with testing. This would eventually contribute towards enhancing overall quality of the testing work completed by the testers.

The standard practice in an agile environment is where the developers would develop their features and proceed with writing the test code at a later stage. However, this process will ensure that the test cases are written upfront. This would help the agile team to find solutions to numerous complex situations, and increase the overall effectiveness of testing.

— Slimane Zouggari

Presentation Karaoke

Presentation karaoke is the situation where a presenter is provided the task of delivering a presentation based on a set of slides that he has not seen before. This would help a presentation to quickly adopt and deliver a presentation based on a set of random slides that he is seeing for the very first time. There are numerous applications associated with Presentation Karaoke. For example, it is used as an exercise by the conference speakers, so that they will be able to master the presentation. It is even possible to use this principle within an agile environment, which is highly dynamic.

During Presentation Karaoke, each and every speaker would speak according to the theme of the presentation. It is possible for them to have fun while going through the presentation as well. These speakers are behaving similar to the high performing agile teams. That’s because they will have to roll along with the punches.

The high performance agile teams ensure that there is ap roper plan, theme, and a backlog in place. They will have to adhere to that and work on their agile developments. However, the requirements on the backlog can sometimes change. This is where the developers would come across the need to adopt then and there. It is never a good idea to be panic when the requirement change. Instead, it is important to understand how to get things to work. That’s because it is practically not possible to go ahead with the flow when you are in a panic.

During Presentation Karaoke, some speakers will make connections in between the slides. Likewise, the developers in an agile environment will also be able to make connections in between the backlog items. No matter what, it would help the developers to quickly adopt and deliver the backlog items at the end of the day.

— Slimane Zouggari

 

DX

DX, which is also known as Developer eXperience would refer to the overall experience that developers can get when they work with their developments. In an agile development environment, developers would be using various software designed for them. For example, they will be using an appropriate software to work on a complex piece of code. When the software is too complicated, developers will not be able to get the maximum out of it. This would ruin the experience of developers. That’s the main reason on why a concept such as DX was introduced.

Developers who are provided with a better developer experience will be able to remain happy and proceed with their developments. On the other hand, it can promote a positive work culture. It is even possible to get the developers to work longer with satisfaction when they are offered with a better developer experience. Hence, it is important to ensure DX at all times within an agile development environment.

People who work along with technology would get used to obtaining recommendations for the delivery of new solutions from friends, colleagues, and the peers. On the other hand, it would be possible for them to get the products to the top of the list with good DX.

There are some important pillars that are backing up excellent DX. They include stability, ease of use, and clarity. Based on these pillars, developer experience would provide a role to the developers, which will help them to offer an activity. A good interface, miracle promises, marketing, and other related things will not be able to hide improper or bad functionality. If the software is not working and it is not delivering any value, it will fail to deliver DX. While keeping these facts in mind, it is essential to ensure DX at all times.

— Slimane Zouggari

#noestimates

When it comes to a software development project, we often kick off with the estimates. In fact, we estimate the amount of money, time, and the effort that is needed to reach the goals of the project. We also evaluate the estimate with the outcomes of the project, which is helping us to get a better understanding about the return of investment. Along with that, the team leaders and developers will be able to deliver maximum value to the customer budgets, while catering to their project goals.

At the time of developing a product in an agile environment, it is important to be highly dynamic. In other words, it is important to adapt according to the change fast. On the other hand, it is possible for the requirements to change quickly along with time. When there is a change in requirement, the initial estimations would be subjected to change. This is why it is a good idea to follow the #noestimates approach.

When following the #noestimates approach, it is possible to accelerate the development lifecycle. On the other hand, it is forcing the development teams to go ahead and slice their user stories into further small stories. This would deliver numerous benefits with iteration planning as well. That’s because the project managers would only need to understand the velocity and then figure out how many stories would fit in. By doing that, it is possible to reduce the amount of time that is spent on estimating.

All in all, #noestimates can be considered as a legitimate alternative that is available for the concept of story points estimation. However, it is important to remain mindful when extending this approach to the project level. By playing carefully with #noestimates concept, it is possible to get the maximum out of agile developments.

— Slimane Zouggari