Latest news

5 reasons to visit Xpand IT’s stand at Web Summit

Web Summit is back to Lisbon from the 5th and 8th of November! As one of the biggest worldwide summits on technology, the number of participants, lecturers and partners increases every year. In 2018, the organizers are waiting for over 70 thousand participants and they promise this one will be the “biggest and better” edition ever.

For the third year in a row, Xpand IT will be present as an exhibition booth. The goal is to reinforce its position as an IT leading company not only in Portugal, but also in the United Kingdom, highlighting its competences and specializing in Nearshore services. Similar to last year, Xpand IT will be on Pavilion 1, stand E144. However, if you are asking yourself why you should pass by our stand at Web Summit, we give you 5 good reasons to convince you:

1. Xpand IT’s new AI Solutions Center

The subject of Artificial Intelligence is, in fact, the center of our priorities to countless companies and organizations throughout the world. And, for Xpand IT, it could not go any different. Therefore, we launched an Artificial Intelligence center that seeks to work in proximity with the customers, in order to create truly useful solutions for the users. Come meet us, talk to our experts and get to know everything about the new AI Solutions Center and about the solutions that can be implemented in your company. If you got curious, we suggest you jump to point 5.

2. The best job opportunities

In order to deliver the best projects, we need the best experts. If it was already on your plans to take advantage of the networking that Web Summit provides to find new job opportunities, Xpand IT stand is the right place. Here, you can talk to our recruitment team and know which offer better applies to what you are looking for. We are waiting for you!

3. Our Success Cases

If, on the other hand, you are at Web Summit searching for the right partner to begin a project in your organization, you can also visit us. In our booth, you can find the answers and advice you are looking for through networking with one of our experts. Xpand IT has countless examples of success cases from leading companies, national or international, and you can get to know them better by coming to our stand E144.

4. Our team

Besides being highly specialized in all technologies we work with, we are also very nice. Come visit us to talk about possible projects, ask technical questions, clarify any doubt about our business areas or just to say hi and win one of our prizes!

5. Sentiment Meter

Last but certainly not least (quite the contrary)! If you came here directly from no. 1, we assure you that you will not be disappointed. If you got to this point by the natural flow of the article, welcome.

Sentiment Meter will be the main focus on our stand and it is one of the simple examples of how Artificial Intelligence can be implemented in many different solutions.

Sentiment Meter is a game in which an emotion is taken at random and the participants only have to make that same emotion, using facial expressions. According to their effort, each player gets a score and the player wins the correspondent prize.

We do not know how you feel about acting, but the only assurance we can give you is that you will always win!

For more information on Microsoft’s Cognitive Services and on Sentiment Analysis, check out this blog post.

Ana Lamelas5 reasons to visit Xpand IT’s stand at Web Summit
read more

Microsoft Cognitive Services: the potential of the main APIs

Microsoft Cognitive Services is a set of APIs (Application Programming Interfaces) and SDKs (Software Development Kits) which are available in Azure, and that allow developers to create apps that are more intelligent and dynamic, as well as to perform enriching actions for the user’s experience.

Basically, and according to Microsoft, “they are intelligent algorithms that allow their apps, machines and bots to see, listen, talk, understand and perceive users’ needs with natural communication methods”. These algorithms, which develop and enhance their own potential through Machine Learning, use background data which, in turn, is gathered through the use of mobile apps.

So, is it possible to talk about the democratisation of artificial intelligence? Yes. With Microsoft Cognitive Services, developers can implement facial or voice recognition features with just a few lines of code, without the need to develop algorithms from scratch. Therefore, Cognitive Services enable in depth readings and insights for a personalised understanding of the profile, through services such as:

  • Vision: includes image processing algorithms capable of identifying images in an intelligent manner. They can be used for facial recognition in order to work as a security mechanism with Face API, which gives the probability of an image being of a given person and identifies features such as age or sex.

It can also perceive emotions with Emotion API, detecting facial expressions of happiness, sadness, surprise or fear, for example.

  • Voice: converts spoken audio into text (with Bing Speech API) and verifies or recognises the speaker in a given app. With Translator Speech API, the user can have a translation in real time, written or spoken.
  • Knowledge: provides monitoring of information and complex data, in order to perform actions such as intelligent recommendations or semantic research (through Recommendation API or Custom Decision Service).
  • Language: processes natural language, through ready-made scripts and assessing emotions, and learns to identify the user’s needs. The ex-libris of language services is Language Understanding Intelligence Service (LUIS) which, by using intelligent voice recognition, allows the user to develop their own language models and bots to understand commands and perform actions according to what is requested.
  • Search: allows actions such as word suggestions, image or video search and actions that can be performed by APIs like Bing Web Search or Bing Custom Search.

How can Cognitive Services be used in different sectors? 

Retail: cognitive services enable the extraction of detailed insights, which will help understand the needs of your existing customers and attract new ones. For example, you will be able to understand what difficulties your customers have when buying online and address these, support your sellers in presenting the right product to the right customer, or simplify the payment process.

Education: you can find the interests of each student and modernise your teaching style with cognitive services and machine learning, or you can manage suggestions on how to improve the classroom experience.

Insurance: you can give your customers a better experience with mobile apps by using cognitive services such as facial or voice recognition. You can also use them to detect possible fraud.

Finance: they help to customise specific campaigns based on customer features or behaviours, leading to increased sales and ROI.

Health: you can develop a more personalised assistance to your clients with a bot. It can help, for example, with selecting a specialist to schedule an appointment. Another huge potential is the assistance cognitive services will be able to provide to doctors, by conducting a more detailed diagnosis.

