Ana Lamelas

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

5 razões para visitar o stand da Xpand IT no Web Summit

A Web Summit está de volta à cidade de Lisboa entre os próximos dias 5 e 8 de novembro! Como uma das maiores conferências sobre tecnologia a nível mundial, o número de participantes, oradores e parceiros cresce de ano para ano. Para 2018, os organizadores da cimeira esperam uma audiência de mais de 70 mil participantes, e a organização promete que esta será a “maior e a melhor” edição de sempre.

Pelo terceiro ano consecutivo, a Xpand IT irá marcar presença na qualidade de expositor, com o intuito de reforçar a posição enquanto empresa de referência na área das Tecnologias de Informação, não só em Portugal, como também no mercado do Reino Unido, destacando as suas competências e especialização em serviços Nearshore. À semelhança do ano anterior, a Xpand IT estará no Pavilhão 1, stand E144. Mas, se neste momento se está a perguntar porque razão deve passar pelo nosso stand no Web Summit, deixamos-lhe 5 boas razões para ajudar a convencê-lo:

1. O novo AI Solutions Center da Xpand IT

O tema da Inteligência Artificial está, de facto, no centro das prioridades para inúmeras empresas e organizações um pouco por todo o mundo. Para a Xpand IT não poderia ser diferente. Por isso, lançou um centro de Inteligência Artificial que pretende trabalhar de perto com os clientes, de forma a criar soluções verdadeiramente úteis para os seus utilizadores. Venha ter connosco, fale com um dos nossos experts, e fique a saber tudo sobre o novo AI Solutions Center e sobre as soluções que poderá implementar na sua empresa. Se ficou mesmo curioso, sugerimos que avance já para o ponto nº5.

2. As melhores oportunidades de carreira

Para conseguir entregar os melhores projetos precisamos dos melhores experts. Se já estava nos seus planos aproveitar o networking que o Web Summit proporciona para tentar encontrar novas oportunidades de carreira, o stand da Xpand IT é o sítio certo. Aqui poderá conversar com a nossa equipa de recrutamento e saber que oferta se aplica melhor àquilo que procura. Estamos à sua espera!

3. Os nossos Casos de Sucesso

Se, por outro lado, a sua presença no Web Summit se deve ao facto de procurar o parceiro ideal para dar início a um projeto na sua organização, também nos deve fazer uma visita. No nosso stand poderá encontrar as respostas e o aconselhamento que pretende através do networking com um dos nossos experts. A Xpand IT tem inúmeros exemplos de casos de sucesso realizados com empresas de referência nacionais e internacionais, os quais pode ficar a conhecer melhor se passar pelo stand E144.

4. A nossa equipa

Para além de altamente especializados em todas as tecnologias com as quais trabalhamos, também somos simpáticos. Venha visitar-nos, para falar sobre possíveis projetos, para fazer questões técnicas, para esclarecer alguma dúvida em relação às nossas áreas de negócio, ou, simplesmente, para dizer olá e ganhar um dos nossos prémios!

5. O Sentiment Meter

Last but certainly not least (muito pelo contrário)! Se chegou a este ponto diretamente do ponto nº1, apostamos que não vai ficar desiludido. Se chegou a este ponto no seguimento da sua leitura, seja muito bem vindo também.

O Sentiment Meter será a dinâmica principal a decorrer no nosso stand, e é um exemplo simples de como a Inteligência Artificial pode ser implementada nas mais diversas soluções.

O Sentiment Meter é um jogo, no qual é sorteada uma emoção, sendo que os participantes só têm de imitar essa mesma emoção, utilizando a sua expressão facial. Dependendo do empenho de cada jogador, é atribuída uma pontuação e o jogador ganha o prémio correpondente.

Não sabemos como está a sua vocação para a representação, a única garantia que lhe podemos dar é a de que ganha sempre!

Se quiser saber mais sobre os Serviços Cognitivos da Microsoft, e sobre Análise de Sentimentos, veja este blog post.

Ana Lamelas5 razões para visitar o stand da Xpand IT no Web Summit
read more

Serviços Cognitivos Microsoft: as potencialidades das principais APIs

Os Serviços Cognitivos da Microsoft são um set de APIs (Application Programming Interface) e de SDKs (Software Development Kit) que se encontram disponíveis em Azure e que permitem tornar as aplicações mais inteligentes e dinâmicas, bem como a realização de ações enriquecedoras para a experiência do utilizador.

