Mar 21, 2024

A melhor tecnologia para cada projeto e porquê!

 

António Anacleto, 

Fullstack Solutions Delivery


No universo profissional da tecnologia é comum assistirmos a debates renhidos sobre qual a melhor tecnologia seja ela uma metodologia, linguagem, sistema operativo, etc. São apresentados argumentos por vezes até comprovados por estatísticas, estudos de benchmark, opiniões de profissionais de renome entre outras fontes. Nalguns casos a defesa pela tecnologia preferida chega a transformar-se no equivalente a uma religião onde a dedicação e emoções que o profissional apresenta transcendem a simples lógica e racionalidade.  

Neste cenário, que se complica a cada dia com a multiplicação de novas tecnologias, fica difícil, principalmente para os atores/decisores que, contactando com os sistemas, não são profissionais do sector tecnológico, entender qual o melhor caminho e porquê! Dependendo do profissional que está a fazer o acompanhamento as decisões podem mudar drasticamente e com elas todas as variáveis agregadas, como por exemplo o tempo a utilizar no projeto, o custo de implementação, o custo de ownership, a equipa necessária, a solução final, etc.  

Desta forma é fácil de entender a relevância deste processo de decisão e o impacto das diversas opções no sucesso do projeto. 

Cingindo-nos ao desenvolvimento de software, sendo que a mesma lógica se aplica a outras áreas da tecnologia, podemos começar por dizer que não existe uma solução que serve para tudo e todos. Cada projeto tem as suas variáveis a serem consideradas. 

Podemos começar por avaliar o sistema operativo a utilizar, por exemplo. Essa decisão passa por diversos vetores: será esse Sistema Operativo para os servidores ou para as máquinas clientes, qual o know how e conforto a utilizar o Sistema Operativo por parte de quem o vai utilizar, a instituição já tem uma infraestrutura pré-instalada, as aplicações a utilizar tem como requisito um determinado Sistema Operativo, etc.?  A título de exemplo podemos apresentar vários casos de uso que justificam determinadas opções: 

- É muito comum designers e outros profissionais de imagem e multimédia preferirem MacOS dada a sua estabilidade e o facto de ter as ferramentas que estão habituados a utilizar;

- A nível empresarial normalmente as máquinas cliente costumam ter o microsoft windows instalado dado que é o sistema operativo que mais utilizadores estão habituados a usar e suporta o microsoft office, ferramenta que normalmente este tipo de utilizadores necessita;

- Muitos programadores e académicos utilizam o Linux, sistema operativo que entrega um bom nível de liberdade, estabilidade e segurança, libertando o utilizador para se focar nas tarefas em mãos e suportando as ferramentas que estes necessitam.

Ao nível dos servidores podemos verificar que normalmente se o objetivo é implementar um cluster ou hospedar soluções web, por exemplo, normalmente são utilizados servidores Linux, mas se o que pretende for disponibilizar um servidor Microsoft SQL ou uma aplicação cliente/servidor desenvolvida para windows já a solução é utilizar um servidor windows. Claro que isto de uma forma exemplificativa e bastante introdutória e simplificada, temos múltiplas outras situações como é o caso de IOT por exemplo onde se utilizam SO's mínimos normalmente baseados em distribuições Linux ou Android, mas por vezes são utilizados SO's especializados dada a especificidade da utilização. 

No caso das linguagens temos a incontornável JavaScript que é utilizada em todas as aplicações web, ou em alternativa TypeScript que para leigos podemos definir como uma extensão do JavaScript onde temos que ter em conta o tipo de dados e objetos. Apesar de ainda pouco usado, temos em complemento o WebAssembly (Wasm) que permite correr código de outras linguagens no browser e pode coexistir com o JavaScript. Neste ponto costuma existir alguma rivalidade entre os defensores de escrever código mais rapidamente (JavaScript) e os que defendem a importância de garantir a coerência dos tipos (TypeScript), Wasm ainda não é muito utilizado quando posto em perspetiva mas não deixa de apresentar possibilidades interessantes, não vou entrar em detalhe, mas podemos falar sobre isso noutro artigo. Eu diria que a verdadeira discussão aqui é sobre utilizar JavaScript puro (Vanilla JS) ou em alternativa uma das várias frameworks como seja Vue, Angular, React, etc. Descriminar as características de cada possibilidade e porque optar por uma ou outra opção dependendo do projeto está fora do âmbito deste artigo. 

