Freelance SQL Developer – SQL Code on Call
Ad Hoc coding is the process of writing code at the time it is requested. Even though long-term projects cover the bulk of my time, I do an extraordinary amount of ad hoc coding — requests come via email, phone calls, sometimes during a video conference, even! My clients get accustomed to the fact that I can write queries in real time, and when we discuss matters of work, it’s inevitable that I will end up at a SQL prompt.
Sometimes, the ad hoc work is more along the lines of tasks, or mini projects that don’t get the luxury of design or planning.
Actual Client Example
The client in this example has a business analyst on-site who is more than capable of using SQL and SSRS, but his responsibilities are many, including managing the conversion from a legacy application to a Windows based application called Canopy.
Existing ERP Software
- New Canopy software does not have needed reports relied upon from the older system
- Canopy has been customized, the customization makes for very complicated SQL statements
- Some of the reports desired are pivot tables, adding complexity to the requested sorting and grouping
- Canopy has a built-in custom report builder but it can only generate very basic SQL. Anything that requires common table expressions, or staged data prep cannot be created with its report builder.
Concerns About Working with a Freelancer
Can a freelance SQL developer figure out our unique data requirements even though he isn’t our employee?
Yes! Actually, I haven’t been anyone’s employee since 2002. My career gives me the challenge of going into many different types of business. I know how to ask the right questions to deliver the desired result.
Can we use our existing technical resource to do as much work as possible to keep the hourly costs down?
You can, yes. As a matter of fact, it’s helpful to me to reduce the number of people who can initiate requests from each client. Also, having a technical person on the client side is helpful to me (but not necessary). I am happy to hand-off complete solutions, or just portions — queries or reports. I can also provide a limited amount of training to ensure that the solutions I provide are understood and used effectively.
Solution: SQL and SSRS Work on Call
- Client chose the most challenging report as the first one to start working on, with the idea that if this report could be completed, then I surely would be able to complete of the reports they need in the future.
- Work was done remotely, off-line (not connected to VPN or RDP). A SQL database was syncrhonized periodically between the client and my development environment using a simple backup and restore. SSRS reports are imported into the live environment after being developed.
- On-going work is provided such as changes to the way the users enter parameters.
- The client’s business analyst calls, periodically, with additional requests for support as needed.
Here is an example report that is characteristic of most of the work done for this client. This report consists of two SSRS files, an outer report that accepts report parameters of either a date or a single production entry, and an inner report that iterates a single page report per production entry.
Could Not Use Visual Studio or Git
It was normal to exchange files with this client via email, and the business analyst would import the SSRS source code that I sent as an attachment. Here is how I wish we would have done this:
- Setup the ad hoc SSRS reports as a Visual Studio project
- Use Git Hub to store the SSRS project
- The client could then pull from Git and deploy the solution
However, Visual Studio and Git Hub were not within the comfort level of the analyst I worked with. This is very normal, and this serves as an example to show that I adapt to my clients’ needs.
Compared to other client work that I do, usually I handle my own deployment. I usually deploy first to a test site, and then the client can test and approve the work. Upon approval, I’ll deploy to production. Of course this is all determined by the client.
Ad Hoc Working Arrangement
This client pays an hourly rate, and there is no commitment on their part for a guaranteed amount of work. They simply call me when they need something. I typically turn around small tasks for them in 24-48 hours, depending on the complexity of the request.
Let me know if you would like to discuss your reporting needs. You can reach me by email or by phone: