Scrum has some great things to teach us about how to work with each other and how to be more effective. Here are six of them:
1. Always work from a prioritized list
Have you ever thought about how much of your day is wasted doing things that don’t mean very much? Or, do you engage too much in nerd pleasure i.e. working on things that are technically satisfying, but not necessarily working on what is important to your customer or client? This one simple act of working from a prioritized list will change the way you function and make you more effective. Keep the list up-to-date daily with the most important things on the top. Then start knocking them off.
2. Make a commitment publicly
If you have a task that you want to get done, commit to it and tell someone. In Scrum you would make the commitment to your team members, but your dog might work just as well (just kidding about that, you should probably just stick to humans). Something magic happens when that commitment is made and it is more likely to get done than if you didn’t make it.
3. Get feedback regularly
In Scrum this is called a ‘Retrospective’ and it should be done on a regular basis (regular being key). Ask someone you are working with or your boss at regular intervals (e.g. every 2 weeks, every month) to have lunch with you and give you some feedback. What’s it like working with me? What do you like about working with me? Am I doing anything that’s not working for you? What can I do to improve myself? You can also do it in a more ad-hoc way as long as it works out being regular. For example, if you just finished pair programming or just had a meeting, ask the other person ‘what went well?’ and ‘what could be improved?’
4. Time-box your activities
Setting time limits on meetings and tasks will help you keep focused. With Scrum, the concept of a ‘sprint’ assures that you commit to a set of functionality that is time-boxed. Here’s a golden nugget for you: tasks always tend to shrink or expand to fit the amount of time allotted (cf. Parkinson’s Law). So give yourself a shorter, but realistic allotment of time, then reassess when you hit the limit. If working with a client/product owner, this is a good time to communicate the status of the project and make those trade-offs – should you simplify the feature, remove it, or keep going on the current path. Of course, if you keep working, other features will be pushed out because something’s gotta give.
5. Work sustainably
Startup companies never seem to remember this one. Agile has zero to do with working yourself until you’re burned out and has everything to do with working sustainably. The number of hours we have in a week is fixed – if something is added to the current iteration, something else has to be pushed out. If this is the week of a critical release then there may be an exception, but having critical releases on a weekly basis no longer qualifies as critical.
6. Make your work visible
Use a push, not a pull system of project management. Managers who constantly poll their developers for their project status only interrupt developer work flow. The reason that they do this is because they can’t keep their minds wrapped around all the moving parts of the project. If developers take it upon themselves to push their current status to a place that everyone has visibility into, then the need for micro-management is gone. So, whether you use a product like ScrumNinja or index cards and a cork board, your manager and other stakeholders will be up-to-date on progress.