Nessa palestra, José Mario Silva Guedes mostra a migração da abordagem Cliente Servidor para Multi Camadas passando pelo SOA (Soap) até chegar no ROA (Rest), por intermédio de uma linha do tempo do uso das linguagens VB, Delphi, Java chegando no Python, bem como, da evolução do banco de dados relacional para abordagem noSQL e suas variantes. Por fim, será abordado o cenário atual, mostrando a adoção de Machine Learning e tecnologias cognitivas, como por exemplo a adoção de Bots para o atendimento
Uma perspectiva histórica e o cenário atual das ferramentas de desenvolvimento para Contact Centers
1. Uma perspectiva histórica e o cenário
atual das ferramentas de
desenvolvimento para Contact Centers
Mario Guedes | Setembro 2017
2. Mario? Quiii Mariuuuu?
José Mario Silva Guedes
Desenvolvedor há 20+ anos
Gerente de Desenvolvimento na CONTACT STUDIO Software
Manja de Delphi, Python, JavaScript, Lua e bancos noSQL
Sabe nada de Java e.NET e esqueceu como se faz SELECT * FROM TABELA
Sonha em aprender C++
Esta se atrevendo no mundo do Data Science
5. O que é um
Contact
Center?
• Contact Center é um Call Center bombado
• Basicamente é uma estrutura montada para interagir com os
clientes de forma ativa ou receptiva
• Vendas
• Reclamações
• Cobranças
• Dúvidas e suporte técnico
• Elogio (aham)
• E todas as coisas chatas do dia à dia
• Hoje o desafio é lidar com os vários canais possíveis – Omni-
Channel:
• Telefone, Fax e SMS(clássicos)
• e-Mail (o novo fax – no sentido de estar em desuso)
• Chats (Plataforma próprias e populares como Facebook)
• Mídias Sociais (Twitter, Facebook, Instagram e etc)
6. • Processos de WorkFlow – Nível 1 e Back Office
• CTI – Integração entre Computador e Telefonia
• Receptivo
• Screen-Pop
• Discador automatizado
• Power
• Preview
• Preditivo
• Gravação de ligações telefônicas
• Tabulador
• URA – Unidade de Resposta Audível
• FAX
• SMS
• Chat
• Mídias Sociais
• Integração não invasiva
8. E como faz tudo isso?
• Programando ué!
• C++
• Visual Basic
• ASP
• Java
• .NET (VB.NET, C#)
• Delphi
• Python
• Ruby
• PHP
• JavaScript
• Node.js
• Padrões Web – CSS e HTML
• Scala
• Etc, etc e etc!
9. E quais linguagens vc deve aprender?
Todas?
•Impossível
Nenhuma?
•Impossível
Algumas!
• Aprenda a
programar: a
linguagem é
um mero
detalhe
10. O que presenciei?
(Sem compromisso com a cronologia e exatidão)
Anos 80: Onipresença da alta
plataforma com COBOL e
FORTRAN e início da
popularização da baixa
plataforma (Clipper e Pascal) – foi
o que me contaram rs
Anos 90: Migração do Clipper
para Delphi, Visual Basic e FoxPro
- Morte ao DOS! Viva o Windows!
Anos 2000: Migração para Web,
com utilização massiva de Java,
.NET e PHP na parte servidora e
um monte de tranqueira no lado
cliente.
Anos 2010: Domesticação dos
sistemas web (Web 2.0) e
consolidação do Delphi e.NET
(VB.NET e C#) no ambiente
Desktop.
Anos 2012: Fetiche pelos
aplicativos móveis. As linguagens
que se destacam são Java
(Android) e Objective-C (iPhone).
Anos 2015: Consolidação de
linguagens de altíssimo nível na
parte servidora, Python e Ruby, e
auto suficiência na parte cliente:
HTML5, CSS3 e ECMAScript 2015
(JavaScript)
Anos 2016: Drone, prototipagem
com Arduino (C) e RasperryPi
(Python): IoT - Internet das
Coisas
Anos 2017: Criação de vários
dialetos em todas as vertentes e
foco no Data Science –IA,
Preditividade e BOTs. Três
linguagens se destacam: R,
Python e Scala.
Curiosidade: O cara que “criou” o
Delphi é o mesmo que “criou” o
.NET e TypeScript - Anders
Hejlsberg
Constatação: O C e C++ é a base
da maioria das outras linguagens
Curiosidade: O JavaScript
“original” foi criado em DEZ dias!
Anos 2020: Que Deus nos
proteja.
11. O que estou usando hoje?
• Python 3x
• Backend
• Uma linguagem fantástica com ecossistema fantástico
• JavaScript, HTML5 e CSS3 (VueJS com TypeScript)
• Frontend
• É disso que o browser gosta!
• Delphi
• Algumas soluções se mostram bem convenientes em
Win32
• Scala
• Data Science
• Lua
• Linguagem brasileira que algumas soluções utilizam para
extensão
12. Melhorou? Piorou?
• O mundo mudou e as necessidades são mais complexas.
• Antes vc estava confinado à rede interna da empresa então era OK fazer um
programa que acessava diretamente o banco de dados
• Mas hoje vc precisa atender ao planeta: web, mobile, IoT e por ai vai.
• As linguagens compiladas como Delphi ou C++ estão perdendo espaço para as
linguagens interpretadas como Python e Ruby pois o ciclo de
desenvolvimento é mais simplificado
• A Orientação a Objetos esta passando a conviver com o Paradigma Funcional
• Então considero que melhorou pois estamos conseguindo acompanhar a
evolução das necessidades
• Porém agora exige-se cada vez mais do profissional
14. Por que SQL é um padrão?
• Armazenamento era um sério problema nas décadas
anteriores:
• Disco caro, memória cara, tudo caro!
• Na baixa plataforma, PCs de um modo geral, houve
uma época em que tínhamos arquivos soltos em
servidor e as aplicações as disputavam – DBF e Paradox
por exemplo – o que causava corrupção
• Dai se popularizou os bancos relacionais baseado em
um servidor: SQL Server, Oracle, PostgreSQL, MySQL,
Firebird, Interbase e diversas outras opções que faziam
mais do mesmo.
• O maior problema que se resolveu foi o espaço em
disco.
• Mas dependendo do volume gerados é necessário
expurgar dados.
15. Daí que o
relacional
deixou de ser
suficienteDai algum
desocupado
inventou o
Big Data e
seus 3 V’s
Volume: Teras, Petas, Zetas de bytes
Velocidade: Esse volume tem que ser
processado rapidamente para ter valor
Variedade: Os dados estão em vários
formatos
A maior
parte dos
dados, 90%,
não são
estruturados
Texto em linguagem natural (e.g. eMails)
Áudio
Imagem
E por ai vai
16. noSQL
• Não Somente SQL! – O relacional continua tendo o seu valor
• Oferece formas diferentes de armazenamento e recuperação de
dados
• Existem vários paradigmas, se destacando:
• Orientado a documento
• Orientado a chave e valor
• Orientado a colunas
• Orientado a grafo
• O segredo esta em como esses bancos estruturam as
informações em disco e memória
• Já há uma nova tendência que é o newSQL que,
basicamente, são bancos multi paradigmas.
• A velocidade do storage determina a velocidade do seu
sistema!
17. Como um carro seria armazenado em um banco relacional
18. E como seria armazenado em um orientado à documento!
19. Como os dados são
estruturados na orientação
à grafo
• É assim que o Facebook
encontra os seus amigos.
• E os amigos dos seus
amigos.
20. Melhorou? Piorou?
• Pra mim melhorou pra caramba!
• Em soluções de CC nota-se um desperdício muito grande das informações.
• E os bancos relacionais, com suas chaves estrangeiras, triggers e procedures
atrasam a vida.
• Quando chega uma ligação preciso fazer o screen-pop o mais rápido possível.
• Quando tiro um relatório, quero tirar agora e quero o resultado rápido.
• Quando eu precisar mudar o esquema da minha informação, mudo apenas no
código da minha aplicação. Bancos sem esquema é vida!
22. Fases
• Mainframe com terminais burros
• Cliente servidor com os aplicativos misturando regras de negócio com interface
acessando tabelas em formato de arquivos
• Cliente servidor com os aplicativos misturando regras de negócio com interface
acessando um SGBDR
• Delegação das regras de negócio para o SGBDR (Triggers e Stored Procedures)
• Três camadas: cliente (apresentação), servidor (regras) e banco de dados (dados)
• Multi camadas: Tudo distribuído! Um inferno!
• Protocolos proprietários
• SOAP
• E finalmente o REST com microserviços!
26. IA First
• Havendo condições de acumular dados e mais dados, o que
fazer com eles?
• Hoje o desafio é tirar proveito efetivo do Data Science
• No âmbito do CC estamos tentando:
• Aplicar algoritmos de Aprendizado de Máquina para
“prever” qual o melhor horário e telefone para ligar
para você
• Sinalizar tendência de “cancelamento de plano”, por
exemplo, de acordo com o “comportamento” do
consumidor
• “Conversar” com o consumidor, via voz ou chat, a
primeira abordagem e quem sabe até resolver
• Para isto estamos ainda criando conhecimento e estudando
serviços cloud – AWS, Google e alguns outros
• Estamos sentindo falta de um background matemático e
conhecimentos em estatísticas. As ferramentas estão
“fáceis” de usar mas o mais difícil é elaborar as perguntas
27. Momento Jabá
• Se você é um desenvolvedor de sites ou sistema de um
modo geral e precisa bombar a sua solução relacionada à
comunicação como Chat ou Telefonia Voip – Seus
problemas acabaram!
• Estamos precisando de beta testers das nossas soluções,
vamos trocar uma ideia?
• Mande um e-mail para mario.guedes@contactstudio.com
e vamos ver se dá jogo =)