Watch a real time demonstration of cognitive services at the 2018 Xamarin Experience event here.

Ana LamelasMicrosoft Cognitive Services: the potential of the main APIs
read more

Top 5 main Agile methodologies: advantages and disadvantages

What are agile methodologies?

The first we heard about Agile development (or the term Agile) was back in 2001, when a community of developers that was tired of using development methods considered to be “heavy” – namely, the waterfall model – decided to set out a manifesto: The Agile Manifesto. This very important document had so much impact that it has worked as a bible for Agile development even until today, laying out all principles and good practices.

Agile methodologies argue that, above all, we should seek client satisfaction through continuous deliveries of value-adding software, by keeping up constant communication with the client and, also, by focusing on communication between team members. Contrary to previous practices, the Agile methodology is not characterised by the complete definition of a product – a complete analysis or the definition of all categories/requirements – but by a dynamic interaction that allows constant delivery.

According to the Agile Manifesto and some of its 12 principles:

  • Customer satisfaction is the priority, demonstrated through continuous deliveries and added value.
  • Changes to the requirements should be accepted, even if at a late stage of the development: “Agile processes harness change for the customer’s competitive advantage”, as is stated in the Manifesto.
  • The customer and the development team should work together on a daily basis.
  • It is necessary to provide a good environment and good support to development teams. Only in this way it is possible to keep them motivated.
  • Agile processes promote sustainable development because of their constant rhythm and technical excellence, which improves productivity.
  • Retrospective moments inside a team are essential, allowing it to make the necessary adjustments and promote efficiency.

Basically, Agile development follows an incremental model, which develops collaboration within the team and continuous planning, as well as everlasting evolution and learning. Agile methodologies should respect the software development cycle – planning, execution and final delivery – therefore allowing software to be developed in stages; this makes it easier to identify and resolve bugs.

The main advantage of using Agile methodologies is not only the fast delivery of software, but also the constant delivery of value to the customer, since deliveries are incremental.

There are countless methodologies that follow this Agile mindset. In this blog post, we highlight the five main Agile methodologies and their advantages and disadvantages in the software development universe.

Main Agile methodologies:

1. Scrum

Scrum is, undoubtedly, the most used of the many frameworks of the Agile methodology. Scrum is characterised by cycles or stages of development, known as sprints, and by the maximisation of development time for a software product. It is usually used in the management of development projects for software products, but it can also be used in a business-related context.

Every day there are small 15-minute meetings, the daily scrum, that take the role of synchronising activities and finding the best way to plan the workday.

Advantages: Disadvantages:
  • There is a lot of motivation in teams, because programmers want to meet the deadline of every sprint;
  • The transparency allows for the project to be followed by all members of a team or even an organisation;
  • The focus on quality is a constant in the scrum method, resulting in fewer mistakes.
  • The dynamics of this method allow developers to reorganise priorities, ensuring that sprints that have not yet been completed get more attention
  • The segmentation of the project and the search for agility of the development can sometimes lead the team to lose track of the project as a whole, focusing only on one part;
  • Each developer’s role may not be well defined, resulting in some confusion amongst team members.

2. Kanban

The word Kanban is of Japanese origin and its meaning is linked to a time concept, “just-in-time”. In practice, the Kanban method exists in a board or table (Kanban board), divided into columns, that shows every flow of the software production. As the development evolves, the information contained in the table changes, and when a new task comes into play, a new “card” is created.

The Kanban method requires communication and transparency so that the members of a team can know exactly at what stage the development is and can see the status of the project at any time.

Advantages: Disadvantages:
  • Ability to view all tasks of one project (Completed, In Progress or In Testing, for example);
  • It is possible to limit the number of running tasks (that is, the amount of work, bearing in mind its resolution or deliverability);
  • Focus on the duration of a cycle – how long it takes a task to go from backlog to the final stage;
  • Allows continuous deliveries.
  • It is possible for members of a team to misinterpret the information show on the Kanban Board, especially when it is revealed as outdated;
  • Since there are no timeframes in Kanban, you can face time related problems, such as delays, associated with each and every stage.

3. Extreme Programming (XP)

This is a typical Agile Development framework, developed by Kent Beck, and can be adapted to development companies of various dimensions. It is a methodology that emphasises values such as Communication, Simplicity, Feedback, Courage and Respect and prioritises customer satisfaction over everything else. This methodology offers trust to the developers by motivating them to accept changes in the customer’s requirements, even if they arrive in a later stage of the development cycle.

Teamwork is extremely important in XP, since when there is a problem, it is solved by the whole team of managers, developers or customers. They are all essential pieces of the same puzzle, hence creating a fertile environment for high productivity and efficiency in a team. In Extreme Programming, software is tested from day one, collecting feedback to improve development.

Advantages: Disadvantages:
  • The simplicity of the written code works as an advantage, since it allows for its improvement at any given time;
  • The whole process and the whole cycle of XP development is visible, therefore creating goals for developers and showing results in a relatively fast way;
  • Software development turns out to be more agile than in other methodologies, precisely because of the constant testing;
  • XP also contributes to uplifting the talent of the teams and to their withholding.
  • The extreme focus on code can lead to less importance being paid to design, hence requiring extra attention to that matter;
  • This framework may not work in the best way possible if all team members are not working in the same geographical area;
  • In XP projects, a registry of possible errors is not always maintained, and that lack of monitoring can lead to similar bugs in the future.

4. Lean Development

Lean Development is a methodology that comes directly from Lean Manufacturing, created by Toyota, and applied to software development. This method offers a conceptual framework and follows values, principles and good development practices that can be applied to an Agile development approach.

