How to calculate programing ?
VladaPUB
Posts: 139
Dear all, please tell me how you calculate cost of programing for some system programming ?
How to calculate hours needed for some device (IR, RS232 .... or ?!?!)
How to calculate hours needed for some device (IR, RS232 .... or ?!?!)
0
Comments
How long will it take to paint a family portrait? Do you charge by the number of people in it, and how long will it take?
The answer varies hugely with the talent of the artist/programmer and amount of detail the customer demands. It's not just an RS232 count...
Like for DVD device I need two hours, for video-codec I need four hours ....
Or something like 5 % from price of .....
Just wondering how other people count !
I have download D-Tools SI 5.5, and trying to figure out what is what
When you kick off on the project make sure you track your time as well (there's masses of awesome web apps out there for this, I'd recommend Toggl) - although it won't necessarily help with the current project you can use it to adjust your time estimates for the next one.
The only drawback of this approach is that it relies on starting with a solid spec. Make sure you have this written out explicitly and signed by whoever is going to be paying you before you even think about providing a price for the whole project. If you're just starting out it can be a good idea to have a lawyer go over your project quote template and help you form the acceptance section. It's much cheaper to get a decent re-usable template done up that is rock solid legally than to not get paid for just one project.
Accurate programming pricing is important to integrators but as all here agree, it's hard to do, and many dealers end up losing money on programming that ultimately costs more than what the customer agreed to. Many jobs are not so much "finished" as they are "stopped" as the costs to tweak them in progress or after the initial install becomes unacceptable for all.
It's not funny or ironic that I'd say that pricing custom programming can't be boiled down to a nose count, and yet CineTouch (our product) does exactly that. It's precisely because of the huge variation possible in custom programming and after-programming gotchas and changes and variability in talent and training that we created our product that CAN be priced, accurately, in that manner. Predictable costs protect the dealer. I didn't bring it up myself as I am not here (in this thread) to advertise.
Our packaged software solution has 100% predictable pricing that scales with the size of the job because that's where the money is... and we convey value in proportion to the size of the job and features that make it complex. It also scales as our support time is typically proportional to the size of the job. Although in reality, the larger the job, the more of our support time is dedicated to assisting in non-software issues, like making serial wiring and IR codes actually work, or helping with making good multiroom wiring design or rational lighting scenes.
Thanks for the invitation to clarify, it does illuminate this topic - but that's enough about us for here.
Thanks for the clarification that you're here to advertise (spam) the board, and not just the thread.
Sheesh stop picking on the guy..
You know they base their sales on volume, they don't make things to be used a single/few time(s), so they can afford to do it that way. On a per project base that's simply not the ideal situation, for their product it is. (They're selling boxes, you're selling a service).
As to answer the TS' question. It depends on your skill level, not just the programming but the prep work as well. Your testing skills etc.
It's very difficult to do this before hand. This is how I do it:
I require all the info from the project before hand, then I start making diagrams of functionality, devices, systems, touchpanels. These are all components for the system, then I do a calculation per component. After the calculation I add 20% for safety measures (last minute changes etc). This has proven to be quite accurate. (there's always overhead and 'minor' changes.)
If the 'minor' changes start to pile up I finish the project first and then do the changes so I can separate it from the main project. That way it's easier to clarify the additional costs to your salesman and client.
So to do the calculation you need to take into account how much time it would take YOU. With more experience you'll start to do it faster. (i'm about 2-3x quicker than 3 years ago)
In my opinion, this is the wrong approach. The power of AMX shines in its ability to reuse code. From a business perspective, you should be focusing on developing a base set of code that gets your jobs 60-95% done from the start.
Unless you are automating a pig farm one day, automating a residential house the next day, programming a perimeter security system the next, ... you should be able to find a common thread among the majority of your jobs. For example, most of our jobs use distributed audio and video to multiple rooms. The only thing that really changes from job to job are the room names and the devices being distributed.
Based on that, every job uses the same code to do the switching and the device names and room names are easily changed from job to job. The advantage here is that I KNOW from job to job that the A/V switching code is functional. If a problem arises where a room is not getting audio, I know that the code is good and can focus my energies on finding out what was wired wrong, or which piece of hardware is having problems. This also allows me to focus on the custom code required by this job. Even when I am creating custom code, I consider the possibility of this code being reused in the future and write it accordingly.
If you can get to the point where you have developed an extensive library of code, you can finish your jobs quicker and more reliably. As for how to charge for this, you have to decide what piece of the total pie you want an individual client to pay. Think of it like MS Windows, if you had to pay for all of the development, you would never buy Windows. At the same time, by paying a miniscule chunk of the development costs, you are not able to directly control the direction of development. Obviously, most of us don't have the access or ability to provide to millions of users, so the percentage of development costs passed to each individual customer are going to be higher that Microsoft's percentage. You have to look at your business and decide what is fair to both your business and your clients.
If you have a client that is interested in specific features, you might charge them 100% of the development costs for that feature. If you think that most of your clients would like that feature, you might charge the requesting client 30% and additional clients might only pay 15%. The justification being that the requesting client wants it done immediately, so you are charging for the priority assigned to it. You are charging less to others because it is already developed and everyone wins. The original client isn't responsible for 100% of the costs and you are taking the chance that 5 additional clients will pay for the feature. You could also just charge everyone 30% (or 15%) if you feel better, but there is a price to be on the bleeding edge
One last thought on custom code. When we are approaching integration of a new device or a custom code feature, we bill on a time and materials basis. We draw on our experience and set a budget. As the development progresses, we keep the client informed and if we encounter an issue that is going to exceed the budget, we inform the client and together we decide what the additional costs would be. Based on that, the client then decides if they want to continue development. We do make it clear at the beginning that we are speculating on an unknown and there is a chance that it will cost more or may not even be possible.
Hope this helps,
Jeff
Now, mind you, that's a fully custom system. There is a real good argument for standardizing what you offer so you can give a flat, per-room kind of rate. But my experience has been it's always the deviations and custom stuff that bites you in the behind, and that's what you have to make sure you allow for, or go broke. ANd custom stuff and deviations are what people hire integrators for ... otherwise the electrician can do it (and don't snicker, I have seen quite a few C-tron systems installed exactly that way).
We also have a scope that includes all of the features of our standard system. We then either bid out change orders for enhanced customized automation or we enter a T&M agreement for the add-on features.
This way our programming prices are always less than the competitors because I can do a basic system for a new job in very little time.
It has worked well for us so far and we haven't had too many issues with customers getting confused or refusing change order bids because we spell it all out really well in the sales process.