After being a Developer and having worked with some great Developers, I thought it would be worth highlighting some of the characteristics a Developer should have when working in an Agile team.
(In no particular order)
Keep an Open Mind
Keep an open mind for the solution to the Product Backlog Item that you’re working on. What you may have thought was the solution may not be the solution as you find out more about what is required. Remember, you may not know all the acceptance criteria when starting out and requirements do change. Plus as a Developer you have a responsibility to think about other aspects that the Product Owner may not know anything about.
Share Issues & Collaborate
You don’t have to know everything as you are allowed to learn along the way. As a developer working in a team, you have to be prepared to share your knowledge and issues with other team members. A problem shared is a problem halved – There is no point suffering in silence just to give the impression that you are the ‘Top Dog’ and know everything. Which leads me on to…
Nobody is bigger than the team! The whole reason you’re working in a team is to deliver the solution for the Product Backlog item.
A team should be a safe place to fail fast & fail safe. If egos are present in a team then people will not want to lose face with their colleagues, there won’t be trust and respect – ultimately undermining the Scrum Core Values
Development is HARD. Solutions will not always be easy, they will be complex to build but you have to keep trying and you have to keep wanting to improve. The more you practice the luckier you get.
Question & Understand
Question what you’ve been asked to do – YOU need to understand what it is you’ve been asked to build and Why. The Sprint Goal could help you in this.
Attempt to use the 5 Whys technique to get to the bottom of what is being asked and what is actually required. Remember that a Product Backlog Item is just the start, it doesn’t contain the whole solution – it is just the start of the conversation.
Sometimes it isn’t possible to do everything; you need to keep a pragmatic mind as the end goal is to develop a working increment at the end of the sprint.You can always add more improvements to the solution in further updates.
There isn’t any value in what you’re doing until it is in the customer’s hand. If it never gets into their hands as you’re continually enhancing or tweaking then the value will never the delivered.
Support the Product Owner
As a Developer, you must support the Product Owner. They are part of the team and have external pressures on them that as a Developer you may not be aware of. The Product Owner provides the requirements, they are part of the Scrum Team and are one of you team members.
If you think I’ve missed any characteristics out then please let me know – I’d love to hear what you think.
Oh – And Drink Lots of Coffee