Thursday, 28 August 2014

Evolution of Business Analyst Role

It is generic tendency to analyze the current year’s trends and arrive at particular direction or decision.

But then do we really compare with previous few years trends and check if the trends evolved or were lost with time? Such Analysis gives us idea if certain trend will flourish in future or will soon be demolished.

Through this blog I have just tried to analyze trends seen in Business Analysis/Analyst over last three years viz – 2012, 2013 and 2014. The consolidated details for the same are as under:

Traffic signals used: 

Project is going Agile, and BA work in Agile “Culture”…….

2012
2013
2014
Growth
Number of projects/ organizations adopting Agile Methodology continued to grow as most adopted Agile framework in the year 2012.

Business Analyst had a challenge to adapt themselves for his title in the Agile Framework
New Roles and responsibilities were created in agile Framework of project implementation for Business Analysts.

Also few instances involved BA also performing different roles in Agile (e.g. Scrum Master) along with their specialized BA role.
Agile Methodology is now not considered as a Method but as a “Culture”.

More and More BAs have started adapting Agile as it helps managing a project in better way.


BAs are Advisers, not Bouncers……..


2012
2013
2014
Growth
Business Analysts were more consider as Note Takers, ensuring that Requirements are well documented and frozen so that no requirement is missed during development.

Business Analysts were considered as bouncers to bounce the new requirements coming at later stage of the project as change requests.
From note takers the Business Analyst role evolved as Scribes
Business analyst must note details during meetings and requirement sessions, analyze the notes and derive meaningful information.  The information can be in the form of Process flows, wireframes.
BAs role evolved further as per this year trends.

Business Analysts are looked as Functional advisers and not bouncers.

The advice can be in form of suggested flow, process or proposed software solution after analyzing / understanding business problem.


We as BA are “Core” member of the team and not just an extension


2012
2013
2014
Growth
Business Analyst role as mentioned above was limited in gathering, documenting and freezing requirements.

Once the requirements are frozen, the requirements would be passed to implementation/development team for implementation.


Business Analysts being involved right from start during requirement gathering, knows exact objectives business is trying to achieve. This makes Business Analysts play crucial role in prioritize requirements.

2013 trend showed Business Analyst also involved in project development/Implementation
Business Analyst work with stakeholders right from start and hence develop great tuning with them.
It is observed that Projects will benefit from having more continuity, and form the opportunities to influence, persuade and lead stakeholders if BA’s are part of the core team.


Want to review and approve requirements, just click here……

2012
2013
2014
Growth
Business Analyst is responsible in taking notes, documenting the same and obtaining sign off from client.

Preparing hefty requirement documentation was a core role of Business Analyst.


Due to globalization and increasing importance of Virtual teams the time spent on the documentation was reduced.

In some cases Hefty documents were replaced by email MOMs, Requirement Pointers and Email sign offs for approvals. This was more because in few cases BA’s were also entrusted with additional responsibility as PM.  
More sophisticated approached are now used for requirement gathering.

In few cases web portals are used to:
·   Upload Requirements
·   Review Requirements
·   Approve Requirements
·   Versioning Requirements
·   Complete Trace of change in Requirements. 


According to ESI’s research, senior stakeholders such as sponsors, decision-makers and executives are more likely than ever to take a BA course. This is indication that they are realizing that solid requirements are the foundation for a successful project.More educated sponsor on BA, more support a BA can expect during the entire project.

About Author:
Saurabh Kane 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: saurabh.k@spluspl.com

Wednesday, 13 August 2014

The Health of Knowledge Base

Knowledge Base can be seen as an organized repository of previous issues / resolutions. For an organization, a knowledgebase is an equivalent to Google where people turn to for help and queries. In case where the application support is provided via emails / calls, the knowledge base is used only by internal employees. In case if a tool is used to provide application support, the knowledge base might be directly referred to by clients.

The health or quality of the knowledge base is very important as the presence of incorrect or outdated content might lead to application down-time as a worst case scenario. The complexity of the knowledgebase is also directly proportional to the time it takes to search / understand the resolution.

