Friday 25 September 2015

Project Management Revitalized

What is Project Management? Before answering this let us understand “what is a Project?”
As defined by PMI - It's a temporary endeavor undertaken to create a unique product, service or result which has a defined beginning and end in time. Few basic examples of project are; developing a software, construction projects, manufacturing automobiles. All the above mentioned projects must be managed efficiently so that we can complete it on time and within the given budget. This is where Project Management makes an impact.

PMI defines Project management as the application of knowledge, skills, tools, and techniques of project activities to meet the project requirements. It has always been practiced informally, but began to emerge as a distinct profession in the mid-20th century. 

With recent development in technology Project management is no longer limited to emails or file sharing platforms. For your project to be successful it is important that you have the right tools available at your disposal. Few years back the tools which were available only on papers have become a reality and are proving their worth in the project management field.

The following aspects allow for smoother operation, increased efficiencies, and a better overall collaborative experience:

Time Management: For a project to be successful it is very important that we meet all deadlines and complete the project on time. For this we should organize and plan, how long we are going to spend on specific activities, which in short refers to “Time Management”. In the pre-industrial era time tracking was vague and it depended on lot of factors. In the industrial era time management gained importance because we shifted from agricultural economy to industrial economy. In this era we focused on time tracking and which would help improve our productivity and speed. It is in this era of digital world we have different tools and apps that helps us focus on our core tasks. There are few apps which will send you weekly reports about your time spent on various activities.  There free online tools available which generates to-do lists with priorities, so that it becomes easy for the user to track their progress.

Instant communication: Instant messaging helps you send information back and forth in real time. Few years’ back one didn’t had the option of using skype or other communication tools for instant messaging. Earlier all the requirements were gathered at one go and the internal team used to work as per the requirements gathered in those meetings. Some companies used to send their employees on-site, so that they can discuss the requirement with client and the project would move faster.  Instant communication came to prominence with the rise in social media but soon business professionals realized its importance about how it can be used for business communication. Instant Messaging allows real time communication between two people working at different parts of the world without having to pay any charges. Shipping companies and freight brokering organizations benefit greatly from the reduced cost associated with using instant messaging. It gives you the flexibility to work from anywhere be it your home or whilst traveling. 

Budget Tracking: Few years back excel was the primary tool to track business expenses. When it came to managing multiple varieties of expense, the length of the formulas in excel would increase and it was complicated for people to understand especially during handover of projects to a new member. Recent updates in project management tools and business budgeting programs have made life easy by automating the calculation.

Data Backup: One of the most important thing in any field is to have your data intact. We usually refer to archives while working on projects to get a better idea. Earlier we used to store data in magnetic tapes, HDD, CD-DVD and then Flash Drives. These devices helped you to store your data, but to access the data from these sources, you must have these devices handy. In recent years technology has made it possible to back all our data as and when you are working. You can store your data on cloud to access it from anywhere and you always have the option of External Hard Drives to back your data, just to make sure that your project doesn’t fail even if your computer does.

All the features mentioned above are good on their own but they will work best for you if you can collate them into one interactive program that manages all your project.

Thus we can see that, with the evolution of technology, project management has become much easier. With the right fit for your firm you can see drastic changes in your management style, which will definitely help you attain a better place in this competitive environment.

About Author:
Akash Poojary is a consultant in Systems Plus Pvt. Ltd. Within Systems Plus, he actively contributes to the areas of Technology and Information Security. He can be contacted at: akash.poojary@spluspl.com

Application Analyst – An overview

Application Support is critical for all organizations, but more than half struggle to maintain and manage their application support. The need for better asset management and qualified application support analysts is on the rise.

Few asset management failures
The following examples from around the web illustrate why application support is so necessary:

• Two-thirds of CIOs felt that their applications were only partially aligned to their business strategy or not at all
• Only 39% of CIOs said they had the right strategy to manage their organization’s applications
• Nearly two-thirds of CIOs could not provide the true cost of running applications in their business
• 47% of CIOs said they did not have the resources to ensure maximum value from their applications
• Half of CIOs said the level of duplication was moderate to "too much"

