Wednesday, March 13, 2019

Sitecore Experience Editor Walkthrough

 Well, we’ve come to the end of the road for this series. I hope that you’ve been able to glean some nuggets and increase your proficiency in the use of Sitecore. If this is your first article, I recommend you visit the index page that lists all the posts in the Productivity Tips for Sitecore Content Authors and Experience Marketers.

So let’s get to the meat of this topic, shall we?

The Experience Editor, Sitecore’s on-page editing tool, gives content authors and marketers the ability to update multiple components and content items in a single place. This is made possible because of Sitecore’s powerful component architecture.

With Sitecore’s Experience Editor, productivity is greatly increased as you do not have to search through a vast Content Tree to find the content you want to edit, you simply go to the page and make your edits right on the page. Once your changes are done, you can save and publish them to make them visible to the public.  

The Experience Editor is also where many of the personalization features or the customer experiences are crafted and maintained. Marketers can simulate visits and see how their personalization rules impact content and the user experience before deploying them. 

Getting Around 

When in the Experience Editor, navigation can be a bit tricky since links can also be editable content. To assist you with getting around, Sitecore provides a Navigation Bar.

Click on View in the menu and check the Navigation Bar checkbox.

Search in the Experienced Editor 

When you search for an item in the experience editor, Sitecore will navigate you to the item if it is a “page”. If not, Sitecore will produce the following error.

Simply click the Back button (1) or the Launch Pad button (2) to return to somewhere more familiar. 

Create a page in Experience Editor 

  1. Log into Sitecore and click on the Experience Editor icon. 
  2. Use the Navigation Bar to open the About Habitat page 
  3. Click Insert Page from the Home ribbon. 
     
  4. Choose the Article template, give your new page a name and click the OK button to complete the creation process. 

After a few moments, a page will be created with the default HeaderNavigationLeft NavigationContent Body, and Footer sections. Specific page content is added using the content placeholders.
 

Find the page in the Content Editor 

