I recently started a new job (software development) with a much richer business domain than my workplaces for the past few years. I'm wondering, what's the best way to figure out the domain?

EDIT: In an attempt to focus this question, I want to focus on business processes.

Some clarifying details: The company has several main software applications that it sells to clients, that are modified to suit clients needs (this is part of the business model), and I will be working with multiple clients. There is an intranet that isn't very easy to use, and seems specific to App Development, and a Yammer, that is more general to the parent company.


3 Answers 3


I've been in a similar position before, good on you for realizing the importance of learning the business domain! It's what makes the difference between someone who simply completes tasks, and someone who generates new ideas and value for the company.

Here's what helped me:

  • Meet the users -- they'll be able to show you what they expect from your product and their typical usage. If this isn't possible, get a demo from someone in your company. Good choices would be marketing people (can tell you the sales pitch and how the product fits into the industry), and senior technical folks (will know its history and future plans from a high level).

  • Attend talks, if your company holds them. This is another great way to ask questions and learn more about what the company does.

  • Functional tests are a great idea! It gets you inside the head of a user, in a very detailed way.

  • Read the user manual. If there's a tutorial, follow it. Ask questions if you don't understand what a button does or why it's there (hopefully, it's a gap in your domain knowledge, not a gap in the manual!).

  • Talk to your coworkers. Don't be afraid to ask questions about what they're doing, even if it's not related to your current task. You might be working on that feature later on, or they might have an insight on yours.

  • Read your emails from corporate. A lot of people ignore all-hands announcements, but they're a way for HQ to communicate their priorities to you. Pay attention to what gets recognition and which teams get awards -- that's the sort of stuff you want to be doing.


When I set out to learn a new business domain, I ask questions of many people including:

  • Users
  • Business Analysts
  • Account Managers
  • Managers
  • Project Manager
  • Data specialists
  • Application developers

What I do is take a chunk of the information related to the first thing I need to know and thoroughly explore it. I find out where things are in the database, I find out who has responsibility for what, I find out where in the user interface you can find the information and how that information is csent to teh application. I review stored procedures, reporting queries, imports and exports related to the subject at hand. I ask questions like:

  • What do they use the data for
  • Where in the application do they find the data
  • How do you use the application? What is the workflow?
  • Have there been any major changes over time
  • Are there laws or regulations or accounting practices that have to be followed
  • Is there a User Guide

I repeat the process for each new area I need to explore. Critical things to remember are to retain the information. (If you don't retain it in memory as I do, then retain it in documentation somewhere and review the documentation frequently.) This is not learn and forget stuff. And then make connections as you learn both to your past experience and to other parts of the system.

Always be aware that you are looking for the meaning of the data not just where it is stored or used. But why you have that data and what people expect to get out of having it. In a complex environment, be especially concerned to find out if there are legal/regulatory reasons for having the data. That data needs to be handled much more carefully.


Coming from a Business Systems Analyst / QA Analyst and now a SQL Developer with 10+ years exp in Software Development, I may offer some advice on how I maximize my opportunities on a new workplace. I apply these principles in everything that I have to learn new. Not just a new job, but any new technologies or challenges that I come across with. There's a lot more to be said but these are the ones that helped me the most. In a matter of weeks, I am caught up to speed with the most important processes. Of course, not everyone here may agree.

  • Mimic actual business process in DEV/Test Enviroment Grab the most common business practices and processes and try to do them on your own with the mindset of a user. Call / interview critical users that will give guidance to what they do day to day. This will give you a perspective on the limitations and strong functions that works for the business. This has helped me tremendously to understand "what works" vs "what doesn't work" vs "what can be improved in the future". This has forced me to map out every business requirement/process to understand the blood flow of a business.

  • Test in Dev Envionment Play around in a mirror test environment to get familiar of IN and OUTS of the major systems. This has allowed me to understand components, functions, batches that crucially support our business. I spent my first week doing this while reviewing documentations and interviewing key employees.

  • Open / Review previous projects that were already deployed I review projects that were already completed by my team and understand their accomplishments with their perspective. I interview my team and ask them if there's anything that they could have done differently or improved on their project. Key players that helped and key players that they had to learn to work with.

  • Take advantage of low hanging fruits Get your feet wet in the first day by taking low hanging fruits task in your new environment. Whether its a simple update, code change, test, simple query, take it. I would suggest that you ask your new co workers if there's anything you can do to help them. This has allowed me to get an airplane view of my own internal team and what they do that makes them successful.

Good luck and CONGRATS. It's a big accomplishment. Enjoy your team :-)

Not the answer you're looking for? Browse other questions tagged .