Current job: Working as the lead business analyst for a Big 4 firm, leading a team of developers and testers working on a large scale re-platforming project (4 onshore dev, 4 offshore devs, several onshore/offshore testers).  Also work in a similar capacity on other smaller scale projects.Extent of my role: Gathering/writing out requirements, creating functional specifications, designing the UI (basically mapping out all front-end aspects of the system), working closely with devs to communicate/clarify requirements and come up with solutions when we hit roadblocks, writing test cases (and doing much of the testing), working with senior management and key stakeholders, managing beta testers, creating user guides and leading training sessions, providing key technical support.  I also write quite a few macros in Excel using VBA (several of my macros are now used across the entire firm, so there are maybe around 1000 people using them) and use SQL on a daily basis, both on the SQL compact files the program relies on, our SQL Server data and any Access databases I create.  The developers feel that I am quite good in this role because I understand a lot about programming, inherent system limitations, structure of the databases, etc so it's easier for me to communicate ideas and come up with suggestions when we face problems.What really interests me is developing software.  I do a fair amount of programming in VBA and have been wanting to learn C# for awhile (the dev team uses C# - I review code occasionally for my own sake but have not had any practical experience using it).  I'm interested in not just the business process but also the technical side of things, so the traditional BA role doesn't really whet my appetite for the kind of stuff I want to do.  Right now I have a few small projects that managers have given me and I'm finding new ways to do them (like building custom Access applications), so there's a bit here and there to keep me interested.  My question is this: what I would like to do is create custom Excel or Access applications for small businesses as a freelance business (working as a one-man shop; maybe having an occasional contractor depending on a project's complexity).  This would obviously start out as a part-time venture while I have a day job, but eventually become a full-time job.  Am I deluding myself to thinking I can go from BA/part-time VBA programmer to making a full-time go of a freelance business (where I would be starting out just writing custom Excel/Access apps in VBA)?  Or is this type of thing not usually attempted until someone gains years of full-time programming experience?  And is there even a market for these types of applications amongst small businesses (and maybe medium-sized) businesses?
Am I deluding myself? Business analyst transition to programmer
freelancing
No, you are not deluding yourself, it can be done! One of the guys here did that, though I don't know the details of how but I think he started as an underwriter, became a BA for underwriting interal software development, then somehow transitioned into full-time development. I would guess that he already had a technical background, like you do.It might work better if you try to do it first with your current employer than going it solo. You'd have a lot more support and help. Maybe talk to your manager and ask how you could transition to a development role within the organization, probably on the same team to start off. That way you already know everyone and they know you and what you are already capable of and can help train you further. If you're  really really really lucky, your company will have a budget to send you on courses to catch up even faster.