Why a Software Developer can be a Business Analyst – 15 Reasons

 

 

 




So, you’re a Software Developer with some respectable experience in the field of Information technology and with an inclination towards Business Analysis and allied practices. Although you wanted to foray in the analysis domain but are discouraged by remarks like “Developers cannot become BA’s” “We don’t have that skill-set”, “You need a specialized college degree to become a Business Analyst” – and you are convinced that Business Analysis is not my cup of Tea.

Hold On. Don’t get dejected by such half-baked comments.

We are going to discuss 15 solid reasons that even a Software developer can be a business analyst if he has accumulated the required set of skills and is ready to put in the hard work required to hone his craft.

A software developer can have any of the following designations/roles:

  • (Senior) Software Engineer
  • (Senior) Software Programmer
  • (Senior) System Developer
  • Java Software Engineer
  • (Senior) Database Administrator
  • (Senior) Technical Consultant

We are going by the premise that the developer has worked on for an average of 3 years on a technology/set of technologies developing quality software, have completed at least two projects from initiation to closure and have built a strong technology skill-set along the way. Now, let’s see why you have in you what it requires to be a business analyst.

 

Reason 1 – You hold an experience in the field of software development and information technology

As a software developer you typically work in an Information Technology organization where you research, develop and program new software products. You are not only aware of but have an experience working with:

  • Project management processes – Project Initiation (Kick-off), Project Planning, Project Execution, project Closure
  • Software Development Life Cycle (SDLC) – Waterfall Model, Iterative and Incremental Model, Agile Software Development, Extreme Programming, Lean Development
  • IT Departments – Information security, Technical support, Networking, Database Administration, Software Development and Quality Control

Although you though that today everybody possess these basic knowledge however you will be surprised to know that many fresh MBA graduates don’t know much about technology and obviously have no experience working in a professional environment and workplace – You see, you have a very evident edge over a lot of professionals whom you thought were more capable of being a BA!

Common skill between you and a BA: Ability to understand IT and software development language and communicate in technological terms.

 

Reason 2 – You possess an understanding of the business requirements

Any developer just can’t start working on any piece of code until and unless he has a knowledge of what is the actual requirement, what is supposed to be the output of the code, who inputs the data to the code and what data needs to be inputted, what are the different interfaces to this feature, how the functionality is expected to perform – all the features/functionalities that provide value to the client when they are satisfied are called ‘business requirements’ and developers spend a fair amount of time perceiving them.

Understanding business requirements, ability to see the big picture and appreciate how software solutions add significance to a customer’s business – all these qualities come only when you have an experience working with projects belonging to different domains, customers, sizes and technologies and with experience, even developers become quite proficient in it.

Common skill between you and a BA: Comprehending all the features/functionalities as a whole and envisage them in form of a software solution/product.

 

Reason 3 – You have a hands on experience doing analysis

A typical approach of a seasoned software programmer towards any functionality is as follows:

  • Understand more about the functionality by going through documentation, notes. In case of a big feature, divide it into smaller workable functionalities
  • Design the data structure against the feature
  • Chalk out the rough, high level details/algorithms of how the program is expected to function (pseudocode)
  • Get the hands dirty and write structured and efficient code based on the data structure and algorithms defined
  • Debug and see if the code is working as expected

This is a very prevalent and structured approach towards translating requirements to working functionalities. If you carefully see the steps above, each step require investigation and examination and it’s a logical extend of the previous step – a work involving cautious Analysis. Hey, without your knowledge, you have been developing the analysis skills all along!

Common skill between you and a BA: The work of a business analyst is also similar where they have to be mindful and perform the need of a solution, define the scope of requirements, assess the requirements and then validate the value created by the solution.




Reason 4 – You have a problem solving outlook

Programmers have a very pragmatic approach towards problems – as they have to deal with real world problems they have to have a very practical approach towards it.

Developers, after their initial analysis exercise have to come up with various solutions to the same problem. However, based on the functionality criteria’s defined, some or many of the solutions might not get accepted. Then, they have to come up with other (better) solutions through evaluating alternate scenarios and unconventional thinking.

At the end, the solutions which passes all the litmus tests is accepted and implemented.

