Geekzone: technology news, blogs, forums
Guest
Welcome Guest.
You haven't logged in yet. If you don't have an account you can register now.


VirtualKiwi

29 posts

Geek


#243431 11-Dec-2018 16:03
Send private message

I recently sent an invoice to a client for some SQL Azure/ Access VBA development work, and they said they thought the bill was a bit steep, and they thought too much was for fixing issues.

 

I inherited what was originally a pure Access database that was developed bypassing most of the ease-of-use capabilities that Access offers.

 

I migrated the back-end to SQL Azure, which has been a good stable platform, but there are ongoing development requirements with new features.

 

I've considered a few times ditching Access/VBA altogether and moving to an ASP.Net front end, but cost wise, I'm worried that this would be prohibitive, especially given the existing app is tightly integrated with the rest of Office including Outlook and Excel, and it would mean rebuilding the front-end from scratch.

 

I don't want to be overcharging my client, as they've been a good client, but I also want to have some idea of realistic costings and best practice.

 

Issues to consider.

 

Should I charge to fix bugs (some may be inherited due to the legacy nature of the front-end)?

Should I make fixed price quotes to implement new features. (If so, how to estimate reasonably accurately?)

 

 


Create new topic
surfisup1000
5288 posts

Uber Geek


  #2143471 11-Dec-2018 16:19
Send private message

You are an expert, you should be able to figure out the number of hours it might take on average, build in a contingency, add your other admin costs etc , then give a fixed price quote. 

 

Then, you need to determine a way that the client and yourself agree the job is completed.  This might be some testing by the client so that things are to their satisfaction. Then you sign off as contract completed. 

 

Finally, you need a maintenance agreement to cover bugs and/or minor changes, this can be a monthly fee that covers this work, or an hourly rate and call out fee.    In some projects, the real money is in the maintenance agreement. 

 

At least, that is the way it is done in just about every commercial org that i've worked at. Although, that is large business to large business where they have more understanding of best process. Smaller clients with less experience might decide they want to do things in a non-standard way. 

 

 

 

[edit] a  user scope document is very important. Variations to scope mean you need to pass on any price changes to the client. 




SpartanVXL
1323 posts

Uber Geek


  #2143485 11-Dec-2018 16:31
Send private message

I won't comment on what the price should be like. You migrated a legacy Access app (bleh) to SQL backend because i'm assuming there were issues around keeping the thing running. Your bill was to fix up the app rather than issues due to the migration?

 

 

They're also requesting new features? Thats extra on the bill.

 

 

You're right in thinking that it's too much trouble to build the front end from scratch. Only do this if they sign off for it and fully understand what this will take.

 

 

Is somebody at your client in charge of organising what needs fixing? Or is that left up to you to explain to the client?

 

 

More often than not certain 'clients' will vastly underestimate (or outright not understand) how much effort something takes to do and will umm and ahh about price to try get costs lowered. Lay it out for them and explain in detail best you can. You're here because you're a professional and can do it for them properly, not do it on the cheap.

VirtualKiwi

29 posts

Geek


  #2143927 12-Dec-2018 10:42
Send private message

Thanks for the comments.

 

When I did the initial migration, I left some things as they were if they worked, to avoid additional cost, but some of that has come back to cause issues when new features have been requested.

 

The original issue was that they were running a pure Access database on a local workstation as a fileserver, which depended on that workstation to be on for anyone to access the database, and provided no remote access.

 

It appears that the original developer ignored all of the built in data binding and data validation capabilities of Access, and wrote their own code, so doing something as simple as adding a new field to a form could turn out to be far more complicated than they should be.

 

This is where doing things that should have been quick and easy could end up blowing out time wise, and why it's been quite hard to estimate accurately how long enhancements will take.

 

Even though the initial migration of the back-end data was completed some time ago, issues still crop up, as a request might come to make changes to a part of the app that I've previously left alone, and that's where some of the awful legacy code rears its ugly head.

 

The idea of breaking the project into specific components and having separate contracts  for maintenance and feature requests would help with budgeting.

 

I've tended to be given a list of things to do, and generally left to figure out for myself priorities, without being given any time constraints which I think is what led to the budget blowout.

 

 




SpartanVXL
1323 posts

Uber Geek


  #2144017 12-Dec-2018 11:48
Send private message

ho boy..... bespoke app and a dev who rolled his own instead of using what was available. The song of my people....

 

 

And a single workstation machine with I assume not much in the way of recovery if it ever hit the fan. Moving to Azure was probably the best call in priority of resiliency. This tells me a bit more about how the client thinks about a seemingly important piece of IT.

 

 

Do break this project up in terms of what work needs to be done. I would be hesitant to accept anything in the way of new features considering you know how difficult it is to alter things without stuff breaking down the line. Maintenance and bug fixes of existing features can be a easy bill per hour sort. New features can get backlogged or charged quite a bit more, you want to try get across that new stuff is not easy and that they should stem their enthusiasm for trying to make a dog do new tricks.

 

 

On the topic of new features, it will come to a point where it would be easier to remake the application with something more flexible (or 'modern'). This is where design/architecture/requirements/scope etc. all come into play. If you can get these together, present it to them as a case for getting the app up to spec will being easier to maintain and/or change to fit new requirements as they come in. This is assuming they want to keep it around and want to make it better as their business needs to alter/grow.

 

 

Not that it'll be easy to convince them of the upfront cost of doing this. The prospect of doing this alone is also a bit daunting depending on the size of the app. Normally you'd have someone directing you on priorities, as mentioned before. Or you can take this on yourself and charge for design, planning and execution (project management is a job too!).

 