There are seven essential principles: Deleting the things that do not matter (everything that does not bring effective value to the customer’s project is deleted); Quality development (creating quality in development requires discipline and control of the quantity of residuals created); Creating knowledge (the team is motivated to document the whole infrastructure to later retain that value); Differing commitments (this point encourages the team not to focus too much on planning and anticipating ideas without having a prior and complete understanding of the requirements of the business); Fast delivery (deliver value to the customer as soon as possible); Respecting the team (communicating and managing conflicts are two essential points); Optimise the whole (the development sequence has to be perfected enough to be able to delete errors in the code, in order to create a flow of true value).

Advantages: Disadvantages:
  • Allows the team to delete superfluous activity, therefore saving time and money;
  • Decreases the time needed to deliver functionalities, since it prepares the development team in the decision-making process, hence increasing general motivation;
  • Easily scalable methodology and easily adaptable to projects of any dimension.
  • It is very dependent on the development team’s ability and on the following of Lean principles, which means it will be necessary to have extremely dedicated and talented developers;
  • It is easier to lose focus, since various tasks are divided into a number of elements;
  • It requires some documents, in particular on the characteristics of the business which is the subject of the work. Otherwise, there is a risk that the development may be done incorrectly and present errors.

5. Crystal

This is a family of Agile methodologies which includes variants such as Crystal Clear (up to an 8-person team), Crystal Yellow (up to a 10 to 20-person team), Crystal Orange (up to a 20 to 50-person team) and Crystal Red (for big teams with 50 to 1000 people). Crystal focuses on principles such as People, Interactions, Community, Skills, Talent and Communication, aiming to deliver the best possible software development process. The core of this development process is interaction and symbiosis, which have to exist between the people allocated to the projects and processes in order to bring efficiency to the development.

According to its founder, Alistair Cockburn, “Crystal is a family of software development methodologies, which works with the power invested by people, and is extremely light and stretch-to-fit”. Basically, Cockburn believes that the talent and the way team members interact brings benefits for the whole project.

Advantages: Disadvantages:
  • It ensures frequent deliveries, in order to identify eventual problems in every stage;
  • There is always space to improve characteristics, taking some time from software development and allowing for a discussion about how to perfect processes;
  • Allows for a closer communication and promotes interaction and sharing of knowledge between team members;
  • Requires a technical environment with automated tests, configuration management and frequent integration.
  • The fact that there are variants in the methodology family means that the principles might vary with the size of the team and the size of the project, resulting in projects that might not be so straightforward;
  • It might not work in teams scattered through different areas, because of the constant need to communicate and reflect;
  • Planning and development is not dependent on the requirements.

At Xpand IT, software development is personalised, focusing on results and customer satisfaction, stage by stage. The whole development is governed by Agile principles. Therefore, in order to respect the development cycle, achieve the desired results, predict possible errors, maximise productivity and develop safely, while still keeping team members motivated, we created our own methodology: XPAgile (a mix of Agile frameworks – Scrum and Extreme Programming – that ensures the best results within the given deadlines).

For more information on the development methodology of Xpand IT, click here.

Ana LamelasTop 5 main Agile methodologies: advantages and disadvantages
read more

Full Life Cycle API Management with WSO2

The growth and constant evolution of the use of computer systems in all areas of human development, together with the need of companies to integrate with each other, besides offering services to their clients through the Internet, results in the multiplication of open systems, which provide services through communication interfaces. Many companies exist only because of this type of integration interface – the so called APIs (Application Program Interface).

Over the years, several network communication protocols have been created to provide standardized data exchange: RPC, CORBA, DCOM, RMI, WebSocket, SOAP (Web Services) and REST. These last three protocols are the most commonly used protocols since they are based on an open HTTP transport protocol, standardizing and popularizing the exchange of data and services, through public or private APIs. The amount of APIs made available by companies, both internally and externally, can grow exponentially in quantity.

Because of these movements there will be a growing need to document and monitor the creation and use of these APIs.

Key features of API Management

Some of the key features of an API management solution include:

  • Performance and Reliability– must support high throughput with reduced overhead;
  • Lifecycle and Governance– should provide workflows for API development and subscription, API versioning and management/monitoring capabilities;
  • Throttling and Monetization– capable of controlling API traffic and charge for API usage;
  • Engagement– easy to onboard new subscribers, providing a good and well documented test environment;
  • Composition and Orchestration– able to implement specific functionality to an API (e.g. call 2 different APIs and return aggregated result).

The WSO2 API lifecycle

WSO2 API Manager overcomes these challenges with a set of features for creating, publishing, lifecycle management, release, monetization, governance, security, etc.

From designing to building and using an API, there is a process that involves engineering, publishing and administration this process is called the API Lifecycle. The life cycle of an API is something crucial and strategic for an organization. Generally, the definition of the life cycle is defined in Planning and Designing the API, Developing the API, Testing the API, Deploying the API, Retiring the API. WSO2 API Manager has more detailed flows for each cycle, where you can create sub flows within each cycle, for example: In the Retiring the API, before doing the removal there is the blocking flow, where when an API is blocked it is possible to deprecate the API or return to the published state. In this way, each company can define its life cycle, and work internally according to its needs. One of the great differentials of WSO2 API Manager is that you have complete freedom to modify all internal flows and customize according to your needs.

By default the WSO2 API Manager defines this cycle between the components below:

