Nowadays, with Agile being sold as a product with many different versions of Agile or important Software Engineering people talking about leaving Agile, I thought that you need to look at an interesting point within organizations, which if your company doesn't is willing to Changing the way you act and behave in the face of a project's adversity is no use trying to implement any Agile model.. In other words, make sure your company culture has no problems before you think of Agile.
The importance of Organization Culture
The Company Culture, is one of the most important points for a good functioning of the organization, after all, are the practices, behaviors, principles and mindsets that make up this culture, which will give the guidelines on how the company should follow to obtain the desired results.
But a few months ago, reading a Jeremy Andrus HBR article about his challenge to remove an entire toxic Traeger culture, and starting one from scratch by becoming CIO, made me think that by trying to use modern development models, To improve our software development results, we don't realize that the real problem may simply be the company's culture.
It's no use trying to bring Scrum to the company if the culture within your company behaves like a Manufacturing, with stiffened products, no direct customer tracking, and no planning on how to evolve your product, iteration by iteration. It's no use trying to use the benefits of XP, if your business doesn't bother to make the lives of its employees simpler while delivering acceptable results to its customers it conceives the idea of iterations.
Sometimes development models considered abominable today, such as the Cascade Model, will be the least conflicting within your company, and if that's your case, then it's definitely not the Agile that will save you.
What changes can we then make?
Running a business is not easy, especially if we have a problematic culture within it, organizational cultures, as well as cultures of a country, are almost unchanged unless good ideas, time and resources are really invested for such a challenge. But at least I can propose some actions that may be beneficial in this process:
1 - We need to abandon the traditional manufacturing model
Many companies still follow a pattern of behavior inherited from the big factories of the industrial revolution, but this model is terrible when we try to apply it to software development. Software is not like cars where if something goes wrong, you have to stop the entire factory, recall the products, and review the project from the start.
A good analogy I've heard is treating software like cooking in a restaurant. Your challenge is to deliver a plate (software), even with minor errors, or some delay, is better than delivering no plate, or returning it to the kitchen if the customer does not like it. And as you see how the customer reacts and opines about this dish, deliver a more robust dish.
2 - Your Culture needs to understand that agile methods are designed to make the programmer's work less complicated and stressful.
Applying Scrum consequently brings a better result to the customer, but it is not a direct benefit to him. As in the restaurant analogy, Agile would be like cooking and improving the process doesn't change the customer's perception of your product, so the programmer gets the benefit.
But that's great, changing a culture that understands and behaves to help the developer's work is a great way to not cause demotivation or stress, things that are not lacking in the market today.
3 - Your client needs to be actively with your team.
This is a principle widely used by Scrum. Being around to help get the development team on track helps reduce the stumbling blocks that can occur midway.
Modern applications like Netflix, Ebay or PokemonGo. They are nothing more than ideas that have been transposed into an application to generate value for your customers, be it money or entertainment. It does not have to be perfect on first delivery, with all of its functions being delivered at once.
These changes go directly to the principles that the agile manifesto proposed, simplicity, evolution, and engagement. If these things are within your company culture then you can be more relaxed, you're on the right track.
*This article is in Portugesese in "Esquece AGILE, se você antes não se preocupar com Cultura." on http://encaixandoblocos.com