none
How to communicate to potential developers I want to hire for my Excel VBA system RRS feed

  • General discussion

  • I don't know if this is the right platform for this topic, but I would really appreciate some feedback.

    I have built a customised financial system for a small business that provides services in various locations. The system uses Excel Workbooks and VBA because that is what I was familiar with when I started. I learned programming years ago in university and had a career in finance that required frequent programming both independently and in a team environment but I am not a programmer per se.  In the space of only 3 years this system has helped to  transform the business into a  successful enterprise and I am now doing succession planning, trying to find someone to replace my role. But I can't seem to communicate effectively with potential candidates for my replacement.

    The main purpose of the system is to track receivables and payables in a wide variety of billing and payment arrangements for our business. There is other very customised functionality as well. Financial transaction data is coming from many sources.

    In terms of succession planning I am having trouble explaining my system approach to prospective candidates  to take over my programming responsibilities. We are not currently working with a relational database even though I am told that is the more modern approach. At any point we are only working with about 10,000 rows of excel data which I store in 3 flat excel workbooks and use import and export procedures I have written to manage the data together with cloud computing. Three accounting staff use my system to manage the data and reporting from the 3 workbooks. Old data gets archived. It works fine.

    I hired one person for the purpose fine tuning some elements of the system. He was extremely dismissive of the fact we are not using a relational database approach like SQL and yet he made no effort to understand my approach to the system and quit after only a few months. When I tried to coach him, he refused any advice I offered. When I looked at his programming, I felt his skills were not up to scratch and his apparent confidence was just bravado. I am currently re-writing his programs to make them readable and efficient.

    When looking for a successor, I would entertain a transition to a more modern platform, if someone could explain the advantages to me. But I would want that person to first learn the existing business and system backwards and forwards and I feel this could take 3 years. During that time they could continue to fine tune the existing system and write out systems specs for new system and figure out ways to outsource future development and or system maintenance work.

    When candidates for the role act very superior because my system does not incorporate a relational database, I feel like they cannot possibly understand our business.  I am having a lot of trouble communicating my needs to prospective candidates to take over my role.

    Is there something wrong with my approach to this problem? Why can't I find someone who understands and sees the value in what I have already created and appreciates the need to spend a lot of time with existing system before wanting to throw it all out and start from scratch?


    Batkis

    Monday, December 5, 2016 5:48 PM