No fundo, e segundo a Microsoft, “são algoritmos inteligentes que permitem às suas aplicações, máquinas e bots ver, ouvir, falar, compreender e interpretar as necessidades dos utilizadores através de métodos naturais de comunicação”. Estes algoritmos, que se desenvolvem e aumentam o seu potencial através das APIs de Machine Learning, servem-se de dados contextuais que, por sua vez, são aprendidos através da utilização que os próprios utilizadores fazem das aplicações móveis.

É possível falar, então, em democratização da inteligência artificial? Sim. Com os Serviços Cognitivos da Microsoft os developers conseguem implementar features de reconhecimento facial ou de voz apenas com algumas linhas de código, sem necessitarem de desenvolver algoritmos de raíz. Os serviços cognitivos permitem, assim, leituras e insights aprofundados para uma interpretação personalizada de perfil, através de serviços como:

  • Visão: inclui algoritmos de processamento de imagens, capazes de interpretar imagens de forma inteligente mas também de descrevê-las ou categorizá-las. Podem ser utilizados para reconhecimento facial como mecanismo de segurança, através da Face API, que verifica qual a probabilidade de ser a mesma pessoa, para além de identificar características como idade ou género.

Também é possível identificar emoções, através da Emotion API, com a deteção de expressões faciais de felicidade, tristeza, surpresa ou medo, por exemplo.

  • Voz: permite a conversão de áudio falado em texto, texto para voz a verificação ou reconhecimento do orador em determinada aplicação. Com o Translator Speech API é possível ao utilizador ter uma tradução em tempo real, escrita ou falada.
  • Conhecimento: oferece ao utilizador o mapeamento de informações e dados complexos, com o intuito de executar ações como recomendações inteligentes ou a pesquisa semântica (através da Recommendation API ou do Custom Decision Service);
  • Linguagem: processa a linguagem natural, com scripts pré-criados e avaliação de sentimentos, e aprende a identificar as necessidades dos utilizadores. O ex-libris dos serviços de linguagem é o Language Understanding Intelligente Service (LUIS), que ao utilizar o reconhecimento inteligente de voz permite que se possam desenvolver os próprios modelos de linguagem, e que os bots possam compreender comandos e executar ações consoante aquilo que se pretende.
  • Pesquisa: permite ações como a sugestão de palavras, a pesquisa por imagem ou vídeo e podem ser efetuadas por APIs como a Bing Web Search ou a Bing Custom Search.

Como podem os Serviços Cognitivos ser utilizados nas várias indústrias?

Retalho: cognitive services permitem extrair insights detalhados, que ajudarão a entender as necessidades dos seus clientes existentes e a atrair novos prospetos. Por exemplo, poderá perceber quais as dificuldades pelas quais os clientes passam numa experiência de compra online e melhorá-la ou apoiar os seus vendedores a apresentarem o produto certo ao cliente certo, simplificando também o método de pagamento.

Educação: identifique o interesse de cada estudante e modernize o estilo de ensino através de serviços cognitivos e machine learning ou faça gerar sugestões de como melhorar a experiência em sala de aula.

Seguros: melhore a experiência dos seus clientes através das suas aplicações móveis, recorrendo a serviços cognitivos, como o reconhecimento facial ou de voz. Poderá utilizá-los, ainda, para detetar possíveis atividades fraudulentas.

Finanças: apoio na personalização de campanhas específicas com base nas decisões ou pesquisas dos clientes, aumentando as vendas e o ROI.

Saúde: desenvolva um apoio mais personalizado aos seus clientes, através de um bot, por exemplo, que poderá ajudar na seleção de uma consulta de especialidade. Outra grande potencialidade é o apoio que os serviços cognitivos poderão fornecer aos médicos, a realizar um diagnóstico mais detalhado.

Assista a uma demonstração em tempo real de serviços cognitivos, no evento Xamarin Experience de 2017 aqui.

Ana LamelasServiços Cognitivos Microsoft: as potencialidades das principais APIs
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

As 5 principais metodologias agile: vantagens e desvantagens

O que são metodologias agile?

A primeira vez que se ouviu falar em desenvolvimento ágil (ou no termo agile) foi em 2001, quando uma comunidade de developers, cansada da utilização de métodos de desenvolvimento considerados ‘pesados’ – nomeadamente, o modelo em cascata – decidiu lançar um manifesto: O Manifesto Agile. Este importante documento teve tanto impacto, que acabou por funcionar, até aos dias de hoje, como a bíblia do desenvolvimento agile, consagrando todos os princípios e boas práticas.

