Monday, April 13, 2009

Experts Exchange

Have you ever been working on a project and run into a technical challenge / hurdle / problem that exceeded your knowledge or skill in a specific area? At those times, you wish that you could pick up the phone and have an hour, or maybe just a few minutes with an expert that can get you past the problem and back on track. Sometimes, you would be willing to pay a fair amount of money to have access to that expert right away, and get a quick response.

Several months ago I was asked to develop a solution that would allow a client to export 401k data from Dynamics GP payroll so that the client could submit the data to a 3rd party benefits administrator. Not a problem in concept, as I've done it several times before. The initial query came together quickly, but then I ran into something that I had never needed to do with SQL.

The export needed to indicate whether employees had 401k loan repayments. If the employee had a 401k loan, I needed to display the repayment amount amount deducted from each pay check. That requirement wasn't difficult, but employees could be repaying multiple loans, so the requirement to display up to 5 different 401k loan deductions on a single paycheck (output a single row) as 5 separate columns was no easy task.

One challenge was that the loan deductions were recorded using many different pay codes, all of which started with "LN". The second challenge was that a given pay check may have anywhere from 0 to 5 loan repayment deductions. And to top it off, I had to figure out a way to transpose an arbitrary number of rows into 5 fixed columns. And don't forget that I needed to be able to include this in an existing query that was exporting dozens of other employee and pay check related fields.

So there I was, stuck, wondering how in the world I would figure this out without completely blowing my very small budget. I needed some help, I needed it quickly, and I didn't want to pay hundreds of dollars to solve this very specific problem.

I then remembered Experts Exchange. This is an amazing member-based web site that allows you to post very detailed questions about your specific problem, and offer "points" to site members if they can help you solve your problem. Most problems receive a response in 3-4 hours, but you can increase the points that you offer depending on the complexity or urgency of your issue. Of course, you must purchase points as part of a monthly fee, and you may need to buy extra points if you run out or need to offer extra points.

When I created and posted my question, I offered 500 points (the equivalent of $6.50), and in less than 3 hours, I received two amazing responses, both of which solved my problem using two different approaches. I was able to copy and paste the code right into the middle of my query, change the table names, and it worked perfectly.

The solution I chose used at least two SQL 2005 T-SQL techniques that I had never used before, and would have taken me many hours of trial and error to produce even if I were given some initial hints. The help from a SQL expert saved my budget, and helped me deliver a more efficient and effective solution than I would have been able to deliver.

There are a few caveats, of course. I have since learned that my wonderful first experience might not have been typical. A few questions I have posted have received mediocre or mixed responses, and a few obscure ones have received no valuable responses. But for mainstream issues like SQL, .NET development, Windows issues, common networking issues, etc., there are some amazing experts available to help. I do see that there are many questions regarding Dynamics GP and eConnect as well.

And with each question that is solved, the massive knowledge base provided by the web site continues to grow. Many times you can simply search the existing knowledge base and find the answer to your issue, with valid solutions pre-screened and tested for you.

If you tend to run into alot of different technical issues at various client sites, I would recommend checking out Experts Exchange to see if the problem has already been solved.

It looks like they currently offer a monthly plan for $12.95 a month, with discounts if you subscribe for 6 months or more. The way I look at it, if a solution can help me avoid going over my project budget, the $13 is well worth the investment.

No comments: