a:6:{i:0;s:8602:"					<section class="headBg theme2 ">
					<div class="wrap">
					<div class="page-title-inner fo"> 
					<div class="h1"><h1>Job openings for business analyst in chennai</h1></div>
					<p class="breadcrumb ar uu small"><a href="https://www.bsrics.com/" title="Home">Home</a>
					
											<b class="ffv p2px">&rsaquo;</b><a href="https://www.bsrics.com/current-jobs.htm" title="Current Jobs">Current Jobs</a>
																
					<b class="ffv p2px">&rsaquo;</b> Job openings for business analyst in chennai</p>
					</div>
					</div>
					</section>
									<section id="middle">
				<div class="wrap" id="bodyFormatNT">
				<div class="row1 dt columns23"><!--MIDDLE ROW1 STARTS-->
				<div class="col-2 wideColumn ip ls detail_pm_15"><!--MIDDLE ROW1 COL-2 STARTS-->
				
								<div class="pt10px">
				<div class="xxxlarge fw6 dif">Business Analyst</div>
									<p class="mt7px fw6">Chennai</p>
									
				<br>
				<p class="aj mt7px">The Business Analyst assist the Product Owner in the Requirements documentation of the Agile<br />
development process driving customer success. The Business Analyst will, at the direction of the<br />
Product Owner, gather, document, and curate business requirements. This includes working with the development and quality assurance teams to clarify requirements. This individual will play a critical role ensuring that the business requirements and implemented solutions will meet the client’s needs and will deliver significant value to the client’s organization.<br />
 <br />
ESSENTIAL DUTIES AND RESPONSIBILITIES<br />
 <br />
Document, analyze and map client requirements working with Product Owners, Clients, Project<br />
Managers and/or Account Management based on direction from the Product Owners.<br />
Produce high quality functional requirements documentation in the form of an Agile based user<br />
stories<br />
Coordinate efforts to review and seek requirement approval with Product Owners who may in<br />
turn seek approval from internal and/or external clients<br />
Identify/suggest improvements to requirements tools, templates, and processes<br />
Develop product and domain knowledge and expertise<br />
Document testing scenarios and serve as subject matter expert supporting quality analysis<br />
testing activities<br />
Train-the-trainer activities and assistance with training documentation as needed<br />
Assist as necessary with user acceptance activities with client testers<br />
Participate in client interaction including new business opportunity meetings, presentations,<br />
requirements gathering, production support activities, etc. as needed<br />
Assist as needed with responding to client inquiries supporting the project management team<br />
<br />
Desired Skills and Experience<br />
Experience with Agile Development Methodology<br />
Bachelor’s degree in business, economics, or a technology-related field<br />
Automotive industry experience is a plus<br />
Experience in customer-facing, consultative roles in professional technology consulting firm<br />
Excellent verbal and written communication skills</p>
				
				<table class="w100 formTable bdr0 mt20px">	
				<tr>
				<td class="w195 alpha75 p5px">Experience</td>
				<td class="p5px">4 - 8 Years</td>
				</tr>			
											<tr>
							<td class="alpha75 p5px">Salary</td>
							<td class="p5px"> 4  Lac  To  12  Lac  P.A.</td>
							</tr>				
											
					<tr>
					<td class="alpha75 p5px">Industry</td>
					<td class="p5px">Analytic and Business Intelligence</td>
					</tr>
									
									<tr>
					<td class="alpha75 p5px">Qualification</td>
					<td class="p5px">B.C.A, B.Sc, B.Tech/B.E, M.C.A, M.Sc, M.Tech</td>
					</tr>					
										<tr>
					<td class="alpha75 p5px">Key Skills</td>
					<td class="p5px">
											<span class="bdr dib p2px10px mr5px mt2px">Microsoft Office</span>
												<span class="bdr dib p2px10px mr5px mt2px"> SAS-Statistical Analysis System</span>
												<span class="bdr dib p2px10px mr5px mt2px"> Business Analytics</span>
												<span class="bdr dib p2px10px mr5px mt2px"> Business Consulting</span>
												<span class="bdr dib p2px10px mr5px mt2px"> Business Research</span>
												<span class="bdr dib p2px10px mr5px mt2px"> Requirement Analysis</span>
												<span class="bdr dib p2px10px mr5px mt2px"> Statistical Analyst</span>
												<span class="bdr dib p2px10px mr5px mt2px"> Agile Development</span>
												<span class="bdr dib p2px10px mr5px mt2px"> Business Analyst</span>
												<span class="bdr dib p2px10px mr5px mt2px"></span>
											</td>
					</tr>
									
				</table>
				</div>
				<br>
				<div class="pt20px">
				<p class="large fw6">About Company</p>
				<div class="mt10px">
				
									<table class="w100 formTable bdr0 mt5px">
											<tr>
						<td class="w195 alpha75 p5px">Contact Person</td>
						<td class="p5px">Mr.S.Buvanesh</td>
						</tr>					
												<tr>
						<td class="w195 alpha75 p5px">Address</td>
						<td class="p5px">Regus Business Centre, No.136, 3rd Floor, Shyamala Tower, Arcot Rd,</td>
						</tr>					
												<tr>
						<td class="w195 alpha75 p5px">Mobile </td>
						<td class="p5px">9176376488 </td>
						</tr>
												<tr>
						<td class="w195 alpha75 p5px">Email ID</td>
						<td class="p5px"><a href="mailto:admin@bsrisolutions.com"> admin@bsrisolutions.com </a></td>
						</tr>
										
					</table>
									
				<br />
				
									
					<div class="bdrT pt20px">
					<form name="frmvacdetail" method="post" action="enquiry-form-10009.htm">
					<input style="padding:7px 15px;" class="button b ffos" type="submit" value="APPLY NOW !" />
					<input type="hidden" name="catalog_mi" value="696341">
					<input type="hidden" name="enq_type" value="2"><input type="hidden" name="vacancy_id" value="985422"><input type="hidden" name="subject" value="Applied for Business Analyst">
					</form>
					</div>
			
									</div>
				</div>			
				
				<!--MIDDLE ROW1 COL-2 ENDS--> 
				</div>
				<div class="col-3 thinColumn"><!--MIDDLE ROW1 COL-1 STARTS-->
				
				<div class="column_Box mc">
				<div class="tcl bullet divider">
				<div class="large fw6 alpha75 p12px bdrB">
				<h2>Jobs by Location</h2>
				</div>
				<div class="ic">
				<div class="mt10px">
									<span class="dib p5px10px c2px bdr mr7px mb7px "><a class="dif" href="jobs-in-chennai.htm" title="Jobs in Chennai">Chennai</a> <b class="alpha50 bn small">(9)</b></span>
									</div>
				</div>
				</div>
				</div>
				
				<div class="column_Box mc">
				<div class="tcl bullet divider">
				<div class="large fw6 alpha75 p12px bdrB">
				<h2>Jobs by Functional Area</h2>
				</div>
				<div style="padding:10px 18px;" class="ic">
									<p class="mb5px "><span class="fr">(7)</span><a href="jobs-in-application-programming-fid.htm" title="IT Software - Application Programming / Maintenance Jobs">IT Software - Application Prog...</a></p>
										<p class="mb5px "><span class="fr">(1)</span><a href="jobs-in-web-designing-programming-fid.htm" title="IT Software - Others Jobs">IT Software - Others</a></p>
										<p class="mb5px "><span class="fr">(1)</span><a href="jobs-in-analytic-business-intelligence-fid.htm" title="Analytic and Business Intelligence Jobs">Analytic and Business Intellig...</a></p>
									
				</div>
				</div>
				</div>
				
				</div>
				<!--MIDDLE ROW1 COL-1 ENDS-->
				
				<!--MIDDLE ROW1 ENDS--> 
				</div>
				<br><br>
				</div>
				</section>
				<script>
					window.addEventListener("DOMContentLoaded", function(){
						jQuery(document).on("click", ".showallspan", function(){
							if(jQuery(this).attr("data-target") === 'show'){
								jQuery(this).text("View Less");
								jQuery(this).attr("data-target", "hide");
								jQuery(this).closest("div").find(".spanlist").removeClass("dn");
							}else{
								jQuery(this).text("View More");
								jQuery(this).attr("data-target", "show");
								jQuery(this).closest("div").find(".spanlist").addClass("dn");
							}
						});
					});
				</script>
					<script>
	$.ajax({
	  url: "https://www.placementindia.com/job_posting_view.php",
	  type: "POST",
	  dataType: 'html',
	  data: {job_view_id: 'OWFSVkpKU0tveXZTZWlzaWFyQjlrQT09',data_type: 'RExzRmw1cmRsdlh6YkJlVUZBNnA4UT09'},
	  cache : false,
	  async: true
	  
	}).done(function(resp) {
	  //alert(resp)
	});
	</script>
	";i:1;s:69:"Job openings for business analyst in chennai | BSRI Solutions Pvt Ltd";i:2;s:172:"Business Analyst Jobs,Business Analyst Jobs in Chennai,Business Analyst Vacancy in Chennai,Business Analyst jobs in India,Analytic and Business Intelligence jobs in Chennai";i:3;s:420:"Apply for Business Analyst Jobs in Chennai India - Business Analyst Vacancy  in Analytic and Business Intelligence field with 4 to 8 years Work Experience, Key Skills are Microsoft Office, SAS-Statistical Analysis System, Business Analytics, Business Consulting, Business Research, Requirement Analysis, Statistical Analyst, Agile Development, Business Analyst,, Analytic and Business Intelligence jobs in Chennai  India";i:4;s:2896:"
		<script type="application/ld+json">
		{
		  "@context": "http://schema.org",
		  "@type": "JobPosting",
		  "title": "Business Analyst",
		  "baseSalary": " 4  Lac  To  12  Lac ",
		  "description": "The Business Analyst assist the Product Owner in the Requirements documentation of the Agile
development process driving customer success. The Business Analyst will, at the direction of the
Product Owner, gather, document, and curate business requirements. This includes working with the development and quality assurance teams to clarify requirements. This individual will play a critical role ensuring that the business requirements and implemented solutions will meet the client’s needs and will deliver significant value to the client’s organization.
 
ESSENTIAL DUTIES AND RESPONSIBILITIES
 
Document, analyze and map client requirements working with Product Owners, Clients, Project
Managers and/or Account Management based on direction from the Product Owners.
Produce high quality functional requirements documentation in the form of an Agile based user
stories
Coordinate efforts to review and seek requirement approval with Product Owners who may in
turn seek approval from internal and/or external clients
Identify/suggest improvements to requirements tools, templates, and processes
Develop product and domain knowledge and expertise
Document testing scenarios and serve as subject matter expert supporting quality analysis
testing activities
Train-the-trainer activities and assistance with training documentation as needed
Assist as necessary with user acceptance activities with client testers
Participate in client interaction including new business opportunity meetings, presentations,
requirements gathering, production support activities, etc. as needed
Assist as needed with responding to client inquiries supporting the project management team

Desired Skills and Experience
Experience with Agile Development Methodology
Bachelor’s degree in business, economics, or a technology-related field
Automotive industry experience is a plus
Experience in customer-facing, consultative roles in professional technology consulting firm
Excellent verbal and written communication skills",
		  "educationRequirements": "B.C.A, B.Sc, B.Tech/B.E, M.C.A, M.Sc, M.Tech",
		  "experienceRequirements": "4 - 8 Years",
		  "industry": "Analytic and Business Intelligence",
		  "jobLocation": {
		    "@type": "Place",
		    "address": {
		      "@type": "PostalAddress",
		      "addressLocality": "Tamil Nadu",
		      "addressRegion": "Chennai"
		    }
		  },
		 "qualifications": "B.C.A, B.Sc, B.Tech/B.E, M.C.A, M.Sc, M.Tech",
		     "skills": "Microsoft Office, SAS-Statistical Analysis System, Business Analytics, Business Consulting, Business Research, Requirement Analysis, Statistical Analyst, Agile Development, Business Analyst,"
		  }
		</script>
		";i:5;N;}