Metodologias agile  defendem que, acima de tudo, se deve procurar satisfazer o cliente através de entregas contínuas de software com valor, mantendo a  comunicação constante com o cliente, mas também mantendo o foco na comunicação entre membros de uma equipa.  Ao contrário das práticas anteriores, a metodologia Agile não se pauta pela definição integral de todo o produto, por uma análise completa ou pela definição de todas as categorias/requisitos, mas sim por uma interação dinâmica, que permite uma entrega constante.

Como defende o Manifesto Agile, e segundo alguns dos seus 12 princípios fundamentais:

  • A prioridade reside na satisfação do cliente, através de entregas contínuas e de valor acrescentado;
  • As alterações de requisitos devem ser aceites, mesmo que estas cheguem numa fase tardia do desenvolvimento. “Os processos ágeis potenciam a mudança em benefício da vantagem competitiva do cliente”, como é declarado no próprio Manifesto;
  • O cliente e a equipa de desenvolvimento devem trabalhar em conjunto e diariamente;
  • É necessário proporcionar um bom ambiente e apoio às equipas de desenvolvimento. Só assim é possível mantê-las motivados;
  • Os processos ágeis promovem um desenvolvimento sustentável, porque o ritmo é constante, e a excelência técnica aumenta a produtividade;
  • Os momentos de retrospectiva em equipa são fundamentais, para que se possam fazer os ajustes necessários e torná-la mais eficaz.

No fundo, o desenvolvimento agile segue um modelo incremental, que fomenta a colaboração entre a equipa, o planeamento contínuo, mas também a contínua evolução e aprendizagem. As metodologias agile devem respeitar o ciclo de desenvolvimento de software – planeamento, execução e entrega final – permitindo que o software seja desenvolvido por etapas, tornando mais fácil a identificação de eventuais bugs bem como a sua resolução.

A principal vantagem da utilização de metodologias agile não reside apenas no facto da entrega de software ser mais rápida, mas sim na constante entrega de valor ao cliente, uma vez que as entregas são incrementais.

 Existem inúmeras metodologias que seguem este mindset agile. Neste blog post selecionamos aquelas que são as 5 principais metodologias agile e quais as suas vantagens e desvantagens no universo do desenvolvimento de software.

Principais metodologias agile:

1. Scrum

Scrum é uma das muitas frameworks da metodologia agile, mas é, sem dúvida, a mais utilizada. Scrum carateriza-se pelos ciclos ou etapas de desenvolvimento, definidas como sprints, e pela maximização do tempo de desenvolvimento de um produto de software. É tipicamente utilizado na gestão de projetos de desenvolvimento de produtos de software, mas também pode ser utilizado em contexto de negócio..

Todos os dias existem pequenas reuniões de 15 minutos, as daily scrum, que funcionam como um sincronizador de atividades e como forma de planear o dia de trabalho.

Vantagens: Desvantagens:
  • Existe uma grande motivação nas equipas, devido ao facto de os programadores quererem cumprir o prazo de entrega de cada sprint;
  • A transparência existente permite que o projeto possa ser acompanhado por todos os membros de uma equipa ou mesmo de uma organização;
  • O foco na qualidade é uma constante no método Scrum, o que faz com que existam muito menos erros.
  • A dinâmica que caracteriza este método permite aos developers a reorganização de prioridades, garantindo que as sprints que ainda não foram terminadas possam receber mais atenção.
  • A segmentação do projeto e a procura pela agilidade de desenvolvimento pode, por vezes, levar a equipa a perder a noção do projeto como um todo, concentrando-se apenas na sua parte;
  • A função de cada developer pode não estar bem definida, o que pode fazer com que alguns membros da equipa fiquem confusos.

2. Kanban

A palavra Kanban é de origem japonesa e o significado encontra-se ligado a um conceito temporal, “just-in-time”. Na prática, no método Kanban existe um quadro ou tabela (o Kanban Board), dividido em colunas, que indica todos os fluxos de produção do desenvolvimento de software. À medida que o desenvolvimento vai evoluindo, a informação presente nas tabelas vai mudando, e, quando surge uma nova tarefa, cria-se um novo “card”.

O método Kanban exige comunicação e transparência, para que os membros de uma equipa saibam precisamente em que ponto se encontra o desenvolvimento e para que possam ver em que estado se encontra o projeto em qualquer altura.