Picture 1 – API life cycle and Architecture
  • API Publisher:Is responsible for creating, monitoring, managing, and publishing the APIs. It is the web interface for API Creators and Publishers.
  • API Portal (Developer Portal):Web interface intended for consumers of APIs, developers etc. In this interface it is possible to explore the existing APIs, test, subscribe and monitor all the APIs that were subscribed by the user.
  • API Gateway:The Gateway is the main component of the API Manager, it receives all API calls and forwards to the backend, before forwarding it, it is necessary to pass this request on to Key Manager and Traffic Management to validate all the policies of security before proceeding.
  • Key Manager: responsible for all authentication and security of the API, takes care of all Token Oauth lifecycle management.
  • Traffic Manager: takes care of every part of Throttling’s policy, thus verifying if the calls belong to some user with limitation of request in that API and if the user has not exhausted his limit of requests.
  • Analytics:Analytics is a real-time analytics engine, which in addition to exposing detailed graphs about the APIs, also takes care of the real-time monitoring part generating several types of alerts such as security incident, abnormal calls to a certain API, etc.

WSO2 API Manager is a very robust and complete API solution, having as a differential its entire graphical implementation interface, which differs a lot from the competitors that have a greater focus on the Gateway, to build a robust gateway and not giving much focus to the other components needed for the API lifecycle such as the Store and the Publisher. WSO2 came out ahead with this product because it was able to meet all aspects of full solution either with a very robust gateway as well as an intuitive interface facilitating deploy and the entire lifecycle. Due to this, in the Gartner quadrant, the WSO2 API Manager is considered as a “Visionary”.

Just to get an idea of the robustness of the product, with a minimum recommended configuration, each node can support up to 3000 TPS (Transactions Per Second).

If you’d like to know more about WSO2 API Manager and its features, go to WSO2 API Manager web site and explore all implementation possibilities.

Vitor Darela

Senior Consultant, Xpand IT

Vitor DarelaFull Life Cycle API Management with WSO2
read more

Gamification: Myth vs. Reality

First of all, let’s make it clear: no matter what you think Gamification is, it certainly isn’t the silver bullet solution for your problems. If you have a problem in your teams, processes or organisation, you should address it and evaluate the best way to fix it, because applying Gamification to a broken environment won’t solve anything (it will probably make it worse!)

Having said that… what is Gamification then? And how can I better apply it?

This post is not intended to go deep into the definition and concepts of Gamification but rather to provide a better understanding of Gamification by identifying common myths in many people’s visions of it.

The myths

1st myth: Gamification is transforming something into a game

There is a generalised idea that something is gamified when you are playing a game. That is inaccurate. The majority of the time you are playing games, you are not in a gamified environment.

Creating a game is a separate line of study, called Game Design. Game Design focuses on designing a game by creating a plot, the characters, the mechanics, an evolution, game play interaction, etc., and putting those in a confined environment (the game) where the user (player) actively participates, evolves and, hopefully, succeeds. It is more like creating a new challenge a giving the player the tools to face it.

Gamification, even though it shares similar benefits, is addressing real world challenges with what we learn from games. It is the process of applying game elements and game design techniques to non-game contexts, with the objective of engaging and motivating people by making their real world tasks more fun.

At an enterprise level, for example, Gamification can be used to on-board and engage team members, enhance productivity and efficiency, train people, and innovate.

2nd myth: Applying Gamification will make things at least as engaging as they were

Although FUN is one of the simple and clear words that describes the objective of Gamification, it is also a very vague and relative concept. When not applied correctly, game elements and techniques may create the opposite effect of what was intended. That is why sometimes people see far worse results after applying Gamification initiatives to the environment as opposed to not applying any.

Bear in mind that engagement has to do, among other things, with voluntariness and choice. Forcing people to do something negates the effects of a Gamification strategy.

3rd myth: If I understand Game Design, I understand Gamification

If this is your motto, then you’ve been living in a dream world. Although sharing similar elements and techniques, as said earlier, Gamification is far more about the psychology than the actual product. Game Design is more focused on creating the game and all its elements in a way that is appealing and involving to the player, whereas Gamification is especially concerned with affecting human behaviour to achieve a specific outcome. It is intended to provide a long-term and sustainable benefit rather than entertainment per se.

4th myth: Gamification = PBL (points, badges and leaderboards)

If you are not new to Gamification, you probably know that when gamifying, people tend to apply PBL straightforwardly, probably because this is the most common and visible aspect of a gamified environment. Although in many cases PBL are present, the scope of the Gamification initiative goes far beyond these elements. You have to free your mind from vanilla PBL application and start to think about how you can get more out of Gamification.

You should start from the top, by thinking about how you will affect the users with the experience: things like emotions, a narrative, a progression, etc., that support the behaviours that you wish to achieve. Then you can start to consider the mechanics, the processes that drive the user – like challenges, competition/cooperation, feedback, rewards, win states, and many others – so that you create a meaningful experience. And to achieve those, you can use PBL and any other elements (achievements, avatars, collections, levels, virtual goods, etc…) as tools that you have at your disposal to implement your strategy.

5th myth: Gamification doesn’t work

This is a little bit farfetched, but sometimes people don’t believe in Gamification just because of past experiences gone wrong. It’s true that Gamification doesn’t fit all scenarios and, for the ones it does, it should be applied and managed correctly to get the desired outcomes (welcome to the real world!) Always evaluate all possibilities and consider the pros and cons of any Gamification implementation initiative. Don’t be afraid to cast out Gamification when you think it will not benefit your context or it might create significant risks. As discussed at the beginning, this is not a panacea or a certified results procedure. The context must be set up, and the implementation is a journey of adoption and change, so it takes time and care to succeed.

A little bit of the psychology behind Gamification

There is a lot that can be discussed on the psychology and behavioural side of Gamification.