Below are some of the common steps to ensure the quality of an organization’s knowledgebase:
  1. Avoid redundancy – If data is randomly added in the knowledgebase, it may contain a lot of redundant information. It is important that all this information is removed to ensure consistency and accuracy. Unnecessary information also occupies space that can be utilized for other data.
  2. Keep it updated – Presence of outdated information may result in down-time of application as employees / clients will be referring to incorrect steps which would then take longer to resolve queries. It is a good practice to involve senior team members to update the knowledgebase as their inputs will be effective to improve its overall quality.
  3. Check validity and delete expired content – As we throw expired eatables from our refrigerator, it is important to discard information from the knowledge base which can no longer be used. This expired content can prove fatal for the system if not discarded. The knowledgebase must be hence reviewed at periodic intervals.
  4. Usage Counter – Adding a usage counter in the knowledge base can be a good idea to determine the number of times the information was referred to and access. This helps in deciding which is the most utilized information and this information can then be further refined. This data can also help in other analysis, for e.g., the queries faced by most users.
  5. Structure and language – The information placed in the knowledgebase must be properly structured such that the employees or clients can easily access the data in less time. A good quality knowledge base should easily navigate an employee / client with concise information. The management must take notice if the knowledge base gets very confusing as this may take longer resolution time and hence reduce productivity. the language must be clear, concise and easily understandable.
  6. Feedback from employees – Employee feedback can be very helpful in cleaning up the knowledge base and increasing the quality of the content. As the employees refer to the knowledge base all the time, they are the appropriate people to understand the improvement areas.
In order to provide effective and efficient application support, knowledge base is one of the most essential tools. The knowledge base can be available in any format, but the content in it must be accurate and up-to-date. An organization should dedicate time and resources to ensure the quality of the knowledge base is maintained. This will help in increasing productivity and user satisfaction.

About Author:
Kintu Racca 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 kintu.r@spluspl.com

Designing Wireframes... Don't forget to check these TOOLS!

What are wireframes?

Wireframes are an important design tool used in development. It is a visualization tool for presenting proposed functions, structure and content of a Web page or Web site. A wireframe separates the graphic elements of a Web site from the functional elements in such a way that Web teams can easily explain how users will interact with the Web site.

A typical wireframe includes:
  1. Key page elements and their location
  2. Grouping of elements
  3. Labelling, page title, navigation links
  4. Place holders, content text and images
Wireframing tools make the process of creating an app or website fundamentally easier, by visually stripping the product down and allowing all involved focusing purely on functions and user interactivity.

The first very helpful tip I can suggest is: Visualize and then draw it on a plain paper. Yes, it’s traditional and simple; but it really helps. When you see the product outline on paper, it’s much simpler to make changes to it. Once all permutations and combinations have been achieved – turn the final one into a wireframe using any software tool you are comfortable with.

There is a list of 5 of the tools that I found helpful while making wireframes:

Visio:
Visio's real strength lies in technical diagrams rather than Wireframing; however, for those already accustomed with other Microsoft apps such as Word or Excel, the interface will be very familiar. It is quite clunky, Visio does offer add-on tools which allow you to create and export a usable HTML prototype.



Cacoo:
You can easily create mock-ups for website designs, and even smart phone applications. The free plan will allow you to export the final project only in .PNG format, but I think it’s enough for those freelancers who’re not working with major clients, and mostly need something to expand their ideas upon.



Pencil:
Pencil is great for a lot of things, like mind-mapping for example, or building diagrams. It is however intended to be used for building prototypes and wireframes for web designers. It’s an open source desktop application, which works on most of the platforms today.



UXPin:
Most of the tools in this list will provide mobile support in one way or another, but it’s nice to have a free phone mock-up tool like this one at hand, when you need to do some quick prototyping without having to worry about project files or load times.



Paint:
Paint is a simple 
graphics painting program that has been included with all versions of Microsoft Windows. If you have an outline and want to make any changes on it, paint is the best and non-technical tool to use.


Clients need to understand how your proposed app or website will work. But simply explaining to them verbally or textually leaves the vast majority of functions down to their imagination. Wireframing tools can be extremely helpful in squaring that circle. Thus, making the wireframes effectively and efficiently becomes more important. This can be achieved better by making use of a good tool and conveying the idea concisely and correctly. Lastly, “Don’t Just Wireframe - convey the Design Story”.

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

SOLID design principles improve object-oriented development

SOLID is a set of five guiding principles that help developers design objects that are easy to maintain and use. Like many similar sets of principles in OO, SOLID is a guide not the goal. Let's take a look at each of the five principles.

S - Single responsibility principle (SRP)
SRP is the idea that objects should do one thing and one thing only. It is tempting to think this means that a class should represent an entire piece of business logic or data, but that is not quite correct. The idea is not to group all of the functionality that is related together, but all of the functionality that achieves the same goal together.