Vantagens: Desvantagens:
  • Capacidade de visualização sobre todas as tarefas de um projeto (Concluído, Em Processo ou em Testes, por exemplo);
  • Possibilidade de limitar o número de tarefas em andamento (ou seja, é possível controlar a quantidade de trabalho, tendo em conta a capacidade de resolução ou entrega);
  • Concentração na duração de um ciclo – quanto tempo demora uma tarefa para ir do backlog até à fase final;
  • Permite entregas contínuas.
  • Existe a possibilidade de os membros de uma equipa poderem interpretar mal a informação refletida no Kanban Board, especialmente quando este se revela ultrapassado;
  • Como não existem timeframes no Kanban, existe a hipótese de se enfrentar problemas de falta de tempo ou de atrasos, associados a cada uma das fases.

3. Extreme Programming (XP)

É uma típica framework de Agile Development, desenvolvida por Kent Beck, adaptável a empresas de desenvolvimento de várias dimensões. É uma metodologia que enfatiza valores como a Comunicação, a Simplicidade, o Feedback, a Coragem e o Respeito, priorizando a satisfação do cliente acima de tudo. Esta é uma metodologia que oferece confiança aos developers, motivando-os, e incentivando-os a aceitar mudanças nos requisitos do cliente, mesmo que estas já cheguem numa fase tardia do ciclo de desenvolvimento.

O trabalho de equipa é extremamente importante no XP, já que, quando existe um problema, o mesmo é resolvido em conjunto, seja por managers, developers ou clientes. Todos são peças importantes do mesmo esquema, criando o ambiente propício para tornar a equipa altamente produtiva e eficaz. Em Extreme Programming, o software é testado desde o primeiro dia, recolhendo feedback para melhorar o desenvolvimento.

Vantagens: Desvantagens:
  • A simplicidade do código escrito funciona como uma vantagem, já que permite a sua melhoria a qualquer momento;
  • Todo o processo e todo o ciclo de desenvolvimento XP é visível, criando metas para os developers e mostrando resultados de forma relativamente rápida;
  • O desenvolvimento de software acaba por ser ainda mais ágil do que em outras metodologias, precisamente devido aos testes constantes;
  • A XP contribui, também, para a motivação do talento nas equipas e para a sua retenção.
  • O foco extremo no código pode levar a que se atribua menos importância ao design, obrigando a uma atenção extra neste ponto;
  • Esta framework pode não funcionar da melhor forma se todos os membros de uma equipa não se encontrarem no mesmo espaço geográfico;
  • Nos projetos XP, o registo de possíveis erros nem sempre é realizado, e essa falta de documentação pode levar à ocorrência de bugs semelhantes no futuro.

4. Lean Development

Lean Development é uma metodologia que deriva diretamente da Lean Manufacturing, criada pela Toyota, e aplicada ao desenvolvimento de software. Este método oferece uma framework conceptual e segue valores, princípios e boas práticas de desenvolvimento, que podem ser aplicados a uma abordagem de desenvolvimento agile.

Lean Development é uma metodologia que conta com 7 princípios fundamentais: Eliminar o que não interessa (tudo o que não trouxer valor efetivo para o projeto do cliente, é para eliminar);  Desenvolver com qualidade (criar qualidade no desenvolvimento exige disciplina e controlo na quantidade de resíduos criados); Criar conhecimento (a equipa é incentivada a documentar toda a infraestrutura, para mais tarde, reter esse valor); Diferir compromissos (este ponto encoraja a equipa a não planear demasiado e a não antecipar ideias sem antes ter um entendimento completo dos requisitos do negócio); Entregar depressa (entregar valor ao cliente, o quanto antes); Respeitar a equipa (comunicar e gerir os conflitos são duas questões essenciais); e, por fim, Otimizar o todo (a sequência de desenvolvimento tem de ser aperfeiçoada o suficiente para conseguir eliminar defeitos no código, de forma a criar um fluxo de verdadeiro valor).

Vantagens: Desvantagens:
  • ·Permite à equipa a eliminação de atividade supérfula, poupando tempo e dinheiro;
  • Diminui o tempo necessário para entregar funcionalidades, já que capacita a equipa de desenvolvimento no processo de tomada de decisão, aumentando a motivação geral;
  • Metodologia facilmente escalável e de fácil adaptação a projetos de qualquer dimensão.
  • Metodologia muito dependente da capacidade de desenvolvimento da equipa e do cumprimento dos princípios Lean, o que significa que será necessário ter developers extremamente dedicados e talentosos;
  • Pode existir maior propensão para peder o foco, já que existem várias tarefas divididas por vários elementos;
  • Requer alguma documentação, nomeadamente sobre as características de negócio para o qual se trabalha. Caso contrário, corre-se o risco de o desenvolvimento ser feito de forma incorreta ou apresentar falhas.

