Home AMX User Forum AMX General Discussion

How to calculate programing ?

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 ?!?!)

Comments

  • John NagyJohn Nagy Posts: 1,742
    This is always a problem, impossible to answer accurately.

    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...
  • VladaPUBVladaPUB Posts: 139
    I know. But, I am searching for some example, just to have something to think about.

    Like for DVD device I need two hours, for video-codec I need four hours ....

    Or something like 5 % from price of .....
  • jjamesjjames Posts: 2,908
    John Nagy wrote: »
    It's not just an RS232 count...
    I truly mean no offense, but I find this funny coming from a company that has charged more (maybe you still do, I don't know you're pricing now) for programming based on connected devices, number of touch panels, etc. Response was great up until that last bit. :-)
  • VladaPUBVladaPUB Posts: 139
    This is forum where people anyhow connected to AMX speak about AMX ..... or I am wrong ? :)

    Just wondering how other people count !
  • jjamesjjames Posts: 2,908
    VladaPUB wrote: »
    This is forum where people anyhow connected to AMX speak about AMX ..... or I am wrong ? :)

    Just wondering how other people count !
    No - you are correct, as was John. It does go deeper than just a count of RS-232 ports, or IR devices, or touch panels for that matter. I was just saying that I thought it was funny what John said about how it's not just a count of serial, when I remember his pricing scheme being rather close to that - maybe it was the number of touch panels increased the cost, regardless that the programming is identical (as were the touch panel files) for the entire system. However, that Vlad, is how you make money grow on trees.
  • VladaPUBVladaPUB Posts: 139
    I try to look at every project as "one and only" and to see how much time I will spend on it, but just wondering is there some easiest way to calculate it.

    I have download D-Tools SI 5.5, and trying to figure out what is what :)
  • PhreaKPhreaK Posts: 966
    The easiest way I've found to price *any* software dev project, regardless of whether it's an AMX box or not is to break the project down into as many components as you can, then break those components down again. Repeat this until you can't go any deeper then estimate the time to develop each component. It's much easy to estimate the time and resources required to produce one specific bit of code that does one thing rather than attempt to pull some figure out of the air based on how many touch panels are in the system. If you take this approach you'll end up with a full task list and relatively complete software design before you even open up your IDE. Also, don't forget to factor in admin costs, project planning (ie, the time estimate) and any other expenses.

    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.
  • John NagyJohn Nagy Posts: 1,742
    Funny

    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.
  • jjamesjjames Posts: 2,908
    John Nagy wrote: »
    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.
    No problem! Glad you could clarify. I still do think it's ironic though, but it's all good. Agree to disagree I guess.

    Thanks for the clarification that you're here to advertise (spam) the board, and not just the thread. ;)
  • Jorde_VJorde_V Posts: 393
    jjames wrote: »
    No problem! Glad you could clarify. I still do think it's ironic though, but it's all good. Agree to disagree I guess.

    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)
  • Spire_JeffSpire_Jeff Posts: 1,917
    VladaPUB wrote: »
    I try to look at every project as "one and only" and to see how much time I will spend on it, but just wondering is there some easiest way to calculate it.

    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
  • mpullinmpullin Posts: 949
    Spire_Jeff wrote: »
    Unless you are automating a pig farm one day
    This is actually a pretty good idea. I can already picture how an AMX system could simplify the process for the client:
  • DHawthorneDHawthorne Posts: 4,584
    I break it down by segment. I know roughly how long it takes me to do certain things, so I'' guestimate it by saying something like, "ok, two hours for the general framework, an hour per room (or whatever, it really depends on what is being controlled per room), 4-6 hours per new module, if necessary, hour per panel page if I already have something to start wtih, 4 hour if it's a brand new device ..." Like that. Then I multiply it all out, and tack on a few hours for glitches and oopses, then tack on 6-12 hours (depending on the scope of the job) for troubleshooting and tweaking, and the oddball requests from the end user that they don't remember until stuff is actually up and running.

    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).
  • the8thstthe8thst Posts: 470
    We have a set base program that does DA (with multiple vol presets, party modes, EQ, etc), DV, Security, Weather, HVAC, and Intercom. We add this into jobs using set programming prices for 8,18,36 zones of DA.

    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.
Sign In or Register to comment.