For example, if you have a class representing printer, putting all of the printer operations (getting toner levels, printing a page, getting an error message) in the printer class may make sense, but it is not really the right approach. Instead, you would put all of the functions related to printing in the same class, and all of the functions for reporting status in a class, and so on. You break the work down into small, digestible chunks. The payoff here is that you can make changes to a select piece of functionality without possibly affecting a ton of other items.

O - Open/closed principle (OCP)
This very simple idea is that classes can allow themselves to be extended but not modified. The source code for the original class should only be modified if a bug is found. The reason behind this is that changing the code will mean that everything depending upon it will need to be retested as well.

L - Liskov substitution principle (LSP)
LSP states that the subclass of an object can be used in place of the superclass without changing things like what the program does, whether it compiles, etc. For example, if class "elephant" is a subtype of class "animal," then you should be able to use "elephant" where you use "animal," and the "walk" method will still "walk" (even though the implementation may be different), the "numberOfLegs" property will still return the number of legs (though again, it may be a different number from the base class), the "eat" method will not throw any exceptions that it would not throw in the "animal" class, and so on. It is much easier to make changes and test when you follow LSP.

I - Interface segregation principle (ISP)
ISP dictates that interfaces need to have as little functionality in them as possible. This allows the consumer to only deal with the functionality they are concerned with, which reduces testing needs and the impact of changes to the system.

D - Dependency inversion principle (DIP)
With DIP, high-level objects are abstracted away from low-level objects. It is normal to think of the low-level objects as just being smaller pieces of a bigger one. For example, let's say that you want to query a database and fill a data set. The temptation is to pass in the database connection information to the data set and let it make the connection. Instead, you pass in a connection that is already configured, and in this way, the database can change without needing to retest the entire data set object.

About Author:
Nirmal Doshi is budding technology geek, who helps Systems Plus Pvt. Ltd. with his creativity and research on technology. He works in systems Plus and actively contributes to technology. He can be contacted at: nirmal.d@spluspl.com

Wednesday, 6 August 2014

Requirement Reuse: Vision or Realistic?

A systematic list of business requirements is almost never readily available at an analyst’s fingertips. There are certain instances where most of the business or technical requirements are not documents anywhere – it resides in the mind of the stakeholders, the feedback from the end users, and the study from the flowcharts and surveys that yet need to be created. The absolute quality of software products and services depends on the requirements stated in the Software Requirements Specification (SRS). However, several tribulations have been reported in the writing of SRS, e.g. uncertainty, incompleteness and discrepancy, especially when natural language is used.

Managing the dimensions of an ever-growing directory of requirements, test cases and other assets, is a daunting task. Some organizations have indulged into requirements reuse as a way to speed business innovation, reduce risk and control costs. Requirements reuse has been proposed as a key asset for requirement engineers to proficiently draw out, authenticate and document software requirements and as a result, obtain SRS of better quality through more effective engineering processes. The reuse of artifacts of past software development efforts in future ones is a key issue in software engineering. Software reuse is the process of reusing existing software artifacts in building a new system rather than starting development totally from scratch.

In software development life cycle, reusability can be introduced at different phases in the software development life cycle, from requirements to design, to deployment, and at different granularity from subroutine libraries to frameworks to application servers. Patterns could be considered as one of the possible techniques to attain requirement reuse .Basically patterns describe problems that occur over and over again, and then describe the core of the solution to these problems.

Dimensions of Requirement Reuse
  • Extent of reuse
    The first aspect has to deal with the magnitude of material that you are reusing. You might reuse just a single functional requirement, or you might reuse a functional requirement along with any associated attributes, such as its rationale, origin, priority, and more if those are relevant to the target project.
  • Extent of modification
    The next aspect to consider is how much alteration will be desirable to make existing requirements reusable on a new project.
  • Reuse mechanism
    The most rudimentary form of reuse is simply a copy and paste of a piece of requirements information from another specification or from a library of reusable requirements.
Example of requirement reuse - Flight Check-in System

Suppose one has to fly somewhere, there would be a list of activities to be performed. Such as
  1. Print boarding passes
  2. Change seats
  3. Upgrade tickets
  4. Pay for checked luggage
Now this could be performed in 3 different ways, in case of an airline website it would enable us to check in, change seats, upgrade tickets and pay for the luggage all together.

The same could even be performed using a mobile device or a self- service Kiosks in a similar way, but having a different mechanism.

It could also be directly performed at an airline booking counter with the airline agents’ help.