The problem solving acumen, ability to understand problems from all aspects, using best practices and process and doing all this within a deadline – this all comes naturally to an experienced developer who has diligently, painstakingly spent hours programming solutions to complex problems.

Common skill between you and a BA: Being open minded, evaluating a problem from all possible aspects and then coming up with unique solutions

 

Reason 5 – You frequently recommend suggestions, enhancements and out of the box ideas

Given the demanding yet innovative environment a developer works in, you are constantly brimming with ideas and new ways to implement functionalities or make the existing systems/functions better, faster and efficient.

Also, since developers have to constantly work on new technologies and have to keep themselves up to date with the latest in their field, they naturally have proposals and recommendations for the things they are working on or codes/functions they just notice that have a potential to improve.

This constant churning of the neurons makes developers come up with unconventional and sometimes, revolutionary ideas – much like what a business analyst does with its customers and their business by suggesting ingenious ways to improve their existing business and bring a positive change.

Common skill between you and a BA: Owing to the diverse, multi-industry and multi-technology experience, ability to come up with ingenious and creative ideas that provide a significant value to the customers.

 

Reason 6 – You possess software skills which even some business analyst don’t have!

While discussing or recommending any software solution, a business analyst have to get in touch with the technical lead/architect to verify the technical feasibility of the proposal. After all, there is no point suggesting something which is too cumbersome to implement and maintain!

However, a developer not only possess the required software skills but have a hands on experience on its application and can ascertain the technical feasibility of solutions all by his own.

Business analyst who have a knowledge of technology are highly sought after and although this skill is not mandatory, this adds a lot of weightage to a business analyst’s suitability for the role.

Common skill between you and a BA: When it comes on to software skills, developers have an upper hand here!

 

Reason 7 – You understand technology and practically breathe it !

When a functional business analyst joins a project, he spends some time with the application development team trying to understand more about the technical stack of the project, the suite of technologies to be used, the basics about those technologies and if required, the boundaries of those technologies. However, there are still cases when a BA cannot answer all the technical questions for his client and in absence of a technical representative, things might sometimes get difficult for him in client meetings.

Now, if we flip the case over and make an accomplished, confident senior developer a Business Analyst professional, he can confidently handle both the functional as well as the technical side of discussions and can even suggest technology workarounds which a functional BA couldn’t have done.

Common skill between you and a BA: Knowledge of technology (although the application knowledge makes a developer even better BA!)

 

Reason 8 – You document your knowledge, issues and thoughts

Developers often have a strong notion that Business Analyst have exceptional documentation skills and are required to perform extensive documentation.

Although this is correct to an extent, however, this should not stop you from being one! After all, even developers know how to perform comprehensible documentation and they frequently author software design documents, technical proposals, knowledge transition documents and various other kinds of written pieces of technical content.

Thus, even developers have a background in documentation and it’s not a completely new skill for them altogether – they only to improve their written communication, upgrade their documentation skills and take it to a more professional level.

Common skill between you and a BA: Prior experience in Documentation and an eye for detail.




 
Reason 9 – You have participated, contributed and lead meetings

Developers conduct a lot of meetings within the development team, actively participate and even lead them – Technical Implementation discussion, transition discussions, clarification calls, knowledge transfer sessions, code walkthrough and what not!

But when they are asked to be a part of client’s calls or show and tell sessions, most of the developers start to have sweaty palms. The rationale – We don’t know what might be asked, what if we are not able to fully express ourselves, what impressions we are leaving and what everybody might think of us?

Believe me, it’s not your knowledge or skills that is holding you back. It’s your own fear. Fear that gets strength because you don’t have confidence on your own capabilities. The sooner you are able to slay that fear and suppress it by giving yourself more chances to face the crowd, the better are your chances becomes to the Business Analyst you adore.

Common skill between you and a BA: Verbally communicating your thoughts, suggestions in a group setting and leading discussions.

 

Reason 10 – You clarify your doubts, issues and bottlenecks situations by asking questions

There is a quote by Voltaire which says “Judge a man by his questions rather than by his answers” and it’s so very true for a software developer!