Its core is about understanding people’s behaviour (Behaviorism), by analysing what people do in response to stimulus:

  • By providing feedback, people tend to correct and adjust behaviour accordingly;
  • Creating consequences or giving rewards based on their actions helps to guide them to the intended behaviour;
  • Randomly shooting their dopamine system with something unexpected makes them feel good and more engaged.

Because the Behaviourist approach is limited, Gamification is also going deeper and understanding what people feel and think (Cognitivism), by trying to determine the motivation behind the action. Motivation can be:

  • Extrinsic, when the action is done for the purpose of the reward (e.g. fame, money, etc.), which can demotivate and is not sustainable;
  • Intrinsic, when doing the thing for its own sake, because it is rewarding and enjoyable by itself, thus creating much more engagement.

Pitfalls of Gamification

There are several pitfalls and dangers associated with bad Gamification use.

One of the dangers concerns abusing or manipulating people into having specific behaviours. Remember that Gamification is about freedom of choice, so any military-like enforcement of behaviour will push people away instead of bringing them in.

An additional pitfall is what in Gamification is known as instant gratification. Instant gratification relies on consistently rewarding someone for a simple achievement – like, for example, submitting a suggestion through a form. This devalues the reward and potentially leads people to disregard what is really important (the suggestion) just for the purpose of getting more rewards (with more clicks).

Another bad use of Gamification is when you expose people or set them “playing” against each other. An example of this might be the implementation of leaderboards in an organisation, showing points and/or rating people in “who is better than whom” and “who are the worst performers” reports. This potentially promotes a bad environment between co-workers and can create entropy and demotivation within teams.

Good Gamification examples

The following is a selection of good examples of the application of Gamification that succeeded in achieving their goals and the desired behavioural pattern:

Gamification Description Achievements Why it worked?
Volkswagen’s speed limit enforcement in Stockholm Induce responsible driving behaviour by implementing a lottery between drivers respecting the city speed limits with the money collected from fines of over-speeding drivers. Resulted in 22% average speed reduction. Probably because people didn’t need to speed in the first place. Creating a reward for doing it within the speed limits raised awareness (feedback) and created a new motivation for people to drive by.
StackOverflow’s contribution mechanism Make Stack Overflow ‘the’ relevant reference for asking help and finding answers on specific technology topics (mainly programming). How many times do you end up on Stack Overflow’s website when searching for a specific technology issue resolution? That explains it all. It promotes a sense of community, by rewarding meaningful contributions and giving voice to the entire user community (feedback and revision system).
Duolingo Website and app that eases the process of learning new languages. Made language learning easier and now has more than 68 languages available and 200 million users worldwide. Received several educational and learning technology prizes. It is easy and simple; it provides constant feedback; it gives freedom for you to choose your own pace; it gives options on which area you want to focus next; it rewards you more when you put more pace or effort into it; it gives you lingots (the Duolingo currency) as rewards for you to unlock other challenges and learn more.

Nuno Santos

Enterprise Solutions Manager, Xpand IT

Nuno SantosGamification: Myth vs. Reality
read more

Machine Learning: autonomous learning

Machine Learning has been developing further every day, thanks to the digital transformation movement. The original basis was a theory that believed computers could learn to perform specific tasks and to recognise patterns. The challenge was simple: to check if computers could learn from data.

Machine Learning provides systems with the possibility to learn and improve from experience, without needing specific programming for that effect. The focus is on developing programs that use available data and can learn on their own. The mathematical models are built and powered with – potentially – large amounts of data. The algorithms learn to identify patterns and to extract insights that are applied when new information is processed. This term dates back to 1959, when the pioneer Arthur Samuel defined Machine Learning as the ability of a computer to learn without being explicitly programmed to do so.

This learning process starts with data processing and trying to identify patterns. The main goal is to allow computers to learn autonomously without the need for human assistance, using that knowledge to make decisions according to what was “learnt”. Even though machine learning algorithms have been around for a long time, the application of these mathematical calculations to Big Data, with more frequency is a recent development. However, according to industry reports, what is considered to be an exponential growth in this area today is going to be seen as only “baby steps” in 50 years. This AI field is expected to grow extremely fast in the coming years.

Examples of Machine Learning

The continuing interest in this practice stems from a few key factors that have also made data mining and Bayesian analysis extremely popular: growth in the volume and variety of available data; cheaper and more powerful computational processes; and low cost storage.

A few examples of machine learning applications in some companies include self-driving vehicles; recommendations from online platforms such as Amazon and Netflix based on users’ behaviour; voice recognition systems such as SIRI and Cortana; PayPal’s platform, which is based on machine learning algorithms to fight fraud by analysing large quantities of data from the customer and assessing risks; the model from Uber that uses algorithms to determine time of arrival and departure locations; SPAM detecting mechanisms in email accounts; facial recognition that occurs in platforms such as Facebook.

Industries that are choosing Machine Learning

Most industries with large amounts of data have already acknowledged the potential of this technology. The possibility to extract insights allows companies to obtain a competitive advantage and work more efficiently.

Financial Services

Banks and other financial entities are using machine learning with two goals: extracting valuable insights from customer data and preventing fraud. Insights identify investment opportunities according to customers’ profiles, and, concerning fraud, the identification of high-risk customers and suspect transactions is improved.

Furthermore, this technology can also influence customer satisfaction. By analysing a user’s activity, smart machines can predict, for example, a possible account closure before it happens and prompt mitigating actions.

Health