5. Crystal

É uma família de metodologias agile, que inclui variantes como Crystal Clear (para uma equipa até 8 pessoas), Crystal Yellow (para uma equipa entre 10-20 pessoas), Crystal Orange (para equipas entre 20-50 pessoas) ou Crystall Red (para equipas de grande escala, entre 50-100 pessoas). Crystal foca-se em princípios como as Pessoas, as Interações, a Comunidade, os Skills, o Talento e a Comunicação, fazendo com que o desenvolvimento de software corra da melhor forma. O core deste processo de desenvolvimento passa pela interação e simbiose que tem de acontecer entre as pessoas alocadas aos projetos e os processos, de forma a tornar o desenvolvimento eficaz.

Segundo o seu fundador, Alistair Cockburn, “Crystal é uma família de metodologias de desenvolvimento de software que funciona com o poder investido pelas pessoas, é extremamente leve e ‘stretch-to-fit’”. No fundo, Cockburn acreditava que o talento e a forma como os membros da equipa interagiam traria benefícios para todo o projeto.

Vantagens: Desvantagens:
  • Garante entregas frequentes, de forma a poder identificar eventuais problemas em todas as fases;
  • Existe sempre espaço para a melhoria de características, tirando algum tempo ao desenvolvimento de software e permitindo a discussão sobre como aprimorar processos;
  • Permite uma comunicação próxima e promove a interação e partilha de conhecimentos entre os membros das equipas;
  • Exige um ambiente técnico, com automated tests, configuration management e integração frequente.
  • O facto de ter variantes na família de metodologias, faz com que os princípios possam variar também com o tamanho da equipa e a dimensão do projeto, tornando-os pouco claros;
  • Pode não resultar para equipas distribuídas por vários locais, devido à constante necessidade de comunicação e reflexão;
  • O planeamento e o desenvolvimento não dependem dos requisitos.

Na Xpand IT, o desenvolvimento de software é feito à medida, sempre com foco nos resultados e na satisfação do cliente, fase por fase. Todo o desenvolvimento é regido por princípios agile. Por isso, para respeitar o ciclo de desenvolvimento, atingir os resultados desejados, antecipar possíveis erros, maximizar a produtividade e desenvolver de forma segura mantendo os membros das equipas motivados, criámos a nossa metodologia: o XPAgile (uma combinação entre duas frameworks agile, Scrum e Extreme Programming, que garante os melhores resultados, sempre dentro dos prazos estipulados).

Se pretende saber mais sobre a metodologia de desenvolvimento da Xpand IT, clique aqui.

Ana LamelasAs 5 principais metodologias agile: vantagens e desvantagens
read more

Xpand IT inaugura novo escritório em Braga

A empresa anuncia a abertura de um novo escritório em Braga. Este novo espaço encontra-se numa cidade em franco desenvolvimento, que se destaca por ser um dos pólos tecnológicos mais dinâmicos em Portugal. A proximidade à Universidade do Minho revela-se, também, um fator chave para o crescimento futuro da empresa.    

Ana LamelasXpand IT inaugura novo escritório em Braga
read more

Xpand IT is joining the global social movement, Pledge 1%

Xpand IT becomes the first Portuguese company to pledge 1% of profit. The company intends to integrate corporate philanthropy into its business model officially and will donate 1% of its product and profit to non-profit organisations every year through Pledge 1% movement.

Ana LamelasXpand IT is joining the global social movement, Pledge 1%
read more

XPlat Meetup #4 – Desafiar limites com Xamarin e Azure Cognitive Services

A Xpand IT irá realizar a quarta edição do XPlat Meetup, no próximo dia 28 de novembro, pelas 18:30h, nas instalações da Microsoft Portugal.

À semelhança das edições anteriores, este meetup será totalmente focado em Xamarin, uma plataforma que permite desenvolver aplicações móveis nativas para IOS, Android e Windows em C#, e através dos skills e de código já existente.

Ana LamelasXPlat Meetup #4 – Desafiar limites com Xamarin e Azure Cognitive Services
read more