What do application support analysts do?
They fix application and system problems, or any incident that is disrupting the application service that business users depend on. The job calls for both technical capability and business understanding. Crucially, applications are production or live, and issues need immediate attention. Hence, a calm temperament is a must.

To become a successful Application Support Analyst the following qualities must be developed:

Competencies for an Application Support Analyst

1.Analytical Approach
2.Communication and co-ordination
3.Decision making skills
4.Management

1. Analytical Approach
Application Analyst has the major responsibility of performing a detailed check of the data bases, data records, reports, technical workflows and other software related functionalities of the system. He/she also has to review the issues that will be reported from not just a technical perspective but also from the end user’s perspective.

2. Communication and Coordination
Application Analyst not only interacts with the technical team but also interfaces with the client end. The duty is on the application analyst to figure out the technical and non-technical issues faced by the customer while using the application. He/she must communicate the challenges faced at the client’s end to the technical team and help the technical team resolve the issues.

3. Decision Making skills
Applications Analyst should have strong decision making skills because he/she will be faced with a swarm of choices from which he/she has to choose the best fit. Further, he/she must undertake to individually seek data about the specific issues being faced by of the end users so that the technical team has all the required information in order to resolve the issue.

4. Management
People Management should be one key skill that an application analyst must possess. The application analyst has to deal with people from both the company’s end and the user’s end. So he/she must have the ability to address the issues at both the ends and should ensure the successful resolution of the issue to the user’s satisfaction.

Essential Tech courses
After completing technical courses in UNIX, SQL and EXCEL VBA, try to attain qualifications in both ITIL (IT Infrastructure library) and IAQ (introduction to investment qualification). The comprehensive training programs and certified examinations mold you into a skilled, confident and technical candidate.

Personally, I think the main skills for an Application Support Analyst are communication, problem solving and organizational skills. An individual who can work under pressure, communicate efficiently and provide alternative solutions is likely to succeed.

About Author:
Harpreet Kaur Dua is a consultant in Systems Plus Pvt. Ltd. Within Systems Plus, she actively contributes to the areas of Technology and Information Security. She can be contacted at: harpreet.dua@spluspl.com

Motivation by Project Manager – Makes or Breaks the team!

People and Planning is what really determines the overall project success. The team members are the real gems of any project. When a team is working well, each member knows that he or she is part of something bigger than the individuals involved - that the team is greater than the sum of its parts. When a team performs well, they know they can overcome obstacles have achieve their goals easily. All this is only possible when the team is headed is by a strong leader, in most cases – The Project Manager.


Jim Rohn says - The challenge of leadership is to be strong, but not rude; be kind, but not weak; be bold, but not bully; be thoughtful, but not lazy; be humble, but not timid; be proud, but not arrogant; have humor, but without folly. What it all boils down to is – If a Project Manager can rightly motivate his team!

From a bit of research, here are a few points below that I feel really help motivate a team:

1. Clarity 
The most important factor while working in a team, is that the team realises what they are working for. Each project has different goals and as a project Manager, be sure that you have shared clearly with the team what they are working towards achieving and when it needs to be achieved by.

2. Maintain a Positive Outlook
Whether you love your job or hate going to work every day depends on the kind of environment you work in. If it’s a negative environment it creates frustrations and it becomes difficult to retain people. Hence, a project manager needs to ensure that a positive environment is maintained in his team. He needs to ensure communication is open; members can state their opinions knowing that differences of opinion are valued. 

3. Be understanding
It's important to be friendly with your team members, to make small talk, and to make them feel wanted and cared for, but you don't want to cross too far over that line. Most importantly, successful team members should not just "feel good", they need to get their work done, meet deadlines and achieving their goals – it is important. 

4. Reward for Contributions
Be a project manager who is acknowledged as one of the team member. It is easy to turn into a dictator – So make sure you behave far from one. Ask for your team members opinions, ask them to share their knowledge. Make them feel important and equally responsible for the project. Reward the members for making contributions and encourage healthy competition.

