Ever since I started my one-man business, I have looked for ways to improve my productivity and get things done faster. There were a couple of methods that seemed to lead to small improvements, but overall none of them proved efficient.
That is, until I discovered agile techniques. In this post, I’ll discuss some of the ways that agile techniques can help improve a freelancer’s productivity. Specifically, I’ll look at agile methods in general and at Scrum methodology.
Agile Techniques are Team-Oriented
A couple of months ago I was researching agile methods to see if they would help improve my productivity. While studying agile development methods such as Extreme Programming, pair programming, and Scrum I was disappointed to learn that these methods were designed for teams and not for freelancers.
I decided to examine the methods further. I asked myself the question: Why are agile techniques team-oriented?
I discovered that agile development methods are team-oriented because a single person inevitably makes mistakes, mistakes that go untracked and unfixed. This means that the end product has poor quality and stands against the very nature of the agile manifesto, which tries to ensure high quality in each iteration of a product’s development.
If a team develops the product, errors made by one member are discovered by others and fixed. Each member has a specific role. Some may even have passive roles, as their only task is to listen, observe or moderate–such as the moderator of a poker play agile technique, or an employee that hasn’t got a scrum role, but attends a Scrum meeting.
Therefore, agile methodologies were designed and work best with teams that are usually larger than three or four members.
But, adjustments can be made
Despite the fact that it is really hard to successfully apply agile methods to developers working alone, some tweaks can be made to certain methods and therefore use them to improve your own productivity and work flow.
One that can be modified is the Scrum methodology. Scrum is an iterative framework that was designed to serve as a management tool for software development projects, but it is also widely used to manage development teams too.
What Is Scrum Methodology?
Scrum contains a set of practices and three predefined roles. The project manager is usually the Scrum master and maintains the processes. There’s also the product owner, or someone who represents the client and a team of developers.
In summary, the Scrum roles are:
- Scrum Master
- Product Owner
- Development Team
Scrum uses sprint periods of two to four weeks during which a potentially releasable product increment is developed. The features that are implemented during a sprint are chosen from a set of high-level requirements needed to be done. Which of these requirements go into a sprint is decided at the beginning of the phase.
The product owner or the client informs the development team about the items in the requirements list that must be completed first. The team than estimates how many of these items can be completed during the next sprint. An important issue with Scrum is that, during a sprint, requirements of that specific sprint cannot be changed. This ensures that the development team is focused on its tasks and doesn’t get distracted.
A key principle of Scrum is its recognition that during a project, the customers can change their minds about what they want or need. These modifications are introduced to the project development only between sprints.
Scrum requires daily meetings, which may seem Sci-Fi to some. Don’t worry because the modified Scrum version that works for a freelancer is simple and straightforward.
Scrum for Freelancers in Two Easy Steps
Scrum can be adapted for freelancers by implementing the following steps:
- Client meeting–one each week
- Sprint planning meeting–one each week
The starting point for implementing scrums is to develop a prioritized list of outstanding client requirements or needed features, having for each item in the list a priority, a description, and a developing estimate.
The client requirements and features list are built during the first client meeting. This list can be modified afterwards during each weekly client meeting. During these meetings, list items should also be prioritized as the client wants. Estimates should be computed by the developer alone and communicated to the client.
The next step would be to define a one-week sprint and start developing the items in its list while making sure that distractions aren’t sidetracking the development task. The success of each sprint depends on the ability of the developer to estimate development time required for each task and stay on track. The items that are added to the weekly sprint should be selected according to customer’s priorities.
If the client wishes to change any features of the product during a sprint, you mustn’t waste time discussing this with him. Instead, you should advise your customer to point the modifications during the weekly meeting he has with you. Of course, this can have side effects, but if you explain your development process to your clients during the first meeting with them, they’ll stick to it and love the fact that you have strong management capabilities.
Using this technique, you could have one day a week during which you meet with all your clients that you’re currently involved in a project with, and leave the rest of the days for distraction-free development process.
But, you can further improve the process!
Scrum Methodology and the Pomodoro Technique
You can improve the adapted Scrum methodology with the Pomodoro technique. It is a time management method developed in late 1980s that uses a timer to define work periods of 25 minutes followed by short breaks. Each period is called a pomodoro (Italian for tomato). The technique is based on the concept that frequent breaks can improve mental agility.
Five basic steps are required to implement this technique, in the following order:
- Decide on task to be done.
- Set the pomodoro timer to 25 minutes.
- Work on the task until the timer rings.
- Take a short break.
- Continue with the third step or the first step if the task is completed.
It is also recommended that a longer break is taken every four pomodoros.
This technique blends the one-man team Scrum as the first step––that of choosing a task––is embedding the sprint list of the Scrum methodology. Moreover, the Pomodoro technique is related to concepts such as time boxing and iterative and incremental development, which are all characteristics of agile development.
This technique may seem a bit complex, but it is easy to manage it. You can do it with sticky notes or whiteboards, or by using dedicated apps. And, just in case you don’t have a timer around, you can use Focus Booster App, which was designed to work with the Pomodoro technique.
What methods do you use to improve your productivity? Share your thoughts in the comments.
Image by IDS. Photos