I'm a Business Analyst who moved into the role based on my business knowledge and as a result, have no hands-on technical skills. Now that I'm working with so many programmers, I would like to learn what they do without becoming a programmer myself. Any suggestions?
First, thank you for your email. Also, I applaud your desire to learn more about the profession of those you work with. It will help you be a more effective Business Analyst because you will understand both sides of those you work with, namely the business and the IT. As an aside, for those of you reading this blog who became Business Analysts from a programming role, I would suggest the same to you in reverse. That is to say, you should learn as much as possible about the business area you are supporting.
To your question, yes, there are a number of things you can do to gain an understanding of programming without actually becoming a professional programmer. The goal for you is to gain an understanding of:
- Terminology related to the technology used by your programmer counterparts.
- How software is written, stored, compiled and executed.
- The business and technical challenges facing your software development team.
- How test cases are written, performed, documented and communicated to the software developers for bug correction.
- How software is moved from development/test into production.
This may sound like an overwhelming list of goals, but it's not. Remember, you don't have to learn how to do it, you just have to learn how it works.
To realize these goals, I suggest you take the following steps:
- Speak with the software development manager to learn what technologies are used within his/her department. For example, are they programming in .NET, Java, PHP or other technology. During this conversation, tell the software development manager you will be back with additional questions once you have done some homework on their various technologies.
- Gain a general understanding of the software technologies used within the software development process as described/listed during your conversation with the software development manager. This knowledge can be gained in one or more of the following ways:
- Look on YouTube for introductory videos on each listed technology.
- Attend a free online MOOC class on the technology and attend just enough class sessions to gain a general understanding of how each programming language is used.
- With your new-found knowledge, ask one of the programmers you work with for a one hour lesson on how they use the programming language and its related tools (source code control, programming environment, etc.) to create needed software.
- Speak with the software testing manager regarding what technologies and techniques they use to test the developed software and how they communicate the bug list back to the software developers.
- Ask one the software testers if you can spend an hour with him/her to show you the software testing process. This should include:
- The overall testing process
- How test plans are created
- How test cases are written, executed and recorded
- How bugs are tracked and retested after program correction
- Meet again with the software development manager, describe what you have learned and ask him/her to fill in any holes in your knowledge that he/she thinks would be advantageous for you to know.
When going through this process, also try to gain an understanding of what you can do as a Business Analyst to enhance the productivity of the software developers and testers you work with. This could be done by slightly modifying the requirements documents you create, including the developers and/or testers in key requirements meetings, having a developer kick-off meeting with the programmers to give them a walk-through of the requirements document, or whatever else they suggest would be to their advantage.
In closing, I think you will find that your newly acquired technical knowledge will be appreciated by technologists you work with and will help make you a more effective Business Analyst.
Until next time, work hard, work smart, and continue to build your professional brand.