5. Create Social Events out of Work Space
Everyone likes to party! It has been studied that creating social events for the team to gel up will make the team stronger. You can decide to have lunch together, or go dining after office. Adding a bit of fun element to your daily routine environment will serve as a change as well get more productive efforts from your team members.

A Project Manager is responsible for the overall success or failure for a Project. And how the Project Manager relies on are team members. Motivation is thus an important skill that every project manager must possess to get the best out of his team!

About Author:
Shweta Samudra is a consultant in Systems Plus Pvt. Ltd. Within Systems Plus, she actively contributes to the areas of Technology and Information Security. She can be contacted at: shweta.samudra@spluspl.com 

Tuesday 22 September 2015

Requirements Elicitation for Business Intelligence

A detailed insight of business requirements is never available at an analyst’s fingertips. Much of business or technical requirements are obtained from end users as well as through surveys. The purpose of requirements elicitation is to systematically categorize the business requirements, business risks, and assumptions associated with any given project.

Requirement Elicitation

One of the fundamental things an organization may require after installing an enterprise software application is essential a Business Intelligence (BI) Software. BI tools play a significant role in the organization as they provide an insight into the various data outlines, relations between organizational data sets, and can provide input to tactical decision-making, as well as it is essential to comprehend all the strategic requirements of the business.
The business will be in a much better state to understand what software tool is required when what exactly needs to be accomplished is determined. For instance, analyzing what users do (tasks) and the decisions they make would help to gauge the requirements. These requirements can then be used as a foundation for determining the level of complexity the application would be required to handle. Once requirements are gathered and it is determined what level of BI software configuration is required, user can then start evaluating solutions based on their capability to deliver the requirements.

Elicitation Techniques
After obtaining the stakeholders, an analyst needs to determine the best techniques for eliciting requirements:

Brainstorming – The brainstorming procedure and the subsequent follow-up analysis will help ensure that the best possible solution is obtained for any business objective.

Document analysis – This kind of elicitation is essentially beneficial when the objective is to update the prevailing system or when the understanding of prevailing system will enrich a new system.  However, document analysis alone is not enough to systematically extract all of the requirements for any given project.

Focus Group – Focus groups is a good way for time-pressed analysts to get a lot of information at an instant.

Interface Analysis – An interface analysis carefully examines and analyses the way that a user interacts with an application, or the way one application interacts with another.

Interviews – Personal interviews are amongst the most popular kinds of requirement elicitation technique. They give an analyst the opportunity to discuss the stakeholder’s opinions and get his or her viewpoint regarding the business needs and the feasibility of potential solutions

Prototyping (story-boarding, navigation flow, paper prototyping, screen flows) – Prototyping is particularly valuable to relate to a graphic illustration of the end product.

While you may get away by not considering the non-functional requirements with other applications, it is essential when dealing with BI. BI applications should be selected only after contemplation of their compatibility with your existing architecture/infrastructure and a host of other relevant factors. Collecting requirements for reporting/business intelligence may seem overpowering but can be streamlined by asking the right questions.


It is essential to determine the following questions to elicit accurate requirements:
  1. What business decisions are essential in order to achieve the organizational goals (short-term and long-term)?
  2. Which key business processes does the business need to improve?
  3. What critical business decisions need to be made to facilitate business operations?
  4. What information is obligatory to accomplish key job functions effectively? 
BI tools help to deliver a platform for users to interpret pre-defined KPIs for strategic decision-making. It significant to comprehend what business decisions the BI tools need to support so that the required data can be made available.

About the author:
Gurpreet Kaur Gaga is a consultant in Systems Plus Pvt. Ltd. Within Systems Plus, she actively contributes to the areas of Technology and Information Security. She can be contacted at: gurpreetkaur.gaga@spluspl.com

Monday 21 September 2015

SSRS Subscriptions Log/Alert

Subscriptions in SQL Reporting Services enable you to configure the automatic delivery of specified reports by e-mail or to a file share at scheduled intervals.

After subscribing the reports reporting service creates a time based job which executes as per scheduled time.However when job executes it doesn't means that you subscription executed successful.