Health entities can capitalise on the integration between IoT and data analysis to develop better solutions for patients. The emergence of wearables allows acquiring data related to the patients’ health, which, in turn, allows health professionals to detect relevant patterns including risk patterns. Therefore, this technology offers the potential for better diagnosis and treatment.

Retail

Nowadays, the impact of smart machines in users’ retail experience is quite obvious. The result is a highly personalised service that includes recommendations based on purchase history or online activity; improvements in customer service and delivery systems, where machines decipher the meaning of users’ emails and delivery notes, in order to prioritise tasks and ensure customer satisfaction; and dynamic price management by identifying patterns in price fluctuations and allowing to prices to be determined according to the demand. The ability to gather, analyse and use data to personalise, for example, a purchase experience (or implement a marketing campaign) is the future of retail.

Transportation

Analysing data to identify patterns and trends is key to the transportation industry, since profit growth means more efficient routes and the projection of potential problems. Data analysis and the modelling aspects of machine learning are important tools for delivery companies and public transportation, allowing them to improve their income.

Machine learning apps allow companies to automate the analysis and interpretation of business interactions, extracting valuable insights that make personalising products and services, possible.

Xpand IT has a complete service portfolio in Machine Learning. If you want to know how to use Machine Learning in your business and obtain real added value, we can help. Do you want to know how we can help your business? Contacts us here and get the best out of this technology!

Sílvia RaposoMachine Learning: autonomous learning
read more

Apache Superset Open Source BI: almost the alternative to Tableau

What is Apache Superset?

Superset is a modern BI app with a simple interface, feature-rich when it comes to views, that allows the user to create and share dashboards.

This app is simple and doesn’t require programming, and allows the user to explore, filter and organise data. The best part is… it’s Open Source!

What does Apache Superset provide?

What is truly appealing about Apache Superset is the fact that you can explore each dashboard in a complex way. Superset allows you to focus on each graph/metric and easily filter and organise.

Another attractive feature in this app is the SQL/IDE editor with interactive querying.

Concerning security, Superset allows you to define a list of users and a list of default functionalities (associated with the groups of users) and allows you to view user statistics, providing you total control. You can establish baseline permissions, as well as granting access to certain views or menus. The app also provides an action log.

Visually, Superset has a minimalist and well-organised interface. Even though it is not as easy to use as Tableau, Superset can be an alternative to creating dashboards or people with some knowledge of SQL.

Database support

Superset supports most SQL databases by using Python ORM (SQL Alchemy), which allows you to access MySQL, Postgres, Oracle, MS SQL Server, MariaDB, Sybase, Redshift and others (more information here).

Superset also works with Druid (for example, Airbnb uses Superset with Druid 0.8x), but it does not have all the advanced features available.

SQL-LAB

This feature is definitely a plus. SQL-Lab allows you to select a database, schema and table (previously uploaded) and do an interactive query, preview the data and also save the query history (as shown below).

SQL Lab

A semantic layer allows you to define fields and metrics (for example, ratios or anything expressed by SQL):

SQL Lab

Query history:

Query history
Query history

You also have Python modules available (some available macros), inside SQL, via Jinja.

The least positive side of this is the fact that you cannot add or query multiple tables at the same time. The solution is making a view, which works as a logical layer and abstracts the query from SQL, therefore acting as a virtual table. The only negative aspect of this is that there will always be a query running against another view query, thereby potentially resulting in performance issues.

How to create a dashboard

To create a dashboard, Superset works as follows: there are sources, where you can find databases and tables; slices which are sheets with graphs; and, lastly, dashboards which are composed of groups of slices. Each slice is associated with one or more dashboards, and each dashboard has various associated slices.

Apache Superset dashboard

Views have different types of graphs available such as histograms, box plots, heatmaps or line charts.

Apache Superset dashboard

It is simple to edit graphs: the available features for each view are on the left-hand side, and you just have to change them and press “Run Query”.

Although flexible in most areas, Superset imposes some standardisation, which happens with the colour schemas.

Apache Superset dashboard

Each view allows you to filter views through wildcards.

Apache Superset dashboard

Superset also allows you to share the view, export data to .json and .csv, and see the exact query performed behind each view.

Apache Superset dashboard

Security

Superset integrates with the main authentication backends (database, OpenID, LDAP, OAuth, REMOTE_USE, …).

Concerning privileges, as stated above, this app provides default roles such as Admin (full access), Alpha Gamma, Sql_lab and Public.

It is possible to establish permissions for each user, restricting access to a subset of data sources, menus, views, specific metrics and other criteria. Hence, it is relatively easy to define which type of permission and/or access to data is granted to each person.

People using Superset

According to GitHub, Superset is currently being used by Airbnb, Twitter, GfK Data Lab, Yahoo!, Udemy and others.

It is important to note that “Superset was tested in large environments with hundreds of users. The production environment of Airbnb runs with Kubernetes and more than 600 active users who see more than 100 thousand graphs per day”.

Superset Vs Tableau

Tableau

Superset

  • Able to join between tables within the same or different DBs.
  • Unable to query/join multiple tables. Only possible view by view, which means having multiple queries, thereby affecting performance.
  • Detailed customisation of dashboards, with legends, filters, tags, etc.
  • Limited customisation by type of view (however, creation of CSS templates is available).
  • Easy beginner learning and doesn’t require users to know SQL. Since the platform allows more complex and flexible tasks, there is a second learning curve for users who want to make the best use of Tableau.
  • Easy and smooth learning, but requires SQL knowledge from users.
  • Paid
  • Free and Open Source

Superset’s main advantages

Besides all the advantages already stated, one of the main features of Superset is… it’s Open Source Business Intelligence!