All replies

  • hi batkis

    why r u so reluctant to use a RDB? at least you could have a go with Access, where u can still use Macros.

    i belive, this kind of stuff should be done in SQL systems not in Excel. i'm having difficulty in explaining but it just feels so


    Dig your well before you are thirsty

    Tuesday, December 6, 2016 7:42 PM
  • Hi Batkis -

    Your difficulties are not unusual.

    Originally I bypassed your discussion. However, seeing some activity, and ruminating on this some, there are Candidate & Position requirements that are apparent. The requirements have commonality with some of the difficulties encountered throughout the realm of Software Engineering. Much of it has to do with communication and understanding. That takes time that not all persons are willing to commit to for the subject matter. That expectation of time commitment should be stated at the outset.

    The fundamental nature of a developer is to find/think of a feature, add it and move on. Good developers are persistent and great learners. They often are natural puzzle solvers; however, you are not presenting them with a puzzle. Rather, in their mind, you are presenting as a system something that in their mind is a functioning prototype. As a group, developers are looking for something to make better by writing code / defining Db's, making things talk, deliver clearer information. If this drive is not part of the candidates' visceral makeup, then it is not going to be a good fit. You will probably have to get to the point of giving them some degree of autonomy on your 'baby'. That's a hard thing, but it must be done else you can't move on.

    Software Developers like Software. Most do not like maintenance, and abhor repetitive tasks. Frustration beckons when the same problem is encountered more than twice or a person needs to be trained (again) in how to use the tool within the business process. These should be part of the position expectations stated up front. This is not to be confused with using the tools in a new or novel way. Outsourcing development work is not going to be interesting to them; It will be frustrating for the same reason you found your previous developer to be unsatisfactory - the work is not up to standard. If this is really the direction you want, it will require someone who writes Requirements and likes to test. But... why write requirements when you have a functioning prototype? This needs to be clear to all parties upfront.

    Developers are often blunt. If they were great at people skills, they'd be selling the stuff, not writing it. So, in explaining the in-place system, expect direct questions: Why didn't you put in a Relational Db? Why didn't you use the receiving module of xyz software package that seems to be here?... Constraints of time, knowledge and requirements are food answers; if there is no budget, they should know that (most Db's have free versions; your constraint was knowledge). They are learning about the constraints they will have to work within. Please don't make the all too common mistake of being threatened. You have a functioning system, they need to understand it. Your interview is a two-way street: your job requirements and theirs!

    Often Developers are not (yet) subject matter experts, but they will be if they are interested. To even be remotely interested, they ... need a problem of interest to solve. The repeated comment regarding a Db shows it is clear there is an obvious opportunity for the system to be improved (eg - easier maintenance, answer harder questions, improve the business, make data available to many systems, smoother upgrading,...), but possibly an indication that the foundation of the system - Excel + vba - is unfamiliar to the developer, or the candidate has one tool to satisfy all problems. They might not know how to get from where you are now to the nirvana in their mind!

    I would be very nervous if you were not getting the Db question.

    You might want to split the responsibility for advancing the system from the day-to-day responsibilities of just making the system work. That may require 2 part-time people.

    -J

    Wednesday, December 7, 2016 12:12 AM
  • I have used Access and found it very limiting compared to my approach which I find very dynamic and flexible. If Access is a simple example of an RDB I am not impressed. Our business has very complex financial arrangements. They are constantly changing. I find Excel Structured tables far more flexible for my purposes.

    However, if someone could explain the superior qualities of an RDB in a context that is relevant to our business, I would like to learn more about that.


    Batkis

    Wednesday, December 7, 2016 2:22 AM
  • thanks for your response. That is very helpful though not very encouraging. I think budget constraints are a big issue. I can't see how 2 part time people or 1 full time person will be sufficient. That is why I want major development outsourced. The person or company to which it is outsourced could also help if we need some kind of recovery procedures. They could be contracted again if we had urgent issues that required more resources to solve.

    I am very concerned about key person risk.

    When I talk to other companies that use relational databases, I hear of all sorts of problems with significant down time.


    Batkis

    Wednesday, December 7, 2016 2:28 AM
  • I don't know if this is the right platform for this topic, but I would really appreciate some feedback.

    I have built a customised financial system for a small business that provides services in various locations. The system uses Excel Workbooks and VBA because that is what I was familiar with when I started. I learned programming years ago in university and had a career in finance that required frequent programming both independently and in a team environment but I am not a programmer per se.  In the space of only 3 years this system has helped to  transform the business into a  successful enterprise and I am now doing succession planning, trying to find someone to replace my role. But I can't seem to communicate effectively with potential candidates for my replacement.

    The main purpose of the system is to track receivables and payables in a wide variety of billing and payment arrangements for our business. There is other very customised functionality as well. Financial transaction data is coming from many sources.

    In terms of succession planning I am having trouble explaining my system approach to prospective candidates  to take over my programming responsibilities. We are not currently working with a relational database even though I am told that is the more modern approach. At any point we are only working with about 10,000 rows of excel data which I store in 3 flat excel workbooks and use import and export procedures I have written to manage the data together with cloud computing. Three accounting staff use my system to manage the data and reporting from the 3 workbooks. Old data gets archived. It works fine.

    I hired one person for the purpose fine tuning some elements of the system. He was extremely dismissive of the fact we are not using a relational database approach like SQL and yet he made no effort to understand my approach to the system and quit after only a few months. When I tried to coach him, he refused any advice I offered. When I looked at his programming, I felt his skills were not up to scratch and his apparent confidence was just bravado. I am currently re-writing his programs to make them readable and efficient.

    When looking for a successor, I would entertain a transition to a more modern platform, if someone could explain the advantages to me. But I would want that person to first learn the existing business and system backwards and forwards and I feel this could take 3 years. During that time they could continue to fine tune the existing system and write out systems specs for new system and figure out ways to outsource future development and or system maintenance work.

    When candidates for the role act very superior because my system does not incorporate a relational database, I feel like they cannot possibly understand our business.  I am having a lot of trouble communicating my needs to prospective candidates to take over my role.

    Is there something wrong with my approach to this problem? Why can't I find someone who understands and sees the value in what I have already created and appreciates the need to spend a lot of time with existing system before wanting to throw it all out and start from scratch?


    Batkis

    "I have built a customised financial system for a small business that provides services in various locations."

    Well perhaps you should hire a programmer to rewrite your customized financial system so it uses newer methods. Unfortunately you don't have the skillset for those and therefore you would not be able to keep up with a newer method application if the programmer leaves, etc and especially if the program is poorly documented and not well written. And programmers are expensive typically.

    "Three accounting staff use my system to manage the data and reporting from the 3 workbooks."

    I find it difficult to believe enough money could be made off a program that only three accounting staff use which could provide income to source a programmer for.

    And as far as a programmer understanding a business then prospects should provide appropriate information for businesses they have programmed for, what they have programmed for the business, etc. So that you can select appropriate prospects to interview.

    If you want somebody that writes Macros or something for Excel, perhaps all you use is Excel with Macros as you don't really provide much insight into your "system", then that really isn't the same as a programmer per se IMO although apparently that is consider a programming job. INDEED - Excel Macro Programming

    Also there are numerous websites where job postings can be provided or possible programmer candidates can be viewed from reading their resumes as necessary.


    La vida loca

    Wednesday, December 7, 2016 2:59 AM
  • Small business... I kind of 'smelled' budget being a bit of a constraint. Certainly why you wouldn't sign somebody to sling code at an undefined problem right away. For succession planning, you will have to face that you are wearing at least 3 hats: Business Decision Maker, System Developer, and System Maintainer. Succession to a single person would be to a very unique person - best case is that it's a team (to get to the 'key person critical point of failure' issue you raised). A few more thoughts and then I will quit chewing n this bone.

    I presume that the system is not broken; rather, you have a list of prioritized features, and you have a limited budget. (Without this, you will drive Developers crazy. They will quit.) It is the classic Project Management conundrum: of Scope, Resources and Schedule, if you change one, you have to make a change to at least one of the 2 remaining. Your feature set represents your scope; what your business can bear in terms of cash and headcount affects the other 2. One useful question then is: "What happens if no new features are introduced for the next year?". If that is survivable for the business, then you have a window to fid and train your 'System Maintainer', responsible for keeping the system running, data clean, personnel trained. This person then assumes the role of Subject Matter Expert to whomever is developing the new feature set.

    One other issue you may have hit head on is that vba <> VB.Net. Your Excel table models may be imperfect, but they are golden. However, chances are the actual relationships are in the vba and defined names; hence unintelligible to a typical Db/VB.Net/C# person. They have no idea where to look.

    Yet, you have captured the essential relationships needed to solve the problem at hand and lower the risk of an under/over-designed Db. Often poorly understood relationships are the root of Db problems. So, understanding data relationships (not just Db's) is an essential skill for any entity doing further development.

    Since Excel has the capability to use external data, that may be a baby step forward and afford you the opportunity to explore the good, the bad, and the ugly with minimal business impact and cost. I like to start with SQL Server Express fulfilling a role to provide selection lists only. Properly setup, is much simpler to implement than Access.

    Wednesday, December 7, 2016 5:27 AM
  • Thanks MainSleuth, that is very helpful.

    Clearly from the responses to this post, I need to have very clear explanations of what is attractive about my existing system and yet also how I see long terms plans to upgrade it. It was interesting that Mr. Monkeyboy was sceptical about the profit in our business. Similar businesses require many more accounting/admin staff to do what I have only 3 staff do and this is what the system enables. Please note that many other staff (the ones providing business services that generate the profit) provide data to the system. I have determined that the profit is sufficient to hire a programmer/systems strategy person and then outsource some development work.   The person I hire must see the value of the existing system in order to commit the effort and time needed to make the very specific improvements that are needed to keep it functional while we make long term plans for a more major upgrade. I have to work on articulating the value of what I have to teach someone in order to get buy in from the person I hire.

    Yes definitely, the person I am looking for must wear many hats which is basically what I do. I need a person who sees that as an attractive opportunity. Someone who feels that just coding is "been there done that" and is interested in acquiring some business skills and so does not mind thinking about ways to outsource technical work when we want to make substantial changes. I need to engage this person in a dialogue where they appreciate how important it is to understand the business in order to design a future platform and that this is actually a very challenging and interesting feature of the job. I like how you put it "understanding data relationships".

    As for now, I am very clear on what technical projects would improve the existing system. I want these done before any major upgrade. The existing system is not broken, but a wide variety of minor changes will make it much better. These projects should also help someone understand data relationships. Anyway, thanks for giving me an opportunity to think out loud so to speak and to get other opinions of this enterprise... good or bad.


    Batkis





    • Edited by batkis Wednesday, December 7, 2016 11:49 AM
    Wednesday, December 7, 2016 11:41 AM
  • Batkis -

    Glad to have been part of a sounding board. Facts can be a little brutal. Minor changes to a functioning system are a good way to bring somebody up to speed. Maybe an Excel Power User found in a Finance/Accounting staffing forum. As my Security Prof said almost 25 yrs ago: You have to make big changes in baby steps, otherwise the whole business is jeopardized.

    Best wishes to your success

    -J


    • Edited by MainSleuth Wednesday, December 7, 2016 3:55 PM
    Wednesday, December 7, 2016 3:54 PM