After reading the business requirements/use cases and going through the technical specification documents, a developer puts forth his queries, concerns and clarifications. Given the keen, detail oriented outlook of a developer, sometimes this exercise exposes scenarios and situations which even the business analyst/subject matter expert (SME) have overlooked – It’s this very quality of a developer that makes him capable of standing next to a business analyst

Common skill between you and a BA: An inquisitive outlook to understand and clarify all the doubts and being very vocal in approach.

 

Reason 11 – You have given presentations, demonstrations and show and tell sessions

Fear of facing a large group of audience is one of the most common yet one of the most daunting fear to overcome and that’s sometimes the very reason that is holding many skilled developers from being a business analyst.

Consider this, as a developer you participate in Knowledge Transition sessions where you comfortably share your expertise with fellow developers, you give functional presentation within your team, you give technical sessions of a new piece of language you just mastered and you give live application demos showcasing the flawless code and respective application you have developer. Now, if you can do all this then what is stopping you to go and do the same with a client?

I will again re-iterate, developers have a very similar skill-set and a huge potential to foray in the field of analysis, they just need to come out of their comfort zone of proving themselves amongst familiar faces.

Common skill between you and a BA: Presentation skills and ability to get a buy in for your suggestions and ideas

 

Reason 12 – You review and assess the technical/functional documents handed to you for development

No developer starts to write the code the moment a requirement is explained to him. Time is spent on:

  • Understanding what exactly needs to be done by studying the reference functional documents
  • What are the interactions and integrations required for the same
  • Is this technically feasible?
  • How much time will be required (estimations)
  • How best can this be coded?
  • Is there a more efficient way?
  • Are there are bottleneck/conflicting situations?

And so on and so forth…

Noticed the assessment and review that went into doing the above exercise? So, it’s not only the BA’s that do all the analysis, even the software development community perform a lot of evaluation (without even a business analysis certification) and study and develop a knack for it as their experience and exposure grows.

Common skill between you and a BA: Research, analysis and decision making skills

 

Reason 13 – You conduct root cause analysis and debug your malicious code

Analysis is one of the key skills of a business analyst and I want to instill confidence in the developers out there that even they have a very strong foundation in analysis and even perform them as often as the analysts themselves.

When you find an issue with your code and you need to debug the same, there are two ways it could be done – first approach is a try-and-decide approach where you execute every section of code, see its result and then decide whether it’s malicious.

Another more structure approach widely used by seasoned developers is called root cause analysis (RCA) where you determine the possible causes of a problem by asking logical, open ended questions and then narrow down to possible causes.

Common skill between you and a BA: Ability to solve the actual problems (and not the symptoms) by conducting structured analysis by using techniques like ‘5 Whys’ and ‘Cause and Effect Diagrams’.




 
Reason 14 – You work with requirements models and data flow diagrams

Drawing models, prototyping and requirements modeling is a skill that is quite useful to an analyst since using these he can convert any technical, intricate concept into an easy to grasp, visual representation – quite an aid when most of the times you are dealing with business audience with limited technical knowledge.

Now, this skill is not something which should be new to a developer since he also creates a lot of models during the course of a typical application development project. To name a few:

  • Entity Framework Model
  • Data Model
  • Business Framework
  • Data flow diagrams
  • Class diagrams

Common skill between you and a BA: Capability to visualize information in simple, visual format and knowledge to publish the same in form of flow diagrams and models.

 

Reason 15 – You are a SME on a specific tool or have expertise on a particular Domain

In some specific domains like insurance/banking, organizations prefer having somebody who has a prior experience and knowledge of that domain rather than hiring a functional analyst. These specialized analysts or Subject Matter Experts (SMEs) already knows the domain well in advance and can perform requirement elicitation and analysis from the word Go !

A developer who has spent a considerable amount of time in a particular project or industry has amassed a lot of knowledge about that line of business and knows the ins and outs of the complete domain is a very strong contender of being a SME. At times, given their status as a ‘go to’ person within the project/industry, senior developers are given preference even over a senior business analyst!

 

Final Word

As a developer, always be aware of the business problems you solved and how you brought a positive change to a process/organization/industry.

Next, learn what to include in your resume to grab the attention of the hiring managers and interviewers..