Other advantages:

  • Provides BI without needing code (easy to use for those who are not programmers: you only need to know basic SQL);
  • Easy and quick setup;
  • Provides “SQL-Lab” that allows interactive querying;
  • A semantic layer that broadens the dashboard with ratios and other metrics (based on SQL);
  • Easy and attractive interactive view, that allows data exploration;
  • Satisfies the needs of most companies to allow simple data analysis.

Superset’s disadvantages

  • The app still doesn’t support NoSQL databases;
  • Even though the number of users is growing, it still has little or no support;
  • Sometimes, SQL-Lab freezes in queries for large amounts of data;
  • Has a considerable number of other unsolved issues.a

Susana Santos

Data Scientist, Xpand IT

Susana SantosApache Superset Open Source BI: almost the alternative to Tableau
read more

Best practice for service request management

Service request management

What are service requests?

IT teams receive a wide variety of service requests from their clients, including requests for access to apps, software improvements, computer upgrades and new smartphones. These kinds of requests are known, according to ITIL, as “Service Requests”, and “Request Fulfilment” is the corresponding management process. A lot of service requests are recurring, and in order to obtain maximum efficiency, it is necessary to establish processes and procedures to be followed.

Request fulfilment – what is it?

Request fulfilment is the process followed by the Service Desk team and consists of fulfilling a request from a client. Its mission is to answer the request with the best quality support. In an organisation where a high number of service requests need to be managed, it is recommended that the management is done via a totally independent workflow for logging and handling requests.

What are the four main processes of IT?

  1. Service request management – a formal request from a user for something that needs to be provided.
  2. Incident management – a non-planned disruption of an IT service or a reduction of its quality – for example: “The website is down.”
  3. Problem management – eliminate recurring incidents and minimise incidents that can be prevented – for example: “The reporting app problem is happening again.”
  4. Change management – standardised method to control changes to the IT system in order to minimise its impact on services – for example: “The database upgrade is now complete.”

Prioritisation in service request management

To IT teams in organisations, service requests frequently exceed available capacity in terms of time and resources. IT service teams in big companies constantly answer business requests and, much of the time, they must prioritise: responding first to clients who need the most attention. However, clients complain that it is hard to work with IT because they do not respond, and that it takes too long to complete requests that they need for work. A service request management system makes this process really simple, since it gives people a “self-service” ability, provides them with answers based on suggestions from a knowledge base and streamlines the whole request fulfilment process, therefore delivering an excellent service. In the light of all these issues, there are a few things that IT service teams should prioritise.

Top five prioritisations to deliver an excellent IT service:

  1. Client comes first – service desk teams can often be driven by supply instead of demand. Are you creating a service request catalogue with self-service features because you think it is good, or are you working directly with your clients, meeting their biggest needs? A lot of organisations have created a catalogue portal of service requests that has resulted in a very low usability. Learn from others’ mistakes, and create something based on demand, not on supply.
  2. Focus on “popular” requests – service desk teams can start from a broad and superficial standpoint or from a narrow and deep one. Understand what will serve your organisation and your clients best. It is common practice to start with a sub-group of “popular” services and expand from there, based on usage and feedback. Try not to overload your team in the early stages, and remember that a failed launch will make it more difficult to have clients coming back for a second try.
  3. Integrate knowledge – clients seek answers. Therefore, give them easy access to the knowledge base and redirect tickets to searchable items. Providing a self-service experience that your associates love is the first step to make the whole process easier and to make them ask again.
  4. Centralise the self-service portal – clients are always looking for a single place where they can get help, so even if you develop the most powerful self-service system, it will be useless if it’s not easily found by users. Always try to centralise and increase value when they use the services you offer.
  5. Streamline automation – providing highly functional and knowledge-centric service request management is an excellent first step, but you need to find ways to make your IT team deliver even more value to your clients through a self-service experience. Here, the power to be effective is found in automation. When you incorporate automation into your service desk functionality, you reduce the overall workload of your IT team by taking care of the most common and repetitive tasks.

Service request management process

Even though there are some variations in the way a service request is fulfilled, it is important to focus on how to leverage standardisation and improve the general quality and efficiency of the service. The schema below shows a simple service request fulfilment process, based on the recommendations from ITIL, that can be used as a starting point to adapt existing processes or establish new ones.

gestão de pedidos de serviço

An overview of the service request fulfilment process:

  1. A client requests support through their catalogue of services or via email.
  2. The service desk team analyses the request according to the qualification and approval process.
  3. A team member of the service desk works to fulfil the request, or forwards the request to someone who is able to complete it.
  4. When the request is fulfilled, the service desk completes the ticket. The team member consults the client to ensure that the request was fulfilled as expected.

Eight tips to consider when defining service requirements

  1. Start with the items most frequently requested and choose those that can be fulfilled in the fastest and easiest way. This will allow you to deliver immediate value to your clients and will allow the service desk team to learn as they build further elements of the service requests catalogue.
  2. Record every dimension of service requests (date of request, approval process, fulfilment procedures, fulfilment team, “owners” of the process, SLAs, reporting, etc.) before you add them to the catalogue. This will allow the IT team to manage the requirements of the request better over time. This step is really important to the more complex requests that will evolve in the future.
  3. Collect all necessary data to start the request processes, but do not overload your client with too many questions.
  4. Standardise the approval process as much as you can. For example, every request for a new monitor is considered pre-approved and every request for software requires approval from the client’s superior.
  5. Review the process and procedures of request fulfilment to identify which support teams are responsible for answering and if there are any specific requirements.
  6. Accept that knowledge must be provided in the knowledge base when a request offer is eleased. The main goals of self-service are to give clients what they want faster and to redirect requests as much as possible. This way you will be able to answer questions through a simple FAQ; include this knowledge as part of the plan when you create a service request offer.
  7. Review the Service Level Agreements (SLAs) to ensure that you have the right metrics and notifications properly defined, allowing requests to be fulfilled in a viable period of time.
  8. Accept that reporting is necessary, so you can properly manage the whole lifecycle of a service request and the catalogue, in the long run.