The functionality for all these operations would be nearly identical and hence reusable across the three systems, even though the user experience would be different for them. In an ideal scenario we can use the whole package of requirements in multiple projects.  We can use requirements across multiple projects even if the implementation varies in different environments. In various projects the design and functionality could be different, but the requirements could be reused and various versions could be created.

 In Figure 1 we can see that there are 3 projects – Project A, B and C. The initial requirement that was required in case of project A is now being used for project B. It could be used exactly in the same way or minor modifications could be made. Thus there are various versions based on the modifications. In case of the flight check- in system, the functionality might differ but the requirements remain the same.

Figure 1: How a requirement can evolve through reuse in multiple projects

Is Requirements Reuse Right For Your Organization?

Basically requirements reuse is not suitable for everyone; there is a broad continuum of need in terms of requirements management tooling in the market today. It is essential for organizations to first know where they lie on the requirements maturity curve. The requirements maturity curve is not really a curve but it is a dimension of the existing procedure and tools used and/or desired within an organization when it comes to requirements management. As organizations evolve along the maturity curve, the need for more capabilities – such as change management, process and workflow, traceability, reuse, etc. – within their requirements management framework exists. Many companies are still in the early years of requirements management, they have not yet adopted a requirements management tool, and are presently using business productivity applications such as Microsoft Word or Microsoft Excel to capture and track requirements.

Nevertheless, if an association has progressed on the maturity curve with respect to requirements management, and is managing multiple projects and thousands of requirements in parallel and seeking to reduce intricacy, lower cost of development, and abbreviate innovation cycles, then requirements reuse is a concept that should be investigated. Regardless of where an organization falls on the curve, reuse in its most fundamental form will provide a boost to productivity. Rather than re-writing requirements it’s advisable to copy them and modify them for the needs of each project.

Here is a list of sample questions an organization can pose to determine if reuse is a concept that could be leveraged and if it is, which flavor of reuse is best suited to the need.
  • How do you identify if you have captured all the requirements from your customer and the business? (Authoring)
  • How do your project teams influence work done by other projects? (Reuse)
  • How do you authenticate that each and every change made to software systems track directly to its business requirement? (Traceability)
  • How do product variations get tracked? (Reuse)
  • How do you assess the impact of changed requirements on development schedules and resourcing? (Impact Analysis)
  • Can you assess the effect on other projects sharing and/or reusing these requirements? (Reuse)
It is essential to determine the business significance linked with solving these challenges and what precedence do these solutions have within the organization. Reuse may not be part of the short term strategy but successful strategic companies invest in the future and that means a process and a tool structure that will grow with the organization as it matures over time.

By the application of change and configuration management paradigms onto the requirements management discipline in a solitary integrated and traceable solution can carry the power of reuse to a new level. By incorporating a progression on top of reuse and scheming how and when requirements can be tailored and reused enables one to reap these benefits without gratuitously branching and versioning objects unless it is authorized and suitable to do so.


About 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

Managing Fraud over Internet

Fraud attacks over the internet are increasing these days. Fraudsters are becoming more sophisticated both in their techniques and their tools. Fraud loss continues to impact every enterprise, in spite of significant advances in fraud detection technologies.

These days business /consumers both look upon internet and other forms of the electronic communication to reach out the mass globally, but the quirk of fate is that the very same media is used  by the fraudsters  for the criminal activities funded by the deceptive gains.


Some of the famous fraud examples are:


Most of us have received an Email outlining a situation in Nigeria that calls for desperate cry for a huge money transfer to another safe account outside the country. The recipient of the email is promised thousands of dollars for such unskilled help.


Another interesting scam is lottery scam where you receive intriguing emails of winning the lottery of the amount most of us must have only dreamt of. The list is never ending and ever growing. The scammers put together storylines that appeal human emotions and take away your contact information or, even worse, your bank account information. These scams, like most of the scams, are too good to be true and people fall for this money transfer con game. Fraud is an increasing problem with fraud perpetrators becoming more sophisticated and complicated both in their techniques and their tools. 


Steps to manage fraud are:

Fraud prevention: includes the enforcement of strict policies, procedures, access and usage controls to ensure that fraud does not take place. Fraud Prevention techniques do not ensure fraud will not take place but are the first line of defense in reducing the fraud risk and promoting awareness about the fraud that may occur.

Fraud detection: includes activities and actions that identify and locate fraud prior to, during, and subsequent to the completion of the fraudulent activity.

Fraud reduction: fraud free security is practically impossible but frauds can be reduced to some extent.