If you have subscribed the report which is having million of records it may take time to deliver the reports at the destination and some time it get failed without any notification,
Whereas you may have see that jobs(in SQL Agent) executed successfully within a second.

To avoid such situation below script will help you to get notify whether the subscribed report delivered to the destination path without any error or not.

Declare @ServerIP VARCHAR(100) =@@SERVERNAME 
Declare @Recepients VARCHAR(2000)='raghwendra.mishra@spluspl.com'
Declare @MailProfile VARCHAR(100)='Capex'
Declare @strSubject VARCHAR(100)='Subscription Report Status on '+@@SERVERNAME+ ' as on '+CONVERT(VARCHAR(50),GETDATE())
Declare @TableHTML varchar(MAX)

SELECT
@TableHTML ='
<p style="margin-top: 0; margin-bottom: 0"><font face="Verdana" size="4">Subscription Status</font></p>' +   
'<table style="BORDER-COLLAPSE: collapse" borderColor="#111111" cellPadding="0"  bgColor="#ffffff" borderColorLight="#000000" border="1"> 
<tr> 
<th align="Center"  bgColor="#000080"> <font face="Verdana" size="1" color="#FFFFFF">Instance Name</font></th> 
<th align="Center"  bgColor="#000080"> <font face="Verdana" size="1" color="#FFFFFF">Report Path</font></th> 
<th align="Center"  bgColor="#000080"> <font face="Verdana" size="1" color="#FFFFFF">Date Start</font></th> 
<th align="Center"  bgColor="#000080"> <font face="Verdana" size="1" color="#FFFFFF">Time Start</font></th> 
<th align="Center"  bgColor="#000080"> <font face="Verdana" size="1" color="#FFFFFF">DataRetrieval Duration</font></th> 
<th align="Center"  bgColor="#000080"> <font face="Verdana" size="1" color="#FFFFFF">DateProcessing Duration</font></th> 
<th align="Center"  bgColor="#000080"> <font face="Verdana" size="1" color="#FFFFFF">DataRendering Duration</font></th> 
<th align="Center"  bgColor="#000080"> <font face="Verdana" size="1" color="#FFFFFF">Time End</font></th> 
<th align="Center"  bgColor="#000080"> <font face="Verdana" size="1" color="#FFFFFF">Execution Time</font></th> 
<th align="Center"  bgColor="#000080"> <font face="Verdana" size="1" color="#FFFFFF">Ownar</font></th> 
<th align="Center"  bgColor="#000080"> <font face="Verdana" size="1" color="#FFFFFF">Status</font>
</th>   
</tr>' 
SELECT
@TableHTML = @TableHTML +
'<tr>
<td><font face="Verdana" size="1">' + el2.InstanceName +'</font></td>' +
'<td><font face="Verdana" size="1">' + el2.ReportPath + '</font></td>' +  
'<td><font face="Verdana" size="1">' + convert(varchar(12),el2.TimeStart)+'</font></td>'+ 
'<td><font face="Verdana" size="1">' + convert(varchar(12),el2.TimeStart,108) + '</font></td>'+
'<td><font face="Verdana" size="1">' + case When  TimeDataRetrieval=0 Then '-'else (
right('00' + convert(varchar(2), convert(int, TimeDataRetrieval/(1000*60*60))), 2) +':'+
right('00' + convert(varchar(2), convert(int, (TimeDataRetrieval%(1000*60*60))/(1000*60) )), 2)+':'+
right('00' + convert(varchar(2), convert(int, ((TimeDataRetrieval%(1000*60*60))%(1000*60))/1000)), 2)) end + '</font></td>'+
'<td><font face="Verdana" size="1">' + case When  TimeProcessing=0 Then '-'else (
right('00' + convert(varchar(2), convert(int, TimeProcessing/(1000*60*60))), 2) +':'+
right('00' + convert(varchar(2), convert(int, (TimeProcessing%(1000*60*60))/(1000*60) )), 2)+':'+
right('00' + convert(varchar(2), convert(int, ((TimeProcessing%(1000*60*60))%(1000*60))/1000)), 2))END + '</font></td>'+
'<td><font face="Verdana" size="1">' + case When  TimeRendering=0 Then '-'else (
right('00' + convert(varchar(2), convert(int, TimeRendering/(1000*60*60))), 2) +':'+
right('00' + convert(varchar(2), convert(int, (TimeRendering%(1000*60*60))/(1000*60) )), 2)+':'+
right('00' + convert(varchar(2), convert(int, ((TimeRendering%(1000*60*60))%(1000*60))/1000)), 2)) end + '</font></td>'+
'<td><font face="Verdana" size="1">' + convert(varchar(12),el2.TimeEnd,108) +'</font></td>' +
'<td><font face="Verdana" size="1">' + CONVERT(VARCHAR, el2.TimeEnd-el2.TimeStart, 8) + '</font></td>' +
'<td><font face="Verdana" size="1">' + el2.UserName + '</font></td>' +  
CASE  el2.[Status] 
WHEN 'rsSuccess' THEN
   '<td bgcolor="#CEE685"><b><font face="Verdana" size="1">'+ el2.[Status] +'</font></b></td>' 
    ELSE