This content is based in an article published in the Atlassian Blog – Best Practices for Service Request Management. Xpand IT is the exclusive partner of Atlassian in Portugal, and was awarded the status of Atlassian Platinum Solution Partner..

Ana PaneiroBest practice for service request management
read more

Pledge 1%: Supporting Associação Crescerbem with Jira Software

Associação Crescerbem is a Private Social Solidarity Institution, founded in 2011, and its main goal is to help families of hospitalised children in economic deprivation. The association started in Dona Estefânia Hospital in Lisbon, where the headquarters still remain nearby. Meanwhile, the support has been extended to Santa Maria Hospital and Beatriz Ângelo Hospital.

The mission of Crescerbem is, specifically, to provide for families in a personalised manner, according to the specific needs of each case and helping them become more independent and autonomous. This way, follow-up does not happen only when a child is hospitalised, but also in the period after the medical discharge.

The association started offering home support and, through that, other needs started to be identified besides medical follow-up; from that point on, countless parallel projects came to life, such as the solidarity pantry (food baskets provided to families), the laundry service, and the solidarity pharmacy (which provides the necessary medication).

Despite the number of families helped and the number of existing cases, all the information was still offline. This means that it was impossible to access the necessary information without physically being in the association’s headquarters. Volunteers spent hours searching for case files and updating them, which resulted in a huge lack of visibility on the current state of each support case. Therefore, computerising all this information was critical. However, there was a problem: the lack of financial means to spend on technological solutions that could put an end to this problem.

It was at this stage that Donate IT – a community of volunteers who work with information technology – came into action through Sofia Neto, community volunteer and Collaboration & Development Solutions Lead from Xpand IT. Sofia managed to unite her work at Donate IT to the movement Pledge 1% – a movement which Xpand IT joined in 2017, thereby committing to annually donate 1% of profit and 1% of products to social solidarity institutions. Completely pro bono, Xpand IT made Jira Software available to Crescerbem (including implementation and support), thereby accomplishing Donate IT’s vision  – helping to help others  – and Pledge 1%’s vision.

Besides being extremely important to the computerisation of all documents of Crescerbem, this project proves that Jira Software has a lot more uses than software management. In practice, it can be adapted to any reality.

Inside the association, each family corresponds to an ‘issue’ in Jira. When support to a new family starts, a new issue is created and the type family is chosen. Each issue has the complete information that characterises each family: information including when the support started, how many children, which country the family is from and the contact details of the parents.

Everything is organised in different tabs in order to make viewing and editing of the information on each family easier, and all initiatives are considered subtasks: e.g. home support or medication provided. Therefore, a new registry of everything that happens has become an integral part of the process, and everyone with access permission can access that information anywhere.

Xpand IT is already working on the new release and it will have two goals: the first one is to introduce Confluence to further facilitate the sharing of information about tasks to be undertaken or families with open cases; the second one is to include Xporter, so that the association can easily export a report, for example, and to always be able to present it with the best formatting.

With this software, we have the ability to computerise all social processes and this means that access to all information related to the families is only a click away. What is the importance of this change? We will have more time. Time to begin expanding to other hospitals; time to help more families; and time to move forward with the idea of a social business, which will make Crescerbem self-sustaining.

Isabel Ramos - Co-founder, Crescerbem
Ana PaneiroPledge 1%: Supporting Associação Crescerbem with Jira Software
read more

DevOps is not Dev & Ops – What I didn’t know about DevOps

All these years I have heard about DevOps, but I was truly convinced it was too techy for me.

I thought it was about continuous integration, automation, and awesome DevOps guys, who knew not only how to develop software but also how to release and manage production environments…

Now, I realise that I was completely wrong… DevOps is not Dev & Ops teams together… but an entire organisation that collaborates – really collaborates.

Of course you need automation; of course you need continuous integration – but that’s not all.

In a DevOps culture you must follow these rules:

  • Know the flow = understand how work goes from “to do” to “done”
  • You don’t work in a silo = instead of working in an isolated team that is just worried about their “own” work, you work for a purpose/value
  • You are constantly learning & improving = Don’t waste time – if something needs to be changed, change it

But how can you transform a whole organisation? Below, you can see some practical tips:

  • Make your work visible to everyone; don’t worry what others may think about it.
  • Change your mindset. Let me tell you a story, that someone once told me:

JFK, once when visiting NASA, saw a janitor cleaning the floor and asked him: What are you doing? He expected an answer like “I am cleaning the floor”, but instead the man said “I’m helping the men get to the Moon.”

  • Add value to your user stories; don’t create them just for someone to do something, but because you need to generate value, like improving customer satisfaction to 80%.
  • Collaborate, collaborate, collaborate even more… No man is an island, so don’t work like one.

Tools are not the most important element, but they can definitely help. Running shoes don’t make you a runner, but they will help you to run better.

If you are searching for tools that can help you understand the flow of work, make your work visible, and help you collaborate better with your team, just take a look at Jira, which allows teams to capture and organise work, assign it to the team and track team activity.

Sofia Neto

Collaboration & Development Solutions Manager, Xpand IT

Sílvia RaposoDevOps is not Dev & Ops – What I didn’t know about DevOps
read more