Friday 28 July 2017

All about Hackathon-MMXVII: Amazon’s Echo Dot

WHAT IS HACKATHON? 
Also known as a code fest or hack day is a sprint like event that lasts between a day and a week, in which all entities involved in software development participate and achieve a solution for given problem. It gives the teams flexibility to use various programming languages as well as hardware devices.

WHY ARE HACKATHONS CONDUCTED?
Hackathons prove a ground for every team member to present new ideas. It stimulates the team members to think and act out of the box. Hackathons provide a platform to integrate and boost up problem solving skills and creativity, which in day to day work routine might get stagnant. Also, it is a great way to rejuvenate innovations.

WHAT WAS SCAN-IT HACKATHON 2017 ABOUT?
Scan-IT Hackathon 2017 was conducted on 25th and 26th of May ,2017 with 12 members representing Systems+. Our objective was to add 1 or more skills to Alexa’s skill-set. These could either focus on Scan-IT’s ERP product: Phoenix, or just be utilitarian in nature. 

WHAT IS ALEXA?
Alexa is the brain behind Amazon’s echo dot, which is capable of recognizing voice commands and processing them for further operations. Alexa is capable of processing everything from simple day to day chores to computing heavy calculations. For example, “Alexa, play music”, “Alexa, add apples to my shopping list “etc.

THE APPROACH TO IMPLEMENT THE SOLUTION:
Once we started exploring about Alexa, the possibilities of developing skills were endless. The traditional way to make a skill set is by use of AWS Lambda Function. AWS lambda function is a service that allows execution of code without any use of servers. We built few skills that could send emails and messages using IFTTT: If This Then That. We also explored various possibilities with the use of Node-RED and Losant. We also wanted to try IBM’s Watson which would be interesting as there would be use of 2 AI’s, but could not due to time constraint.

RESULTS ACHIEVED: 
We built many skills using different API’s but apart from this we tried controlling computer with Alexa which was an achievement for us. We could browse into computer and ask it to pop up with any folder or application we wanted. The control could be as simple as opening a notepad and filling it with content you wish without use of keyboard. We also built an automation to Phoenix application where we could connect to VPN as well as open the application and browse through a filtered set of entries. Other skills included day to day chores of Alexa helping with shopping lists, booking cab, sending out emails, enlightening us with unknown facts and few more. But the possibilities of developing skills were limitless.

CHALLENGES WE FACED:
Amazon’s echo is a machine that is voice interactive with the user. To make smart use of it, it is very essential to make proper use of technologies which fit the puzzle perfectly. While making applications for Alexa the biggest challenge we faced was that it can’t interpret complex word commands. The voice commands given to Alexa should be crisp and clear to make the most efficient processing. The device needs constant power supply and WIFI connection, which can prove a drawback whilst travelling.

CONCLUSION: 
Hackathon made every participant in our team to come up with creative ideas. Two days of hackathon taught us about team spirit, sharing of knowledge and ideas, interaction with team members, implementation of ideas using various technologies but most of all about Alexa. Within two days of hackathon Alexa had become a part of our team. It was not just a device for us anymore, but a team member itself. Alexa introduced us to the world full of creativity and imagination where any thought could be made a reality like a magic. While designing skills for Alexa we realised that there is a lot more to the world of AI than just automation. It challenged us to think more and beyond boundaries. Last but not the least, it was altogether great and magical experience.

About Author:
Ammara Ansari 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: ammara.ansari@spluspl.com

Friday 21 July 2017

User Management In Application Support

User Management in Application Support is a feature which helps administrator to manage users in an application. It helps in creating, deleting and modifying an account for users in an application which helps users in wielding the application as per their requirement. An administrator of an application has the privileges to create an account for users, disable or delete account, modify an existing account etc. Also, the users whose account has been created are given credentials (i.e. Login ID and Password) for logging in to application. If the credentials are not been sent to the user then he /she will not be able to login. Whenever a User management request comes in, then a new ticket is raised on Service Desk based on the request for modification, deletion, creation and also relevant information is filled related to respective request which helps in maintaining records of users and tickets. User Management in Application Support is very much important as it helps in smooth functionality of an Application. If not managed, then there are high chances of intricacies in an application. Also, depending on various circumstances, a user can be given different roles in an application i.e. whether a user can read only or user can edit data etc. This makes the application tenable and secured. In cognisance, it is very essential to give user management rights only to the administrator else it may lead to multiple account creation for one user and also may cause mismanagement of user account. Thus, it is essential having user management in Application Support. User Management in Application Support contains the following:

User Account Creation:
An administrator has the rights to create an account for a new user. It can be created on basis of users first name, last name, email address, unique ID, telephone or phone number, Roles to be assigned which should be specified by the requestor, if available in application then group should be specified. These all fields should be filled as they are mandatory fields for user account creation. If certain fields are not specified by the requestor then a new user account cannot be created. After an account has been created, a user is given login credentials through which user can efficaciously login into application.