De uso mais genérico existe uma grande rivalidade entre Java e C# .net, ambas utilizadas em ambientes empresariais e institucionais, eu diria que utilizar uma ou outra, se visto de uma forma racional, passaria mais por questões como o know how da equipa, o que já existe em termos de “codebase” na instituição, que bibliotecas serão utilizadas, etc. dado que de uma forma geral ambas as linguagens permitem entregar soluções de qualidade escaláveis e robustas.

Para o backend de websites e aplicações web o PHP continua a ser utilizado principalmente por causa do sucesso de soluções como o Wordpress mas tem estado cada vez mais a ser substituído por outras linguagens. Com o JavaScript a ser utilizado também do lado servidor através da utilização de Node.js, a opção de utilizar uma única linguagem para todo o backend para quem usa C#, Java, etc. e o aumento de utilização de outras linguagens como é o caso do Python com frameworks tipo Django, FastAPI, Flask, etc. este segmento tem-se mostrado bastante diversificado com todas estas opções se mostrando excelentes alternativas.

No sector de IA e análise de dados a linguagem Python tem apresentado um crescimento exponencial, bem como na área de administração de sistemas, sendo também muitas vezes utilizada como "linguagem cola" facilitando a integração entre diversas tecnologias e soluções. Muitas vezes acusada de ser uma linguagem lenta devido ao facto de ser uma linguagem interpretada e não compilada, esse não é de facto um argumento válido para muitos dos casos de utilização atuais, por exemplo se vou fazer uma aplicação web a linguagem será sempre mais rápida que a minha rede, então de nada me serve utilizar uma linguagem compilada gastando muito mais recursos devido ao maior tempo necessário para o desenvolvimento para depois a aplicação correr com a mesma performance ou por vezes até pior dado que além da velocidade de execução da linguagem temos muitos outros fatores a considerar como seja a qualidade das bibliotecas utilizadas, qualidade do código, etc.  

Para casos de uso que exijam a melhor performance temos Rust, C, C++, etc. linguagens que foram feitas para esse efeito, sendo que em casos extremos como por exemplo certos componentes de apoio à condução dos automóveis modernos, recorre-se a SO's específicos com linguagens específicas dada a necessidade de garantir a performance e robustez da solução.  

A título de conclusão a ideia que pretendo transmitir neste artigo é precisamente que não existe uma única solução para todos os casos e não é produtivo ser fanático no respeitante às tecnologias, nem para o lado inovador nem para o lado clássico e conservador. Cada projeto é um projeto com as suas especificidades, manter a mente aberta é sempre um ativo importantíssimo nos elementos da equipa. 

Fica aqui muito por dizer, obviamente, e muitas áreas ficam em aberto para possíveis artigos posteriores. Falo de SO’s e linguagens, mas não entrei em áreas como tecnologias de base de dados, gestão de projetos de desenvolvimento, suas metodologias e ferramentas, utilização ou não de paradigmas (e quando usar cada um) como por exemplo MCV (Model, Controller, View), Injeção de dependências, Utilizar ORM 's ou não e quando? etc. 

Este artigo pretende assim lançar o mote para uma discussão produtiva sobre tecnologia e sua aplicação e espero inspirar os colegas para que escrevam sobre as suas próprias opiniões e assim contribuam para o enriquecimento do know how de todos nós. 

 


Jan 19, 2024

Uma Equipa Repleta de Pessoas Felizes


 Ana Rita Dias,

Lead Human Resource Manager


A FELICIDADE é uma área do bem-estar cada vez mais integrante na estratégia das Organizações e que não se resume à satisfação em contexto Organizacional (Fisher, 2010).

No que concerne ao conceito de FELICIDADE, podemos fazer a destrinça entre duas métricas (Ryan e Deci 2001).

A FELICIDADE Hedónica mais relacionada com uma esfera afetiva e com os sentimentos/emoções prazerosos, vivenciados pelas Pessoas de forma mais momentânea.

A FELICIDADE Eudaimónica, que assume um conceito mais duradouro e muito ligado ao autoconhecimento… afinal é com base nesta soft skill que sabemos o que de facto tem significado para nós, trazendo o sentido de realização, e tendo em conta o que é certo numa perspetiva de autoavaliação.

No contexto Organizacional, a relação entre FELICIDADE e o emprego acabam por assumir uma sinergia bidirecional (De Neve & Ward, 2017), no sentido em que a FELICIDADE pode ser um aspeto motivacional intrínseco que impulsiona o alcance dos objetivos Organizacionais por parte do Trabalhador e, por outro lado, a questão do alcance dos objetivos e metas Organizacionais potenciará a FELICIDADE no Trabalhador.