cddt
1566 posts

Uber Geek


  #2175092 8-Feb-2019 15:45
Send private message

VirtualKiwi:

 

It appears that the original developer ignored all of the built in data binding and data validation capabilities of Access, and wrote their own code, so doing something as simple as adding a new field to a form could turn out to be far more complicated than they should be.

 

 

 

 

Sounds like someone was hoping for a job for life... :(


bazzer
3438 posts

Uber Geek

Trusted

  #2175245 8-Feb-2019 20:00
Send private message

cddt:

 

VirtualKiwi:

 

It appears that the original developer ignored all of the built in data binding and data validation capabilities of Access, and wrote their own code, so doing something as simple as adding a new field to a form could turn out to be far more complicated than they should be.

 

 

Sounds like someone was hoping for a job for life... :(

 

 

Occam's razor, probably they were just not very good at Access.


solutionz
589 posts

Ultimate Geek
Inactive user


  #2175246 8-Feb-2019 20:04
Send private message

bazzer:

 

Occam's razor, probably they were just not very good at Access.

 

 

Close but actually Hanlon's razor; "Never attribute to malice that which is adequately explained by stupidity."


 
 
 

Move to New Zealand's best fibre broadband service (affiliate link). Free setup code: R587125ERQ6VE. Note that to use Quic Broadband you must be comfortable with configuring your own router.
timmmay
20593 posts

Uber Geek

Trusted
Lifetime subscriber

  #2175247 8-Feb-2019 20:46
Send private message

Rate depends on your experience really - for a developer with some Azure skills $50 / hr crazy cheap, $120 / hr would be a great rate, somewhere in the middle is probably about right.

 

Fixed price is a big risk to you. You need to really understand exactly what you're doing, what the customer wants, and precisely document the scope in a contract along with hourly rate if scope changes. Contractors very rarely do fixed price, that's more left to firms.

 

Suggest you stay with hourly rate.


gzt

gzt
17170 posts

Uber Geek

Lifetime subscriber

  #2175252 8-Feb-2019 20:56
Send private message

cddt: Sounds like someone was hoping for a job for life... :(

or early thinking about portability to different db.

kingdragonfly
11225 posts

Uber Geek

Subscriber

  #2193846 8-Mar-2019 18:09
Send private message

As I'm sure you know, Access has a real problem with database size limitations, and disaster recovery.

An unnamed hospital had many critical Access databases, developed by doctors. (Doctors and lawyers are the worst clients.)

Once Access's 50% is full, you can no longer rebuild the database. This happens without warning.

If a critical Access database is kept constantly open, say by even one person not logging off / shutting down, you can't backup the database securely (best you can do is a volume snapshot)

Something Microsoft won't tell you is it's cheaper to bring your own license on an Azure virtual machine, and handle the patching and backing up yourself.

You still get the resilient hardware, and world wide access but lose a lot of ease.

If you don't want to deal with that hassles, Microsoft will gladly handle it, in the form of an "Azure SQL database."

In any case, you'll want to develop in ASP.Net Core, using the MVC framework. C# would be my choice.

https://en.wikipedia.org/wiki/ASP.NET_MVC

It should be noted that Microsoft makes 60% of their Azure money on Linux based systems; Azure is surprisingly friendly to Linux.

Regarding rates, Azure has really taken off with NZ government's "AllOfGovernment" push in Wellington. Auckland seems very short-handed in Azure talent currently.

So I'd charge at least $75/hour, minimum 3 month commitment, with 50% cash up front.

If they don't like it, walk.

Create new topic





News and reviews »

Samsung Galaxy Z Fold7 Review 
Posted 11-Aug-2025 16:11


Gen Threat Report Reveals Rise in Crypto, Sextortion and Tech Support Scams
Posted 7-Aug-2025 13:09


Logitech G and McLaren Racing Sign New, Expanded Multi-Year Partnership
Posted 7-Aug-2025 13:00


A Third of New Zealanders Fall for Online Scams Says Trend Micro
Posted 7-Aug-2025 12:43


OPPO Releases Its Most Stylish and Compact Smartwatch Yet, the Watch X2 Mini.
Posted 7-Aug-2025 12:37


Epson Launches New High-End EH-LS9000B Home Theatre Laser Projector
Posted 7-Aug-2025 12:34


Air New Zealand Starts AI adoption with OpenAI
Posted 24-Jul-2025 16:00


eero Pro 7 Review
Posted 23-Jul-2025 12:07


BeeStation Plus Review
Posted 21-Jul-2025 14:21


eero Unveils New Wi-Fi 7 Products in New Zealand
Posted 21-Jul-2025 00:01


WiZ Introduces HDMI Sync Box and other Light Devices
Posted 20-Jul-2025 17:32


RedShield Enhances DDoS and Bot Attack Protection
Posted 20-Jul-2025 17:26


Seagate Ships 30TB Drives
Posted 17-Jul-2025 11:24


Oclean AirPump A10 Water Flosser Review
Posted 13-Jul-2025 11:05


Samsung Galaxy Z Fold7: Raising the Bar for Smartphones
Posted 10-Jul-2025 02:01









Geekzone Live »

Try automatic live updates from Geekzone directly in your browser, without refreshing the page, with Geekzone Live now.



Are you subscribed to our RSS feed? You can download the latest headlines and summaries from our stories directly to your computer or smartphone by using a feed reader.