Preventive controls and detective controls integrated together can improve the effectiveness and increase the efficiency in managing the fraud. Every organization is vulnerable to fraud, but not all fraud can be prevented. It is imperative for organizations to consider both fraud prevention and fraud detection for effective fraud prevention.

Managing fraud is a fragmentary balancing act where companies continuously think about strategies and prevention techniques to overcome fraud loss. Identifying known and existing risk is the initial step of prevention. Organization can perform gap analysis and prioritize activities that enable companies protect companies’ assets, corporate values, and performances. By reducing fraud, a company can trim costs and improve profitability, and contribute greatly to the organization. Antifraud controls are requisite by law, and fraud risk assessments are the foundation stone of an effective antifraud effort. They provide an excellent means for internal audit to provide significant organizational value and gain a higher profile with the audit committee and senior management.



About Author:
Mohini Bhandari 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 mohini.b@spluspl.com 

Responsive SharePoint Design and Knock out sites!

Why Responsive: In the past, in order to have your website scale correctly on different resolutions, you would need to create a separate website , You would have to maintain each version of the site with different content making this method costly and timely.

The use of mobile, tablet, notebook and laptop devices to surf the web is growing at astronomically pace, but unfortunately much of the web isn't optimized for those devices. These devices are often constrained by display size and require a different approach to how content is laid out on screen. There is a multitude of different screen sizes across phones, tablets, desktops, game consoles, TVs, even wearable’s. Screen sizes will always be changing, so it’s important that your site can adapt to any screen size, today or in the future. Much of the web isn't optimized for those multi-device experiences.

Solution to find One Website, Many devices is "Responsive web design," also referenced by the acronym "RWD." Responsive web design, originally defined by Ethan Marcotte in a List Apart responds to the needs of the users and the devices they’re using.

We are implement responsive designs on all type of web application PHP, SharePoint 2013, ASP.Net MVC, Java server pages.

So how does responsive design actually work?

1.  Set the viewport
2.  Apply media queries based on viewport size

Media queries enable us to create a responsive experience, where specific styles are applied to small screens, large screens and anywhere in between. The media query syntax allows for the creation of rules that can be applied depending on device characteristics.



3.  Create breakpoints based on content
Design for the smallest mobile device first, and then progressively enhance the experience as more screen real estate becomes available. Keep lines of text to a maximum of around 70 or 80 characters.

SharePoint is been into picture since SharePoint Portal Server 2001 and is well known Microsoft Products. Responsive Frameworks for SharePoint 2013 and SharePoint 2010

There are three main ways to leverage responsive design within SharePoint 2013: Fluid Grids, Media Queries, and Device Channels.
  • Fluid Grids: we’ve designed based on a fixed width using pixels to keep the site at a specific width. In fluid grids, it’s about creating a grid system based on percentages.
  • Media Queries: you simply add the @media style to your CSS and call out the elements you want to change.
  • Device Channels: This is a new capability of SharePoint 2013 which introduces the ability to apply a unique master page for a specific device that is accessing the SharePoint site. For instance, you could have a custom master page for desktop browsing, but create a mobile version of that master page specifically for a mobile device.
Branding SharePoint can be a fun, rewarding yet often times challenging endeavor. SharePoint is extremely powerful. Responsive Web Design, Twitter Bootstrap (2 and 3) and Zurb Foundation (4) are converted them to work in both SharePoint 2013 and SharePoint 2010.

Last not the least Knock out Js

Knockout is a JavaScript library that helps you to create rich, responsive display and editor user interfaces with a clean underlying data model. KoSp Js, Knockout Js for SharePoint 2013 and SharePoint 2010 is a knockout Js binder extension for SharePoint REST API and SP Services. KoSp provides custom knockout binding handlers that enables easy binding of json data from SharePoint lists retrieved via REST API with oData queries and SP Services with CAML queries with client side controls.



We can use the SharePoint 2013 REST interface to get list item data from a SharePoint list and then to use Knockout.js to create a rich and responsive display with a clean underlying data model.


SharePoint 2013: Use Knockout.js and the REST service to display list data

Mobile usage is exploding and businesses need to be ready. A majority of businesses out there still do not have a mobile-friendly version of their site. Users are now starting to expect a mobile version of your site and if it’s not, they’re likely to go elsewhere. Another interesting detail is that search engine optimization (SEO) works better with RWD because there’s only one URL which makes it easier for search engines to crawl your site and give you better rankings.

SharePoint is a great platform to host your site, why not make it responsive and be ready for the future.

About Author:
Mukund Lahane 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 mukund.l@spluspl.com