'<td bgcolor="#FF8282"><b><font face="Verdana" size="1">'+ el2.[Status] +'</font></b></td>'
        END  + '</tr>'  
FROM ReportServer..ExecutionLog2 el2
WHERE el2.ReportPath = '/Reports/DUMP004'
AND el2.TimeStart > CONVERT(VARCHAR, GETDATE(), 101)
ORDER BY el2.TimeStart DESC

SELECT
@TableHTML = @TableHTML + '</table>'+  
'<p style="margin-top: 0; margin-bottom: 0"> </p>
<hr color="#000000" size="1">
<p style="margin-top: 0; margin-bottom: 0"><font face="Verdana" size="2">Regards,</font></p> 
<p style="margin-top: 0; margin-bottom: 0"><font face="Verdana" size="2">InVision DBA</font></p>' 

EXEC msdb.dbo.sp_send_dbmail 
@profile_name = @MailProfile,   
@recipients=@Recepients,
@subject = @strSubject,   
@body = @TableHTML,
@body_format = 'HTML'   


Following things to be done:
1- Identify the duration of Subscription execution duration.
2-Create another job with provided script and schedule it after subscription--if possible add 1 step in daily monitoring job (If applicable).
3- change mail profile and send recipient from script.

About the author:
Raghawendra Mishra is a consultant in Systems Plus Pvt. Ltd. Within Systems Plus, he actively contributes to the areas of Technology and Information Security. He can be contacted at raghwendra.mishra@spluspl.com

Business Value of Application Support


Following five dimensions helps to build values of application support:

  • Strategy: The strategy helps to improve value over time at an acceptable cost. The strategy should be made for business alignment and achieve support objective. Strategy is restructuring or add-on in existing process to utilize all type of resources in right way that helps to make more outcome / profit in minimum cost and risk.
  • Governance: Governance defines standard rules for support structure that needs to follow in every industry. Thus, governance helps to build structures of standard procedures that measure performance and achieve compliance.
  • Organization: Organize support in terms of resource, cost and time. Resource, cost and time are interrelated to each other, so basic need is to make available right resource at the right cost for application support, which helps to consistently do error free service delivery in time.
  • Process: Set up standard processes as per standard rules set up by governance resulting in efficient and effective application management that will help to manage resource, time and cost simultaneously without affecting any attribute.
  • Technology: To streamline process needs to use advance application management support tools, which includes workflow for support process that helps to create transparency in system to get right information at right time to the right person.
Based on above dimensions we can achieve following:

Alignment: Above dimensions, help to align support operations, with business and IT goals that ultimately delivers sustained value.
Thus, proper organized services can deliver quality, cost- effective services that meet following business requirements:
1. Consistently improved service
2. Dramatic improvement in the quality of delivering services and performed the work

Organization Goal: Above dimensions, helps to achieve critical success factors, which can be one of the goals of the organization. For example, consider the goal of a particular organization is to define the standard support process. To define standard process, an organization needs to follow standard rules as per governance while defining process that also helps to increase the value of organization.

