As large companies are adapting to Agile, the mix of Agile with traditional corporate culture creates a bad mixture resulting in a lot of problems. What are the best solutions for this kind of case? Here I would like to discuss two of the best solutions I came up with.
The first one is to transform the entire way companies conduct development to fit the Agile philosophy where their whole organizational and development structure is focused on Agile and not on top-down hierarchies where the development team of all its size does not know how much the developers contribute to the company’s business, what they contribute, what’s the difference between an agile development culture and other styles, what are the ways an agile company supports its users, the business processes they provide them, etc. (The last three reasons are especially important in Agile companies because they usually are facing their biggest customers who, although they can’t understand how can it be better, want it to be, but won’t make it).
The second solution that I suggested consists in creating a framework of agile development practices for every company, that will be used as a guide defining what practices to bring into their development process and the way they should be conducted. I will call it “Agile Development Methodology”. It’s a collection, that will contain a checklist-like of about 70 agile methodologies and agile principles, and about 80-100 practices that should be conducted within the organization.
This organization will act as a base for all the projects that will follow and will contain all the practices needed in an agile development methodology. This way, instead of being a random collection of practices that the development team wants to have applied so it can deliver the requirements, Agile Development Methodology will be what the company’s users, the business leaders, etc. know and follow so that they are confident of what development is actually going on or rather, that the results of their development are trustworthy and credible.
The question is: What do you need a framework for? Let’s see what Agile Development Methodology will contain.
What practices has the Agile Methodology for every company to contain?
- Deciding when to evolve
This is the first practice – a practice of the Agile Methodology, although I can imagine it’s not really practiced in the organizations that follow this practice. In Agile companies it’s hard to make decisions on what’s going to be improved and added because it’s a change in the company’s strategy and a change in the context of user, user group, customer expectations etc. The idea is to avoid that too much risk is put on future users. A few examples:
What if instead of doing what you always did users will decide in favour of a new approach?
We should allow changes and improvements in the product that would benefit future users, not at the expense of other users or in the absence of such positive feedback.
We need to accept the evolution of the product in the context of the market, not only in the context of a customer or a user.
What new features will users actually want to buy in a company that, having been around for more than a year (or three), decided to change its services or add some other new features, but in such a way as to not create a negative or disruptive experience first time they log in, or only after some time?
- Establishing a communication channel
This is a communication channel of the Agile Methodology, although you can do it by email, by Skype, by phone etc. A communication channel could be the one that users use the most.
- Setting priorities and priorities
You should know who the winners are and who the losers are as a means to have a better prioritization within the team, as a way to know what have to be done and what do not have to be done.
- Establishing user stories
This is the practice of every Agile Methodology. What will happen after you have described the main user story? What are the user stories that must happen in order to get done? If you don’t know what will happen after describing the users stories, it doesn’t mean that you’ll not get the features, it just means that you’ll not have all the features, which is not a problem. What you need to do is to make the product evolve by adding the necessary features which is the main task during Agile development.
- Identifying the development team
This is also a practice of every Agilism. It is an important step to get a better team of Agile development methodologies. It is also important to avoid that people who will do one thing but who will implement another, will try to be first to implement the new solution, and not think the other one will be the best solution, as it’s often the case.
What happens if someone thinks that the implementation of a new solution will be more time-consuming than creating one the first place, which is not the case? Why is that? Is it because the development of the solution that will be implemented in the first place has already been done? Well, no actually. The person might be wrong but in that case he or she is the second to implement the most time-consuming solution. That is totally the opposite of how companies should build Agile-methodologies. They should build them in such a way they will allow them to implement them, they will do the best they can during every sprint.
- Creating the user stories
This is a practice of every Agile Methodology. It is important to get a team that will deliver all the feature the user stories. It is important to create the User Stories in such a way that the development is done in such a way that the product is able to be used properly and that the user has a good experience. Users should not see a lot of useless tasks but rather get a good user experience that is worth buying. It means that they should be able to complete a task in a way that ensures, he is able to get a complete, complete and clear understanding of the subject.
- Developing the product
The first one to achieve this. There is always some delay in the development of the product and the first thing to do is to make the right decision. Don’t make the product and the team look bad in the eyes of the users. If a user sees a lot of bugs and has many requests in the backlog, he will find it to be unprofessional and he might move to another company. Make it look professional by improving the UX and the user experience, and the users will choose you more. In fact, I think that it has not been enough to just provide bug-free and feature-complete solutions to the users. You need to be sure that users feel comfortable. You need to offer them the freedom and ability to create a new solution, a different way of presenting the same product, the same way of doing something, the same value that it’s providing to the users.