Even though the page was created in the Experience Editor, it is available within the Content Editor at the same location in which is was created; namely under the About Habitat page.  

  1. Switch to the Content Editor by first clicking the Launch Pad icon in the top-left corner and then choosing the Content Editor option. 
      
  2. Type the name of the page you created into the Search box, and press Enter or click the magnifying glass (search) icon. 
  3. You should see the page in the Tree (#1) as well as the Content Work Area (#2). 
  4. You can click the X to close the search filter.
  5. You should now see the full Content Tree with your page selected. 

Explore Mode 

In Explore Mode, Sitecore gives you tools where you can test your personalization settings to ensure they work before publishing them live. It can also be used to simulate scenarios before you actually implement them. 

  1. From the Experience Editor’s Home ribbon, click the OTHER button (I know…it’s a really bad name for a button). 
  2. Choose the Explore option. 
  3. Sitecore overlays two new panels; one to the left and the other to the right of the screen. You should see two arrows on either side of the screen which open and close the panels. 
  4. The visitor Journey Mode panel is on the left. This is where you craft your tests/scenarios.
     
  5. And the Experience Viewer panel is on the right. As the name suggests, it’s where you view the results of your tests/scenarios.

Here are the before and after screenshots of a section of our sample website. The after shows the personalization that was triggered when our visitor achieved the “tweeted” goal on our website.

Before the Goal is achieved:

After the Goal is achieved: 

To simulate the goal, I opened the Journey Mode panel, clicked on the Goals tab, selected the “Tweet” goal and clicked the Apply button.

There are literally an unlimited number of variations you can run, so we recommend you “explore” and simulate until your heart’s content.

Tuesday, March 5, 2019

Back to Basics - How to Set up a Sitecore Helix Solution from Scratch

It can be hard to explain what Helix is, to non-developers and developers alike. Illustrative of this fact is the ambiguity of the appropriate preposition; do you develop with Helix? In it? Is it something you buy and need a license for? (No.) Is it a philosophy? Can anything be Helix with the right attitude? (Also no.) Some of the confusion comes out of it having a proper name. Phil Wicklund and Jason Wilkerson in Professional Sitecore 8 Development make the wise choice of simply referring to it as “Sitecore Modular Architecture.” That’s precisely what Helix is: an architectural configuration for Sitecore solutions based on modularity.


Helix streamlines development by systematically managing dependencies. In practice, this method involves multiple visual studio projects within a single solution, with some of these projects acting as a base for others. There are three “layers” to a Helix solution: the foundation layer, the feature layer, and the project layer. What goes in these layers may vary from project to project, but a useful way to think of it is this: the project layer contains your front-end web code (layouts, styling, etc), the feature layer contains your components, and the foundation layer contains code and features at the core of your project.


In this post I aim to walk you through the steps necessary to create a Sitecore Helix project from scratch, utilizing best practices. Sitecore has the popular Habitat project available for download and perusal, which I encourage you to do. However, think of this blog post as a cooking show and Habitat as the already-made dish sitting in the oven. I want to show you how you get from here to there. By the end of this post you won’t have something as complex as Habitat, but you’ll have a web page with a component on it created with proper Helix methodology. In future posts we’ll build on the work we’re doing here. So let’s get started!

Basic Sitecore Setup

First you’re going to need to install an instance of Microsoft SQL server. The particulars of that setup are outside the scope of this post, and each version of Sitecore has different requirements as to which version they can work with (Sitecore 9.x, for example, requires SQL server 2014 and up). You can find the appropriate version of SQL server for your version of Sitecore in the Sitecore Compatibility table. For this project I’m using SQL Server 2014 SP2 for Sitecore 8.2. When you set up SQL server, make sure you run in mixed authentication mode (or SQL Server and Windows Authentication mode) and that the sa account is enabled and you know the password. You’ll need it for Sitecore setup.


Next you’ll install IIS if you haven’t already. You can actually do this without downloading anything by going into Control Panel, then to “Turn Windows features on or off,” and selecting Internet Information Services. Make sure you include ASP.NET 3 and 4 when setting this up. My version of Sitecore (8.2) requires the .NET Framework 4.5 to run correctly, and I had to download it and install it from Microsoft to get Sitecore to work.


Once you have that installed, you can install Sitecore. I imagine many of you reading this will already be working with a version of Sitecore and will have bought a license. In fact, you need a license. In any case, here’s Sitecore’s download page. The setup is fairly straightforward and requires your SQL account username and password. You can also set it up through Sitecore Instance Manager, which is a handy tool. Make sure you remember where you install Sitecore - it’ll be important for publishing later on! The one obstacle I ran into that I’ll mention is that I needed to enable user permissions for IIS for the folders inside the wwwroot directory. After you run through this you can launch Sitecore!



Aside from SQL Server, Sitecore requires another kind of database: MongoDB. This software handles all the user tracking information. You can check which version of Mongo you need on the Sitecore Compatibility table. Parts of your site may not work without it, so make sure to follow this step. The setup is extremely simple and you most likely don’t need to do anything other than install it on your machine. The previously-mentioned Sitecore Instance Manager also makes installing it a breeze, which can be done through its “bundled tools” menu.

Before we can get into setting up a Helix project, you need to take the crucial step of setting up Visual Studio. If you don’t have it installed already, go ahead and do that, and make sure to include the libraries for ASP.NET, web development projects, and MVC. Once Visual Studio is installed, it’s time to create a Sitecore solution.

Setting Up the Helix Solution

In Visual Studio, we’re going to create a blank solution. Navigate to where you want to create your repo in the file structure. I suggest locating the solution somewhere not far from the disk you’re using. In this case, I’m using C:\Repos\TGBlog\. After doing so, right-click on the Solution in the solution explorer in VS and create four new solution folders: Foundation, Feature, Project, and Configuration (I’m calling mine _Config). Three of these correspond to our Helix layers and the config folder will eventually contain some necessary files to tie it all together.



In the file structure where your solution file (.sln) is located, create a \src\ folder. WHY? This is just Helix convention, but the \src\ folder will also be used later for gulp.js setup. Go ahead and create the same folders with the same names in your \src\ folder in the file explorer. WHY? When you create new projects in Visual Studio you’ll browse to these folders. You can also create the paths when you create a project and the folders will be created automatically.

Making a Module in Helix



Now it’s time to add some meat on these bones and add a project to our Helix structure. Let’s make a Feature project first. Create a new folder in VS with the name of your first feature - in this case, call it BasicContent. You can then either create a corresponding folder in the “feature” folder under /src/ in the file structure, or append the project name to the location path in the Add New Project window in the next step to have it made automatically. Right-click the BasicContent folder in Visual Studio and add a new project. You’re going to select a new ASP.NET Web Application. When you create a new project in Helix, you’ll initially name it “code”, then rename it in VS to the Helix standard. WHY? Helix project convention specifies that in the file structure on disk, all of the code should be in a “code” folder underneath the folder with the module name. Naming the new project “code” will place all the project code in the right place.



Before we rename the project, we need to finish making it. In the next window that comes up, select an Empty project and check the “MVC” box to add the proper folders and core references. Click OK and you’ll then have a new ASP.NET project in the right place. There are some things in this project you don’t need - go ahead and delete Global.asax and the App_Start and App_Data folders. Then add an App_Config folder. There are also two Web.config files in this project, one in the root and another in the Views folder; open the properties of these and set “Build Action” to “None” and “Copy to Output Directory” to “Do not Copy”. Doing so will prevent these files from messing with the solution as a whole.


Now we’re going to rename the project to the Helix standard. The naming standard is fairly simple, and divided by periods like a namespace. The first part of it is “the overall customer, partner, or solution name.” In my case, it’s TGBlog. The next parts correspond to where the project lives in the solution structure. This project is in the Feature Layer, and we’ve named the module BasicContent. So we’re going to rename our project TGBlog.Feature.BasicContent. We’re actually going to do this in three different places. First, right-click the project, currently named “code,” and click properties. Change both the Assembly name and Default namespace to [YourSite].Feature.BasicContent. Simple. Finally, right-click the project again and rename “code” to [YourSite].Feature.BasicContent as well.

One more crucial step: in the Web.config file in the Views folder, make sure you remove the reference to the “code” namespace, as this can mess up your renderings. While you’re there, add a reference to Sitecore.Mvc, as this will help IntelliSense recognize your Sitecore HTML helpers. Also go ahead and change the version number of System.Web.Mvc to be the correct one for the project.



Next, you’re going to add Sitecore packages from NuGet. (Before doing so, you may need to add the official Sitecore Nuget feed to VS, as outlined in this helpful blog post by Jeremy Davis.) Right-click the project to manage NuGet packages, and add Sitecore.Kernel and Sitecore.Mvc. Make sure you choose the correct version of Sitecore for each package before you install them (I’m using 8.2.180406). I also like to choose the .NoReferences versions of these packets, just to streamline development.


Next, highlight all of your references in the project. In properties, set “Copy Local” to false. Doing so will prevent your production .dlls from being overwritten and potentially breaking the site.

Making a View Rendering

For this example we’re going to create a simple view rendering, as the intricacies of MVC are outside the scope of this post. Make a new folder under the “Views” folder in your BasicContent project, then right-click it and add a view. In the window that comes up, name the view “Index,” set the Template to “Empty (without model)” since we’re going to specify a model that isn’t in this project, and check “Create as a partial view,” so you don’t get any of the extra Visual studio template info.



When you create a view, there will be some new junk added to your project that you can delete: A Content folder containing css, a Fonts folder, a Scripts folder, a folder in your Views folder called “Shared” that contains a layout, and a view called _ViewStart, also in your Views folder. Delete it all. Don’t even worry about it.


You will now have a view called Index.cshtml. This is good. Since we’re not getting too into MVC in this post, go ahead and just copy the following code into your view:

@model Sitecore.Mvc.Presentation.RenderingModel
@using Sitecore.Mvc

<div class="content">
    <p class="image-wrapper">
        @Html.Sitecore().Field("image")
    </p>
    <h2>@Html.Sitecore().Field("title")</h2>
    <p class="body">
        @Html.Sitecore().Field("body")
    </p>
</div>

Next, in Sitecore, we’re going to create the corresponding Sitecore Template and View Rendering. Your template is the data model which your Sitecore items will instantiate, and your Rendering is a reference to the code you’re writing in Visual Studio that brings that data to the page.


In the content tree, navigate to Templates. According to Helix convention, there should be folders for Foundation, Feature, and Project under Templates, as well as in a few other places. This organization helps you keep track of your separate modules, but doesn’t affect code. Go ahead and add those three Template Folders under “Templates” now. You can even add unique icons to these folders to make finding them faster, if that helps you. Now right-click your new “Feature” folder and add a new Template Folder, calling it “Basic Content”. Then, right-click that folder and create a new template, calling it “Basic Content” as well. Add a new section (call it whatever), and add three fields: “Title”, of type Single-Line Text, “Body”, of type Rich Text, and “Image”, of type Image.



Next, let’s go ahead and make that View Rendering item. In the content tree, Navigate to Sitecore\Layouts\Renderings. Create three Rendering Folders in here, naming them Foundation, Feature, and Project. Under Feature, create a Rendering Folder called “BasicContent”. In that folder, create a new View Rendering called BasicContent. In the new Rendering item, you’re only going to add to the “Path” field. Add the following line: /Views/BasicContent/Index.cshtml. This path references the views folder in the file structure of your Sitecore instance (mine is at C:\inetpub\wwwroot\TGBlog\Website\). If you navigate to that Views folder right now, you’ll notice that your view isn’t in it. What gives? It’s actually in your Visual Studio solution repo folder (for me, C:\Repos\TGBlog\src\Feature\BasicContent\code\Views\BasicContent). Right now, the View Rendering item in Sitecore references a file that isn’t there. We still need to set up Visual Studio to publish to the Sitecore directory. Before we do that, however, we have a few more steps to do…

Creating the Website Project and Main Layout

To adequately show you the idea behind Helix, we’re going to make another project in our Visual Studio solution now, this time under the Project layer. The Project layer is the tip of our Sitecore Helix pyramid, building upon the Foundation and Feature layers. The code that lives in the Project layer depends heavily on the modules in the other two layers. In this layer, you create your websites. And that’s exactly what we’re going to do.


In our Visual Studio solution, right-click the Project folder and add a new Solution Folder. In keeping with the theme, we’re going to call this one “Website”. Right-click this folder, then create a new project, following the same steps you followed above to create and set up the BasicContent project. I’ll sit here and wait.

Okay, done? Good deal. You should now have a project in the “Website” folder under your Project folder called [SolutionName].Project.Website. Delete the necessary folders and files, set the web.config properties correctly, add the NuGet packages, and do everything else outlined in the “Making a Module in Helix” section above. Then, create a new “Layouts” folder under “Views”. Right-click this and add a new view - this will be our main layout. (However, make sure you’re not using the default ASP.NET layout, as this will add unnecessary elements to your page. Either uncheck the “layout” box when clicking Add->View, or simply add an MVC 5 View Page.) Call it “MainLayout”.



We’re not going to put anything fancy into this layout view. We’re simply going to add a reference to Sitecore MVC, and insert a placeholder for our content into the body. Like so:

@using Sitecore.Mvc
@{
    Layout = null;
}

<!DOCTYPE html>

<html>
<head>
    <meta name="viewport" content="width=device-width" />
    <title></title>
</head>
<body>
    <div>
        @Html.Sitecore().Placeholder("main")
    </div>
</body>
</html>

This should be everything you need for the layout on the code side. In Sitecore, let’s make the corresponding Layout item. Navigate to layout/Layouts in the Sitecore tree, and underneath that create three Layout Folders corresponding to the three Helix layers: Foundation, Feature, Project. In the Project folder, make a folder called Website, and in that folder, make a new Layout. You’ll want to just copy the Sample Layout because creating a new Layout in Sitecore makes you create a layout file in the file structure, and we’ve already done that. So copy the Sample Layout to the Layouts/Project/Website folder, rename it “MainLayout”, and set the path to “/Views/Layouts/MainLayout.cshtml”.

Publishing The Projects

If you’re familiar with the Habitat project, you know that it utilizes Gulp.js to publish all of the projects within its Helix solution. While that’s useful to know how to do, we’re going to save that for a later post. For now, we’re going to take a slightly easier route, so we can see our changes in action immediately.


The first thing you’re going to want to do is back up the Sitecore instance in your web root. We haven’t made any changes to that just yet, and mistakes during this step can mean having to re-download Sitecore and replace your .dlls. Plus, there’s the old programmer adage of “if it doesn’t exist in at least two places, it doesn’t exist.” So go ahead and copy your Sitecore instance.


We’re going to publish these projects, YourSite.Project.Website and YourSite.Feature.BasicContent, individually. The first thing you’ll want to do is go through their respective references and, in their properties, set “Copy Local” for each one to FALSE. This will prevent you from over-writing the .dlls in the web root and breaking your site. In the future you may end up writing more complex modules that require references not yet included in your web root, but what we’re doing right now is pretty basic, so don’t worry about that yet.



After preventing your references from being published, right-click the YourSite.Project.Website project and click “publish”. Now we’re going to create a publish profile and point it at the web root. In the “Pick a publish target” box that pops up, choose “Folder” then browse to the \Website folder in your web root. Both of your projects are going to publish here.


Feel free to rename your publish profile to something more descriptive. When you’re ready, simply press the “Publish” button. You should now be able to see MainLayout.cshtml in the \Website\Views\Layouts folder of your file structure! Go ahead and do the same thing for Yoursite.Feature.BasicContent, creating a new publish profile that points to your web root, then publishing. In your \Website\Views folder, you should see a BasicContent folder with an Index.cshtml file inside. Now the rendering and layout items we created in Sitecore are actually pointing to something! The only thing left to do is put it all together.

Putting it all Together

We’re done coding, so now we’re going to build a page with the pieces we’ve created. In Sitecore, open the Content node. You may want to copy the Home node, because we’re going to wipe it clean. Before we do that though, we’re going to create a Basic Content item. Right-click the Home node, click “Insert,” then “Insert from Template.” Select our datasource template (/Feature/BasicContent/BasicContent), name it “Hello World”, then click the Insert button. We now have a Basic Content item. Go ahead and fill in the Title, Body, and Image fields so we can see the data on the finished page.

With the Home node selected, open the Presentation tab and in the “Layout” section, click Details. This is the Layout Details window, where you build how your pages actually look (if you’re not using the Experience Editor, which you should be, and which we’ll cover in future posts). In the Default configuration, click Edit. You’ll be brought to the Device Editor window, where you can select your Layout and Controls. For the Layout, select Layouts/Project/Website/MainLayout. In the Controls tab, remove everything currently there, then click the Add button and select Renderings/Feature/BasicContent/BasicContent. In the “Add to Placeholder” text box, type “main”, which is the single placeholder we’ve set up in our Layout. Also go ahead and check that “Open the Properties dialog box immediately” box before you click the Select button.




When you click Select, a “Control Properties” window should come up. Here we’re going to specify the datasource of our view rendering, so Sitecore knows what data it should be displaying on the page. In the Data Source field, click Browse and select the Basic Content item we set up directly below the Home node. Click Okay on all the windows until they’re gone.


The last thing to do is enjoy our new web page! In the content editor, click the Publish tab, then click “Experience Editor.” A new window should pop up with your shiny new web page, displaying the three fields you’ve populated with data. From the experience editor you can even edit these fields, changing the text and selected image to your liking. To see the final, uneditable version of your site, you can click “Preview” from the Publish tab in the content editor, or Other > Preview from the Experience Editor.





To Be Continued...

Now that you've created a Helix solution from scratch, you're ready to develop for Sitecore with best practices! In future blog posts, I intend to build on this one, incorporating and expanding on things like Sitecore Rocks, MVC, styling, the Experience Editor, serialization, Gulp.js, and plenty more. If you have any comments, problems, or suggestions, please feel free to leave them in the comments or contact us. At TechGuilds we pride ourselves on being Sitecore experts and a pillar in the Sitecore community.

Monday, March 4, 2019

Business Analyst

  •  What is the role of a business analyst in an organization?

A business analyst is a liaison or a link between different stakeholders belonging to different domains in an organization. A business analyst should have the capabilities to fulfill the business objectives and balance the needs of various stakeholders.

  • How do you see yourself fit for the role of business analyst in our company?

Firstly, focus on your education by stating relevant coursework related to the job.

Secondly, illustrate your experience, attitude, and skills that make you a good fit for the company.

You can give examples of the previous works that show the interviewer what benefits you will bring to the company. Make sure your answer has a problem and the solution you implemented.


  • What, according to you, are the core competencies of a Business Analyst?

A business analyst must have exceptional communication and negotiation skills. Analytical thinking, problem-solving, and decision making are also vital attributes. A business analyst should have industry knowledge, business process management skills along with technical proficiency.

  • List some of the skills and tools used by Business Analysts.

Technical skills/tool – MS Office Suite, Axure, Google Docs, database knowledge, ERP systems, SQL, Trello, and more.

Non-Technical/business Analysis skills – Documentation, requirement elicitation, business process management, and more.

Pro Tip: You can tailor your answer to highlight your unique skills and experience.


Do you have any technical skills? Can you list your database skills or business intelligence skills?

It is not compulsory to have advanced technical skills like relational databases and SQL, but the more technically proficient you are as a business analyst, the better. These skills are most desirable and widely used, so if you have some experience in using these technologies, make sure you explain them to your interviewer.


You can describe the specific Business Intelligence tools you have used. If you have experience in handling the system the organization uses, highlight that to your interviewer.


6. What is Use case?

A use case is a diagrammatic representation of a system which describes how a user uses a system to accomplish a goal. It is an integral part of software engineering and software modelling technique which defines the targeted features and the resolution of any possible errors which a user may encounter.


7. Do you think a business analyst should be involved in testing?

Yes. Because a business analyst understands the overall system requirements and challenges associated with it very well. Hence, he can be instrumental during the testing phase to run it appropriately and resolve any system related query.


What do you mean by project deliverables?

These are the set of measurable services and products delivered to the end customer after project completion. It is the outcome of the project.


How do you keep yourself updated about the latest business trends and knowledge?

With this business analyst interview question, the recruiter wants to evaluate if you are motivated enough to keep pace with emerging latest business developments and trends.


The interviewer wants to know what actions you take to keep your knowledge and skills updated. You can answer this question by including references to news and industry publications. You can also list the events and conferences you attend to connect with the business community.


What are the various stages of a business project?

The main stages of any business or IT project are Initiation, Planning, Execution, Monitoring, and Closure.


Explain UML and its uses?

UML or Unified Modeling Language is a general-purpose, developmental modelling language that provides a standard way to envision the system. It is used to rationalize the system behaviour for the detection and elimination of errors/bottlenecks.


 


Can you explain SRS and its key elements?

SRS stands for System or Software Requirements Specification. It is a set of documents describing the features of a software application or system.


It includes various elements required by the stakeholders and customers to convince the end-users.


The critical aspects of an SRS are:


Scope of Work

Non- functional and functional requirements

Data Model

Dependencies

Assumptions and Constraints

Acceptance Criteria

13. What is BRD? How is it different from SRS?

BRD is an abbreviation for Business Requirement Document. It is a formal contract between the organization and the client for the development of the specific product.


BRD is a functional specification of the software whereas SRS is both BA creates it after their direct interaction with the clients

BRD is created by a business analyst after their direct interaction with the clients, whereas SRS is designed based on technical expertise and needs.

SRS is derived from BRD

What do you understand by requirement? Can you differentiate between requirements and needs?

A requirement is a targeted solution and representation to achieve specific business objectives. Stakeholders evaluate the project based on set conditions/requirements before its implementation. All the elements are correctly documented for reference purposes. Needs are the high-level representation of the terms and the result.


For example, you need to get a business analyst job, and the requirements to apply for this job are resume, educational background, and interview practice.


15. What do you know about Kanban?

Kanban is a tool which helps the agile team to visually guide and manage the work as it progresses through the process. Besides, it works as a scheduling system in Agile just-in-time production. The Kanban board is used to describe the current development status.


What is the purpose of the Requirement Traceability Matrix?

It records all the requirements given by a client and ensures that all the necessities are met.


17. What is business modelling?

Business modelling is a step- by -step approach for identifying the value proposition for operating the business.


The key attributes of business modelling to develop a strategic plan for an organization are:


Vision

Mission

Objectives

Strategies

Action plan

18. What is the project life cycle? Which models will you employ, and why?

A project life cycle is a framework implemented by a business analyst to split a project into manageable phases and signify the decision points throughout the project lifespan. The different models are the Waterfall model, Spiral model, Iterative model, Agile model, and V-shaped model.


You can answer by stating that selecting a life cycle model is exclusively based on the type, scope, and limitations of the project. You can give an example of any model which you used in a project.


19. What do you understand by Gap Analysis, and what are the types of gaps that can occur during an analysis?

Gap Analysis means the analysis of the differences between the functionalities of an existing and the targeted system. The gap means changes that are required to accomplish the proposed result.


Profit Gapis the change between the actual and estimated profit of a company.

Manpower Gapis the change between the actual and required workforce strength in a company.

Performance Gapis the difference between the expected and actual performances.

Market Gapis the variation between estimated actual sales.

20. What strategies will you follow to design a use case?

A use case should be concise, well-defined, and correctly documented.


The strategies or approaches in designing use cases are:


Thefirst phase is the users’ identification to create a role-profile for every user category and recognition of goals associated with every role.

Thesecond phase deals with the structure and creation of use cases by capturing both functional and non-functional requirements. Include use case diagrams and user interface details.

Thefinal phase is reviewing and validating the use cases.

21. Explain your typical work tactic for a project?

It is one of the most crucial business analyst interview questions asked by a recruiting manager to assess your work strategy, teamwork, and project management skills.


To answer this question, you can explain the general steps you follow with standard deliverables. For example, if you have managed the planning phase of a project, you could mention deliverables like a requirements management plan, work breakdown structure, or a communication plan.


Each business faces different situations and has distinct needs, but these fundamental steps are essential to achieve a task successfully:


Firstly, you must clarify your role and determine the stakeholder’s perspective in the project. You should define primary objectives along with reconciling the expectations conflict among stakeholders.

Create a work plan listing steps, timelines, and deliverables.

Define actionable and concise requirements.

Ensure technical implementation, as many solutions require the support of IT teams.

Create documentation and train end-users to implement the solution.

Finally, assess the value of the project. Did it work, or any follow-ups are needed?

You should focus on your experience to describe your skills and explain the customized tactics you use.


What documents are needed by a business analyst? Which documents have you prepared in your previous works?

A project lifecycle uses many documents, and it depends on the utilization process of a business analyst.


Initiation document

System Requirements Specifications document

Business requirement document

Functional requirement document

Requirements Traceability Matrix

Use case Specifications document

Change Request Document

Gap Analysis Document

With this question, the hiring manager wants to understand if you have used several types of documents and assess your capability of delivering both business and technical specifications.


Pro Tip: Make sure to use only those documents you are familiar with and explain in detail.


What is the requirement elicitation? Have you ever participated in these elicitation meetings?

It is a technique to gather information from stakeholders and users. It involves approaches or strategies to collaborate with clients or users directly.


Some requirement elicitation techniques are-


Document analysis

Interviews

Prototyping

Brainstorming

Workshops and observations

Surveys/Questionnaire

You can answer the second part of the question by explaining how you have used these techniques and how they impacted your project.


What is the most important aspect of analytical reporting?

The most important aspect of analytical reporting is the ability to solve problems and make decisions based on facts. Attempting to make decisions based on uninformed guesses or assumptions can be problematic—analytical reporting provides tangible information with which to create strategy and direction.


Describe your familiarity with SQL queries.

There are four parts to an SQL statement. The DDL, or the Data Definition Language, is used for defining data structure. The DML, or Data Manipulation Language, is used for inserting, deleting and modifying data. The DCL, or Data Control Language, is used to control access to data stored in the database. Finally, the TCL, or Transactional Control Language, is used to organize data adjusted by the DML. I have used SQL statements to determine which of my client’s customers are purchasing which products, which has helped them make important decisions about future product lines. This work has made them a repeat customer three years running.


26. What are personas, and how they are useful in user-centred design methodology?

Personas are created in place of real users to understand their behavioral patterns in different scenarios. In user-centered design methodology, a system is developed, keeping the viewpoint of end-users in mind. Personas help create such systems.


What tools do you consider the most important for a business analyst to do their job well?

I commonly use tools like Word, Excel, PowerPoint, MS Visio and Rational tools. I also have advanced SQL skills—using SQL is helpful when I need to analyze items like customer purchases that would overwhelm Excel.


Describe how you typically approach a project.

I first listen to what a client needs, paying attention to what they articulate as their goals for the project. I then take a deeper look into our data to figure out how to guide them toward success or how to change the way they are looking at their goals to move forward in a more productive way. Of course, every project and every client requires something new, so I always make sure to consider the specific situation instead of automatically imposing a one-size-fits-all solution.


How can you manage the post-implementation and pre-implementation problems of a project?

You can answer this by briefly explaining both the problems. The problems that declare their presence before the project implementation are called pre-implementation problems. The difficulties arising after the project implementation are called post-implementation problems, and most of the concerns fall in this category.


After that, you can explain that a business analyst cannot overcome all these problems but can limit them up to the maximum extent within a minimum time frame.


During the development of a system, how do you manage frequently changing customers’ requirements?

It is one of the most frequently asked business analytic interview questions. The first task of a business analyst is to draft a document stating the number of changes that are allowed, and after a certain point, no amendments will be accepted. It is vital to get this document signed by the user.


In case the change required is accepted, make sure to note down all the changes and find out their overall impact on the project. Calculate the timeline, cost, and resources needed for this change.


Name two diagrams you use as a business analyst, and describe how they impact your work.

Two diagrams I prefer using are Activity Diagrams and Use Case Diagrams. Activity Diagrams show the diverse activities that take place across various departments. I use Activity Diagrams to show who interacts with a system as well as the primary goals they achieve with it. I find Use Case Diagrams to be very useful when I need to visualize the functional requirements of a given system so I can make smart choices when it comes to design and figuring out development priorities.