Adjacente ao ponto acima reside o conceito de work life enrichment (Chan, Kalliath, Brough, Siu et al 2016), pois é certo que todos nós procuramos “enriquecer” com todas as experiências (pessoais e profissionais), num tiro certeiro ao objetivo que nos proporciona emoções de FELICIDADE. Repare-se que este é um contexto muito mais lato do que o work life balance, já que para os Trabalhadores das Organizações a possibilidade de equilíbrio (Trabalho-Família) é uma certeza.  

No dia-a-dia, as Empresas procuram Trabalhadores que possam ter/trazer o sentido “happiness” e contagiar o clima Organizacional.

O desafio é encontrarmos estratégias para que possamos ter relações profissionais mais FELIZES, nomeadamente:

  •   Fomentar o espírito de entreajuda, ajudar um Colega ou auxiliar em algo que impacte positivamente o outro;
  •    Menor exposição a situações de stress;
  •     Horários Flexíveis e implementação do teletrabalho quando possível;
  •      Criar canais de comunicação abertos, diminuindo os conflitos e promovendo a partilha;
  •   Promover o Trabalho de Equipa;
  • Gestão Emocional que permite aumentar a eficácia da comunicação e, consequentemente, das relações laborais;
  • Promover um bem-estar interior com um equilíbrio entre: as horas de sono, a prática de exercício e as pausas regulares no decorrer da jornada laboral;
  • Encontrar ferramentas para uma gestão de tempo mais eficaz;
  • Utilizar uma linguagem não verbal positiva… SORRI(!);
  • Celebrar datas comemorativas que promovam encontros e promover encontros sociais nesse sentido (vê na newsletter interna a data de aniversário dos Colegas… e parabeniza-os).

Sê FELIZ…e contribui para a FELICIDADE coletiva 😊









Sep 25, 2020

Six-Factor no Portugal Smart Cities com a Câmara Municipal do Seixal

A Câmara Municipal do Seixal, participa no Portugal Smart Cities 2020, que decorre entre os dias 22 e 24 de Setembro, com os projetos Seixal + e Seixal On. A Six-Factor foi convidada pela Câmara a participar neste evento por ser um dos parceiros para o desenvolvimento tecnológico e implementação do Laboratório Vivo para a Descarbonização (LVpD) da Baía do Seixal.

A Six-Factor está responsável neste projeto pelo desenvolvimento da comunicação com o público através de um portal, bem como da App Seixal On que permite em tempo real “resumir” os dados do sistema.

Para o cidadão permite entre outras áreas reservar refeições no restaurante ecológico, fazer uma gestão dos produtos para reciclagem, o aluguer de veículos elétricos de mobilidade individual como por exemplo bicicletas eléctricas.








May 24, 2019

Nearby was proud to be part of Portugal Smart Cities Summit 2019

Nearby was proud to be part of Portugal Smart Cities Summit 2019
#sixfactor #smartcitiesportugal #cmseixal #nearby
Find out more… https://portugalsmartcities.fil.pt/




Mar 6, 2017

Six-Factor take second place in Dutch Blockchain Hackathon...

Even though it happened a few weeks ago, let’s make it known for prosperity. Six-Factor participated partnering with Lab15 in the Dutch Blockchain Hackathon (https://blockchainhackathon.eu/teams/lab15 ), in Groningen in the Netherlands, and took the 2nd prize (in Future of Pensions category) leaving way behind giants like Accenture and Deloitte in a crowd of 11 teams…


After a marathon that started on Friday at 13h00 and ending on Sunday at 10h00, with an all-nighter of coding in the middle, the 10 minute pitch went great, so great that the sponsors of this track have approached the team to actually build the solution as a new product… more on this as it happens…




Mesmo tendo acontecido a algumas semanas atrás, vamos torná-lo conhecido para a prosperidade. A Six-Factor participou em parceria com a Lab15 no Dutch Blockchain Hackathon (https://blockchainhackathon.eu/teams/lab15 ), em Groningen na Holanda, tendo conseguido o segundo prémio (na categoria de Futuro de Pensões) deixando bem longe gigantes como a Accenture e Deloitte numa multidão de 11 equipas…


Depois de uma maratona que começou na Sexta-feira às 13h00 e terminou no Domingo às 10h00, com uma directa a programar pelo meio, a apresentação de 10 minutos correu muito bem, tão bem que os patrocinadores desta pista já abordaram a equipa para construírem a sério a solução na forma de um novo produto… mais sobre isto conforme for acontecendo…