Risk Mitigation: Above dimensions, helps to reduce the risks after implementation such as application performance, functional issues or user rejection. A dimension framework will evaluate progress against the required standards for effective support and will give you the option to address gaps and mitigate risks. Contingency plans can be useful to manage the level of risk during and after the service implementation (for example, service outage, service disruption)

Cost Optimization: Above dimensions, helps for optimal balance of cost and risk for effective design of the support operation. Strategies and resource organization are helping to reduce the risks of the support operation that automatically reduce cost.

User Satisfaction: The main goal of proper support is to resolve user issues and achieve user satisfaction. Thus, the system should enhance based on user needs. For example, Dimensions define effective design of the support operation, which address user issues and take proper action on it properly that ultimately achieves user satisfaction.

Service Reporting: Service reporting organizes status and performance data into informational reports that are understood and useful to the IT organization and the business users (for example, service scorecard, service dashboard, SLA reports).

Five dimensions are pillar of application support that will help to accomplish goals of company as well as provide best quality of service to user.

About the author:
Deepak Borole is a consultant in Systems Plus Pvt. Ltd. Within Systems Plus, he actively contributes to the areas of Technology and Information Security. He can be contacted at deepak.borole@spluspl.com



Monday 14 September 2015

Sending Mail using SQL Server Express Edition

SQL Server express edition,We either use CLR integration or configure SQL Mail using MSDB system database.
Here I am discussing sending mail using MSDB system database.By default the MSDB database installed when we install SQL Server. The below tables used to confiure sysmail account.

SELECT *FROM msdb.dbo.sysmail_account
SELECT *FROM msdb.dbo.sysmail_configuration
SELECT *FROM msdb.dbo.sysmail_principalprofile
SELECT *FROM msdb.dbo.sysmail_profile
SELECT *FROM msdb.dbo.sysmail_profileaccount
SELECT *FROM msdb.dbo.sysmail_profileaccount

First of all enable Database Mail XPs through below code to configure database mail.

sp_configure 'show advanced options', 1;
GO
RECONFIGURE;
GO
sp_configure 'Database Mail XPs', 1;
GO
RECONFIGURE
GO

And then to configure SQL mail we need to follow below steps.


1. Use sysmail_add_account_sp stored procedure of MSDB database to configure sysmail account.

EXECUTE msdb.dbo.sysmail_add_account_sp
@account_name = 'DBA',
@description = 'Sent Mail using MSDB',
@email_address = 'raghwendra.mishra@spluspl.com',
@display_name = 'DBA',
@username='raghwendra.mishra@spluspl.com',
@password='Admin@123',
@mailserver_name = 'smtp.Your Mail server.com'


2. Use sysmail_add_profile_sp stored procedure of MSDB database to configure Database Profile.

EXECUTE msdb.dbo.sysmail_add_profile_sp
@profile_name = 'DBA',
@description = 'Profile used to send mail'

3. Use sysmail_add_profileaccount_sp stored procedure of MSDB database to map database mail account to Profile.

EXECUTE msdb.dbo.sysmail_add_profileaccount_sp
@profile_name = 'DBA',
@account_name = 'DBA',
@sequence_number = 1

4. To Grants permission for a database user or role to use a Database Mail profile use sysmail_add_principalprofile_sp

EXECUTE msdb.dbo.sysmail_add_principalprofile_sp
@profile_name = 'DBA',
@principal_name = 'public',
@is_default = 1 ;

5.   Send Mail using Created Profile.

exec msdb.dbo.sp_send_dbmail @profile_name = 'DBA',
@recipients = 'raghwendra.mishra@spluspl.com',
@subject = 'Mail Test',
@body = 'Mail Sent Successfully',
@body_format = 'text'


After executing above query check your email Inbox you will get mail like:


About the author:
Raghawendra Mishra is a consultant in Systems Plus Pvt. Ltd. Within Systems Plus, he actively contributes to the areas of Technology and Information Security. He can be contacted at raghwendra.mishra@spluspl.com