🐈
» Groups » Upwork Engineering » Forum » iOS Music App Developer having trouble with a...
Page options
billjobsinspace
Community Member

iOS Music App Developer having trouble with a milestone-based project

Hi Everyone,

 

I feel like I may have bitten off more than I can chew with my current contract.

 

I'm an intermediate/expert iOS app developer with a specialty in audio programming. So far most of my projects have been music-related apps that require some sort of audio processing, such as pitch tracking or real-time sound generation. I have been told the specialty of being an audio developer (and fluent musician) is somewhat rare on this website.


Up until now I have worked hourly projects, with clients with at least some degree of technical experience and therefore have a better idea of what the software development process is like. My rate is typically $30/hr, but I have worked for a lot less (still hourly) when I first got started on Upwork. This is the most comfortable way to work for me becuase I don't have the stress on my shoulders of worrying about when I will get paid. At the same time, I am fairly generous with the time tracker (switching it off the moment I have to do anything non-work related), and I have never exceeded 20 hours a week on any given contract.

Right now I've taken on a project that I initially thought would be another hourly project, at my current rate of $30/hr. The initial deal was to complete a small prototype at a fixed rate, followed by steady work at a "highly competitive flat rate". The project involves real-time pitch tracking of musical instruments for a rhythm game. A musical score is drawn on the screen, and the student must play back the written melody, with the pitch tracking system keeping track of what notes they are playing, and if they are correct or not according to the score.

 

The main obstacles I'm facing right now are with the drawing of the musical score, which I had to experiment with a couple of different code libraries in order to get working; and the pitch tracking system— which I have had to start from scratch a few times and has proved to be something that is taking a lot of time to figure out (and a lot of trial and error testing and tweaking). I'm still hard at work prototyping the pitch tracking system, but I am closing in on what I think may be an elegant solution.


However, the purpose of this post has been becuase of the contract itself — my client has no technical knowledge and insists on keeping this project fixed rate, with milestones. The total amount of requested features has changed a few times during the course of the project, and the initial budget was $3500 and has since been lowered to $3000. My current milestone is the pitch-tracking system, and it is taking me the longest to finish, so I haven't been able to receive any payment for a few weeks. The project is due by the end of January, and there is currently $1875 remaining in the budget. I have calculated that this would fit with my rate of $30/hr if I worked about 16 hours a week.

 

I don't think milestones make too much sense for software projects that require a lot of trial and error and debugging to perfect, and it has been extremely difficult for me to estimate how long this particular feature will take to complete. You could potentially spend an infinite time improving this kind of system, so it's hard to say when this milestone will be "finished". I can see the UI part of the project being doable with milestones (since that work is more "cut-and-dried"), but something more experimental would make more sense as hourly work.