User Account Modification:
An administrator has the privileges to modify an existing user account. This modification happens when there is a request for a change in roles, email address, phone number etc. In user account modification, a user account is updated based on contour. For user account modification, user should specify the modification requirements and modification fields. If not specified, then the user account cannot be modified. In user account modification, login credentials are not sent to the user as the login credentials remain the same. Thus, this helps in user management whenever a new role or field is to be assigned to the user.

User Account Deletion:
User Account Deletion is used for disabling user’s account in application. This refers to deleting a user account who is not using application or has left the Company or is no more working in Application Support project. This helps in maintaining precise User accounts in the application by deleting the dormant (Not logged in for a specified period) users. If the dormant user accounts are not deleted then it may cause excess data in application and users can misuse the application causing security breach. Thus, deletion of dormant user accounts helps in maintaining user accounts in Application Support.

Conclusion:
User management contributes to the Application security and maintaining user accounts efficiently. It makes easier for users to access the application or pages they require. It also helps in maintaining user profiles and updating the same whenever requisite maintaining the evidence of each User Management request for compliance purpose.

About Author:
Mikhil Chauhan 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: mikhil.chauhan@spluspl.com

Friday 14 July 2017

Interactive Prototyping – A Catalyst for BA Role

In today’s era, there is necessity that the customer or other stakeholders involved in project should get the real feel of Software or any product before it undergoes into development cycle. To ensure this, there are interactive, high-fidelity prototypes which serves as a powerful medium for Business Analysts to test assets and interactions – the things that make a software look and feel real – before bringing it to the development team.

It is observed that IT Business Analysts are still using low-fidelity wireframes, a straight forward approach to present ideas while the potential of interactive prototypes is often underrated.

However, interactive prototypes can be a credit to BAs looking to communicate a complex requirement to teams and stakeholders, as they offer a visual approach to requirements definition and management and aligning everyone involved in the software’s creation.
Twist in Visual Requirement Gathering Approach:
Business Analyst’s role lies in eliciting, confirming and prioritizing business requirements prior to project kickoff. Defining requirements correctly is crucial in the software development life cycle, to set realistic expectations with clients and encourage sign-off. Without visual resources in the requirements definition process, business objectives and goals are often misunderstood, resulting in delivery delays, stakeholder dissatisfaction and wasted resources.

Interactive prototyping allows BAs to iterate through potential requirements quickly and dynamically. In fact, as BAs dive deeper into requirements definition, interactive prototypes become more and more tangible. They can use them to produce a list of requirements and organize them – filter, customize, add and delete – as the project evolves. This will help to reduce the number of missed requirements.

Involve Stakeholders on Real-Time Requirements Validation:
Stakeholder validation of business requirements should happen early on and often in the software development life cycle. Luckily, interactive prototyping helps to make requirements validation more visual and engaging for stakeholders.

By capturing requirements visually with an interactive prototype, BAs can demonstrate to clients what is due to happen in each screen and UI element directly within the prototype and reduce the need for hefty spec docs that don’t always show the big picture. They can produce the end-to-end flows of business rules and conditions necessary for the stakeholders to understand how the user journey will pan out – the more intuitive and interactive the better.

Stakeholders can then validate business requirements in real-time from a user-centric perspective with functional prototypes. With a series of click-through prototypes, stakeholders can walk through the requirements step-by-step contextually, taking in the entire user story.

Translate Business Requirements for Technical Team:
To ensure that the technical team understands the business requirements is another job for the BA. Quantifying the needs laid out by stakeholders into technical requirements requires focus, understanding and visual aids by interactive prototyping.

The development team needs to know exactly how the business team has envisioned the look and feel of the software. Once the BA and stakeholders have defined the project scope and uncovered the business requirements with their prototype. Technical team can later use it for understanding the business requirement in more appropriate manner.

Gather early feedback from end users with User Experience:
BAs know that successful software is ultimately liable on the user being able to engage with it – without engagement, revenue and branding will suffer. The key to creating engaging software is to test and validate the proposed ideas. Testing outcomes with the users who will eventually interact with the software is a major project success factor. However, it’s a task often neglected by BAs. 

Prototyping affords a rare opportunity to test potential solutions with real users, elicit discussion and draw on real feedback – essentially confirming the conceptual maturity of the proposed solution before additional efforts and resources are applied. UX cognitive and usability testing can be performed on interactive prototypes because they so closely mirror the working application.

In this way, BA being the project middleman will be successful in bridging the gap between vague client ideas and specific business objectives by Interactive Prototyping.

About Author:
Himanshu Suryawanshi 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: himanshu.suryawanshi@spluspl.com