Resolve Conflicting Priorities in Mobile Development
Many issues will come up during a development journey. How can we resolve those issues in the most beneficial way possible, and how can we make sure our project is successful?
Agile and Scrum
Agile suggests a set of guiding principles that uses an iterative approach for software development, while scrum is a specific set of rules to be followed.
Scrum Teams are cross-functional, and organizing teams around a project that involves multiple departments (for example most mobile development projects would involve front end, backend and design departments).
Different departments have different sets of priorities, and these risk becoming bottlenecks within any given project.
A cross-functional team is organised around a product (or even a feature, service) and should include all of the competencies required to accomplish this work without depending on resources outside of that team.
Conflicting priorities should only occur when individuals are assigned to multiple projects at the same time. Cross-functional teams should eliminate conflicting priorities since everyone on the team has an identical property which it the success of the project and delivery of working software.
Individual members of the cross-functional team should have a loyalty to the project rather than to an individual department to which they belong, or a functional manager.
In order to provide a great product, cross-functional teams are able to focus on the customer experience. Organising teams around the customer experience in the round helps deliver value to the end user.
It is possible to allow cross-functional teams to iterate quickly as the team (should be) freed from constraints around individual members skill sets — the team as a whole has the ability to complete the work with the skills and knowledge that they already have.
The speed of iteration might allow an organisation to move to market quickly, and deliver functionality in a timely fashion.
By side-stepping the limitation of a team lacking individual skill sets, a cross-functional team can rapidly prototype and deliver minimal viable products (MVP), reduce meeting time and solve problems in a (dear we say it) agile fashion.
Conflict can happen when there is too much work to do, or a resource is locked or the approach is under discussion. The idea is that cross-functional teams remove much of this conflict. Within a cross-functional team the reward is working software — and the benefits of delivering this is shared within the team.
Cross-functional teams should be agile in their allocation of resources, that is each team should have the team members that they require while simultaneously being adequately resourced to solve problems that can arise during software development.
The fact that cross-functional team members are working on a product or team means that rapid expansion of skills is possible and allows the development of people within the organisation.
An Agile Ceremony: The Retrospective
When a Sprint is over, there should be time for the team to have some sort of post mortem to discuss not only the last sprint but the next one. This is a good opportunity to create a plan for the next sprint to ensure that it works as well as it might with the goal of delivering working software.
Reading over the Scrum guide is always worthwhile when you think about making software or improving your existing software development process in your organisation.
Even though your team might be the “A” team, and you might make near-perfect software there is still more to do. This is because conflict is a natural part of working with other people, and although it is not necessarily a bad thing conflict does have the potential to cause issues within your team. How you resolve these issues, and how you react to issues and potential conflict can boost the possibility of a positive outcome for your project, team and career.
Now how wouldn’t want a positive outcome?
If you’ve any questions, comments or suggestions please hit me up on Twitter