But for freelancers, there remains a major disconnect between traditional fixed-bid contracting and agile software development projects, Filiatrault says. “Lots of time needs to be spent up front specifying functionality and scope before work even begins on a fixed-bid project,” he says.
Indeed, traditional fixed-bid contracts immediately put the client at odds with the contractor as soon as the contract is signed, because the client wants to jam as much functionality as it can into the project for the fixed price. “On the other hand, the contractor wants to spend as little time as he can on the job for the fixed price,” Filiatrault says.
Working in agile, where the client’s objectives evolve over time, is hamstrung by the fixed-bid contract. “The contractor wants to keep scope locked down as opposed to working in tandem with the client to evolve [the software] in a more collaborative way,” Filiatrault says. “Constant change orders to a fixed bid are tedious. In modern software development, it’s best for the software contractor to work on an hourly basis rather than on fixed contract price.”
Coping with communications gaps
Even within the same company, IT and non-IT people often don’t communicate well with each other. This can be an issue for freelancers as they try to stay in sync with clients.
“It is very true that engineers and non-engineers speak pretty much different languages,” Akhtar says. “The way an engineer looks at a problem and how a nontechnical person may look at a problem is very different.”
What might seemingly be a small issue for clients could actually require a decent amount of technical work to fix, and communicating this to nontechnical people can be tough.
For example, a client of Akhtar’s thought that having the ability to sell 10 items on its website instead of 20 should reduce the cost of the project by half.
“From an engineer’s perspective, once the core e-commerce experience has been built, the incremental effort to modify the number of items you can sell from one to anything is almost zero,” he says. “Freelancers find it a big pain trying to communicate ideas such as these to the client.”
Managing your time
While time management is a challenge that applies to almost any profession, IT freelancers are in a unique position because they might be called in to address issues when they least expect it -- throwing schedules into turmoil.
“Once you start to grow your business, time management becomes pivotal,” Brattoli says. “In order to grow, you need to manage your full-time job, your current freelancing projects, growing your business, training, and your personal life.”
This can become quite difficult in IT because many projects are not 9 to 5. “You may spend a day browsing the Internet, and you may work 24-plus hours straight because something blew up,” Brattoli says. “This flexible schedule can both make things difficult and allow you to succeed, depending on how you do it.”
Sign up for CIO Asia eNewsletters.