I've looked at Upwork's article regarding the average costs for iOS app developers (https://www.upwork.com/hiring/development/cost-to-hire-ios-developer/), and according to this page it seems like I might be too generous with my rate to begin with (where intermediate/expert developers can earn $35/75+ an hour). At the same time, since I am providing a specialty (audio and music development) I could argue that my rate could be higher still. However, as I mentioned before, as long as I complete the project in the next 60 hours or so, I will be still within my rate of $30/hr.

 

My biggest weaknesses as a freelancer so far, according to friends and colleagues, is being too generous with my rate for difficult work, and being too confident about my initial assessment of the project. At the same time, working with non-technical clients is difficult becuase even though I know that I am good at what I do, I am second guessing myself when I have to explain why certain features are taking so long to finish. I feel like I am a bit stuck since I have already agreed to the terms of the contract and have earned over $1000 so far, despite knowing that it may not be enough for the difficulty of the project.

Right now I'm in the middle of figuring out exactly how much work I have left, and if it's feasible to complete within the client's budget.

 

What do you think I should do at this point? Is this a reasonable rate for this kind of project (and should I stop complaining and continue working)? Or should I drop this and find something else?

 

Thank you for your time, and good luck out there everyone!

ACCEPTED SOLUTION
imakeinternet
Community Member

Hey Chris!

 

First of all, milestone based projects are a perfect fit for non-fluid jobs in which a completion date is easily determined by someone with experience in a particular thing.  I do a mix of both milestone based and hourly myself and there is a big difference in the types of projects.  Your clients budget is above $3,000 which seems at par with initial dev phases of other iOS projects I've seen roll across my desk.  One thing to be careful of when accepting a milestone based contract is to absolutely make sure you aren't bitting off more than you can chew to get from milestone to milestone, because after all, your paycheck is on the line.  I would suggest sticking with it and doing the best you can to meet the clients needs because on a project such as the one you're currently involve in you do not want a bad review.

 

Secondly, $30 an hour for iOS development is absurd.  I've seen freelancers in India work for more and their cost of living is way less than Canada.  I would strongly consider checking out what your competition is charging hourly and apply the same to yourself.  You're definitely worth it.

 

In summary, yes, milestones are terrible for fluid work in which you cannot accurately gage how long certain parts will take, but they are also good in certain projects.  This seems like it wasn't one of them but at the end of the day it's at the clients discretion how they want to handle their project and its up to the freelancer to bid on projects they know they can complete.

 

You got this!  Stick through the hard times and you'll find gold at the end.  I promise.

 

Mike

View solution in original post

5 REPLIES 5
imakeinternet
Community Member

Hey Chris!

 

First of all, milestone based projects are a perfect fit for non-fluid jobs in which a completion date is easily determined by someone with experience in a particular thing.  I do a mix of both milestone based and hourly myself and there is a big difference in the types of projects.  Your clients budget is above $3,000 which seems at par with initial dev phases of other iOS projects I've seen roll across my desk.  One thing to be careful of when accepting a milestone based contract is to absolutely make sure you aren't bitting off more than you can chew to get from milestone to milestone, because after all, your paycheck is on the line.  I would suggest sticking with it and doing the best you can to meet the clients needs because on a project such as the one you're currently involve in you do not want a bad review.

 

Secondly, $30 an hour for iOS development is absurd.  I've seen freelancers in India work for more and their cost of living is way less than Canada.  I would strongly consider checking out what your competition is charging hourly and apply the same to yourself.  You're definitely worth it.

 

In summary, yes, milestones are terrible for fluid work in which you cannot accurately gage how long certain parts will take, but they are also good in certain projects.  This seems like it wasn't one of them but at the end of the day it's at the clients discretion how they want to handle their project and its up to the freelancer to bid on projects they know they can complete.

 

You got this!  Stick through the hard times and you'll find gold at the end.  I promise.

 

Mike

Hi Mike,

 

Thanks for your answer and sorry it took me such a long time to get around to replying to you.

 

In the end, I completed the project successfully after a series of compromises with the client. About halfway through I was able to negotiate switching to a new contract at the hourly rate of $30/hr— which as you mentioned is low but at least it put my mind at ease that I was actually being rewarded something for my efforts.

 

The project was the most challenging and stressful thing I've had to work on in a long time but in the end it worked out. 

 

I have come back from a nearly month long vacation in Europe and now the client has contacted me again to work on Phase 2 of the project. I told them that I would only be available part-time and I still have to negotiate an hourly rate with them. I have posted a question about this issue here if you would like to know more details: https://community.upwork.com/t5/Programmers-Developers/Fair-rate-for-part-time-Audio-Programming-job...

 

Thanks again for your encouraging words and I wish you the best of luck!

-C

Hi there,

 

This question is related to one I asked a while ago, as it is a continuation of a iOS development project from the same client:

 

https://community.upwork.com/t5/Programmers-Developers/iOS-Music-App-Developer-having-trouble-with-a...

 

The project is an iOS rhythm game which involves real-time pitch and rhythm detection from the microphone for different musical instruments. I am an iOS developer who specializes in music and audio related programming, and for the audio portion I used a library called libpd. Libpd allows you to embed Pure Data patches (a visual dataflow programming language that was the predecessor to Max/MSP) to handle the audio processing. The prototype is completed, and the core audio functionality is working but could use some tightening up. If I were to abandon the project entirely, it would be very unlikely for the client to find someone with experience with Pure Data who could finish what I started. 

 

That being said, I offered to continue helping with the audio side of the project on a part-time basis and suggested that they find a general iOS dev to work on the rest. I am trying to figure out what a fair rate for this kind of specialized work would be, since audio-related coding is a niche skill, and the tool that I am using is even rarer still. 

 

It is important to me to keep this as part-time since I want to take some time to focus on my health as well as some personal projects that have been on the backburner while I was completing the first part of this project. I don't want to stress myself out with this, so I feel like I should choose a rate that is fair for my skillset but not so high that I will feel like I am under a lot of pressure to deliver the impossible for a non-tech savvy client. 

 

Any advice would be greatly appreciated!

 

Thanks,

-Chris

Hi Chris,

 

I think you did everything you could do. You made it clear to the client that you won't have the full bandwidth to focus on that project. If they don't respect that, then they need to find another developer to work with anyway.

 

I really related to your struggle with working on a hard project that you aren't getting paid well for. I have been dealing with that a little bit lately and I understand the frustration. On one hand you want to tell the client that basically this is going to be hard and I need more time. On the other hand, you don't want to piss them off either and risk a bad rating on your profile. It's hard to find that balance. I am generous with the time tracker as well. I think about how if I hired someone on here (and I have before), I would hate for them to keep it on while they step out of the house for 10 minutes or whatever. So I do that too.

 

Don't stress over it too much. Worst case scenario, tell them you can't do it and they will need to find someone else. Then you can search for another contract in the meantime. No need to stress yourself out if you want to focus on other things in life.

Even though Upwork has helped me a lot the past couple of years I have learned that unfortunately it seems to be a place where clients expect more for less, and if they do not know the amount of work involved with technical projects they can have really warped expectations. 

 

In the end if a contract doesn't work out I don't have to feel too invested in it, and by working part-time I can focus on my own personal projects and not get overwhelmed. 

 

Thanks for your advice, good luck out there!