segunda-feira, 30 de dezembro de 2019

Por que sua equipe de software deve ser remota


Este artigo foi originalmente publicado pela indexcode.io

O futuro do trabalho é remoto, e em nenhum setor isso é mais verdadeiro do que em programação e desenvolvimento de software. Uma força de trabalho globalizada permite que as empresas utilizem as habilidades de programadores de todo o mundo, economizando tempo e dinheiro no processo. Muitas empresas, incluindo Stripe, ESPN e Coffee Meets Bagel, têm capitalizado em trabalhar com os principais desenvolvedores, não importa onde morem. Aqui estão alguns dos principais benefícios que as empresas obtêm trabalhando com equipes de software remotas.

Beneficie-se do aumento da produtividade 

Não são apenas as equipes de software: em geral, os funcionários remotos são mais produtivos. Uma pesquisa constatou que 77% dos trabalhadores eram mais produtivos ao trabalhar remotamente; 30% dos entrevistados relataram que "mais em menos tempo do que quando trabalhavam internamente".

Os desenvolvedores remotos de software ganham flexibilidade para trabalhar quando são mais produtivos. Nem todo mundo é mais produtivo entre as 9:00 e as 17:00. As equipes dispersas podem espalhar sua cobertura por 24 horas, concluindo tarefas quando cada pessoa é capaz de se concentrar e realizar seu melhor trabalho. Se houver um problema que precise ser resolvido imediatamente, há uma boa chance de alguém em um fuso horário diferente estar pronto para solucionar problemas. Para as empresas que pagam a cada desenvolvedor por hora, você está pagando por horas trabalhadas - não horas gastas em uma mesa olhando para o Facebook. Isso se traduz em um melhor trabalho pelo seu dinheiro.

Tenha acesso aos melhores talentos em todos os lugares

Quando um gerente de contratação recruta de um conjunto de candidatos em uma área geográfica imediata, sua capacidade de contratar o melhor desenvolvedor é limitada. Expandir sua equipe de software para um conjunto global de candidatos oferece à sua empresa o melhor ajuste possível para o projeto. De acordo com o Relatório de Habilidades para Desenvolvedores de 2019 da Hackerrank , "41% dos empregadores dizem que a falta de talentos é um problema que enfrentam ao contratar desenvolvedores". O recrutamento em todo o mundo permite que uma empresa contrate um engenheiro do Vale do Silício para trabalhar com um especialista em Java da Polônia e um desenvolvedor de software das Filipinas. Escassez de talentos: resolvida.

Economize nos custos dos funcionários 

Dependendo do nível da posição e da sua localização, custa em média US$ 4.000 para recrutar um novo funcionário. Desde a redação da descrição do cargo até a publicação do cargo e a contratação de alguém para entrevistar, os custos de contratação de uma equipe de software completa podem aumentar rapidamente.

As empresas economizam nos custos de realocação e recrutamento e podem contratar menos por talento ao contratar remotamente. Estima-se que uma força de trabalho de engenharia remota totalmente funcional economize entre US $ 11.000 e US $ 50.000 por funcionário, por ano. "O talento que trabalha em casa não exige espaço para escritório, equipamento de computação, café e cobertura de deslocações", observa um blog. Engenheiros, desenvolvedores e programadores estão entre os profissionais mais bem pagos do mundo. Mas, é tudo relativo a onde a pessoa está localizada. As taxas de câmbio tornam possível pagar bem a um trabalhador remoto sem interromper seu orçamento.

Aumentar a moral e a retenção de funcionários

A empresa de pesquisa Gartner descobriu que "até 2020, as organizações que apóiam uma cultura de 'escolha seu próprio estilo de trabalho' aumentarão as taxas de retenção de funcionários em mais de 10%". Permitir que seus funcionários determinem quando e onde eles trabalham reforça a motivação e o envolvimento com o trabalho de suas equipes. Funcionários engajados são funcionários felizes, e funcionários felizes permanecem na empresa por mais tempo.

O trabalho remoto está se tornando a norma, e não a exceção. A contratação de uma equipe remota de software prova o seu departamento de TI no futuro. “Com uma força de trabalho cada vez mais remota, você deve configurar esses sistemas agora para permanecer competitivo no futuro. Não seja a empresa que fica para trás porque você não consegue atrair o talento certo para realizar o trabalho ”, escreve um blog de desenvolvimento.

Elimine os riscos da terceirização

Algumas empresas precisam apenas de assistência de curto prazo, baseada em projetos; outros precisam de uma equipe remota em tempo integral para ajudar a cumprir a missão da empresa. Nesta segunda instância, muitas empresas tentariam usar um atalho, terceirizando seu projeto aos poucos para freelancers ou uma empresa terceirizada. Eles perdem a capacidade de controlar o projeto, nunca constroem uma equipe dedicada e gastam mais tempo e dinheiro em controle de qualidade do que se tivessem contratado uma equipe discreta e examinada de codificadores remotos. Contrate uma equipe de software remota dedicada, coordenada por uma parte, para manter “controle total sobre o fluxo de trabalho e eliminar os riscos associados à terceirização”.

Crie uma equipe de desenvolvimento de software de alto desempenho com os melhores engenheiros do mundo. Comece hoje mesmo com a Index Code.

quinta-feira, 26 de dezembro de 2019

Além do Bitcoin: como os desenvolvedores estão ajudando os bancos tradicionais a se modernizar


Este artigo foi originalmente publicado pela indexcode.io

Bitcoin e blockchain tendem a ganhar manchetes no mundo dos bancos. A criptomoeda é o filho da “tecnologia disruptiva” no setor financeiro tradicionalmente lento. Porém, há outras áreas em que desenvolvedores e engenheiros de software precisam atualizar os negócios normalmente no setor bancário para sobreviver.

Segundo uma pesquisa, 80% dos banqueiros concordaram que sua instituição "precisa concluir uma avaliação nos próximos três anos, mas apenas 15% esperavam que isso levasse a um esforço de modernização". Ameaças à segurança, demanda por banco móvel e desatualização, todos os principais sistemas bancários estão levando os bancos a considerar grandes reformas em seus sistemas de TI. Esses são os maiores desafios de modernização enfrentados pelas instituições financeiras - áreas em que desenvolvedores e equipes remotas de software podem desempenhar um papel significativo para manter os bancos competitivos.

Fazendo atualizações nas "estruturas herdadas"

Na mesma pesquisa, 60% dos banqueiros relataram que pelo menos um de seus principais desafios tecnológicos está diretamente relacionado ao envelhecimento dos principais sistemas. "A manutenção de sistemas legados representa 78% do orçamento de TI de um banco e 70% dos banqueiros sentem que seus processos principais não podem se adaptar rapidamente às mudanças", relata Ripple.

Com o tempo, os bancos resistiram a grandes mudanças em seu sistema bancário principal, o sistema de back-end responsável pelo processamento de transações, atualizações nas contas e manutenção de outros registros financeiros. Os principais sistemas bancários são responsáveis ​​pelo processamento de depósitos, empréstimos e lançamento de créditos, além de atualizar outras ferramentas de relatórios e contabilidade.

À medida que crescem os recursos direcionados ao consumidor, como depósito móvel e transferência ponto a ponto, esses sistemas bancários principais tiveram atualizações ad hoc - mas nenhuma transformação completa. Os principais sistemas de depósito foram construídos na década de 1970, escritos em "velhas e inflexíveis linguagens de programação" como Cobalt e PL/I. A análise da Oracle também descobriu que esses "sistemas principais herdados de décadas são inflexíveis e cada vez que um banco deseja lançar um novo produto deve 'codificar' o sistema, o que pode levar 12 meses ou mais".

Não existe uma solução simples para atualizar o sistema principal de um banco: é um empreendimento tecnológico maciço, mas no qual os bancos devem investir para atender bem seus clientes. Os engenheiros podem ajudar os bancos a desenvolver uma abordagem ágil e centrada no consumidor para o core banking. Existem várias abordagens para resolver o problema dos sistemas centrais arcaicos, e as equipes de software podem realizar mudanças iterativas que evoluem a infraestrutura principal de um banco sem muita interrupção do serviço.

Modernizando a proteção contra fraudes

A prevenção de fraudes continua sendo um dos desafios tecnológicos mais difíceis que os bancos enfrentam, à medida que os cibercriminosos ficam mais sofisticados para atingir os consumidores. Para ilustrar o desafio que os bancos enfrentam em manter as informações da conta do consumidor em segurança, a Kasperky Lab invadiu uma “grande empresa financeira de capital aberto em menos de 15 minutos”.

As abordagens tradicionais adotadas por muitos bancos não funcionam. Os requisitos de autenticação e os processos de verificação falham em evitar fraudes e proporcionam uma experiência negativa ao cliente. Em vez disso, escreve um especialista em segurança, “os bancos devem se concentrar na criação de melhores sistemas e técnicas para coletar e analisar dados internos e externos, desenvolver algoritmos e perfis mais significativos, executar testes de penetração em relação às estratégias atuais, detectar alterações nos padrões de transação e desenvolver soluções mais eficazes”.

Para proteger os consumidores de ataques de malware e fraude, os bancos devem passar de uma abordagem de operações reativa para uma preventiva. Os desenvolvedores podem ajudar os bancos a se preparar modernizando os sistemas que armazenam dados do usuário, movendo informações para uma nuvem criptografada. Diz-se que a ferramenta de IA da IBM, por exemplo, oferece uma análise mais rápida de ameaças e ataques persistentes avançados. Os desenvolvedores devem integrar a tecnologia mais recente nos sistemas de segurança dos bancos para se modernizar.

Abertura de conta digital

Os desenvolvedores desempenharão um papel crítico para ajudar os bancos tradicionais a acompanhar as demandas dos clientes em movimento. A abertura de conta digital é um processo em que desenvolvedores e engenheiros de software podem ter um impacto imediato.

A abertura de conta digital (DAO) é o processo de abertura de uma conta bancária sem nunca entrar no banco. O DAO envolve executar as seguintes etapas:

  • Coletar informações de identificação pessoal de um cliente
  • Avaliar e aprovar (ou rejeitar) um cliente de uma perspectiva de risco/fraude
  • Verifique a identidade do cliente
  • Aceite fundos digital e imediatamente, através de cartão de débito / crédito ou com depósito móvel
  • Sincronize com o sistema bancário principal


Muitos bancos são capazes de permitir que os clientes abram uma conta online através de um navegador da web. No entanto, a abertura de conta otimizada para celular é uma área em que o setor ficou para trás. Existem algumas boas razões para esse processo ser tão difícil. A fraude de aplicativos e leis rigorosas contra a lavagem de dinheiro dificultam o cumprimento dos requisitos regulatórios pelos bancos. Há riscos de segurança significativos : em 2018, os bancos enfrentaram mais de US$ 31 bilhões em perda de fraude global.

Mas os desenvolvedores que ajudam os bancos a se modernizar para fornecer DAO terão um impacto financeiro imediato. Um relatório constatou que 69% dos pesquisados desejam realizar todos os seus serviços bancários por meio de canais online e móveis. A BAI descobriu que cerca de 75% da geração Y e mais de 65% da geração X preferem usar um canal digital para abrir uma conta de depósito. O consumidor principal do futuro espera poder abrir uma conta, obter empréstimos pessoais e transferir fundos de qualquer dispositivo a qualquer momento. Os desenvolvedores devem encontrar uma maneira de construir a infraestrutura para permitir que os bancos ofereçam o DAO.

segunda-feira, 23 de dezembro de 2019

10 ferramentas para ajudar as equipes de desenvolvedores remotos a trabalhar com eficiência


Este artigo foi originalmente publicado pela indexcode.io

Está provado que as equipes remotas trabalham mais produtivamente do que as equipes em um ambiente de escritório. Uma pesquisa constatou que 77% dos trabalhadores eram mais produtivos ao trabalhar remotamente. Outro descobriu que 76% dos trabalhadores eram distraídos com menos frequência do que quando trabalhavam em um escritório.

Os funcionários remotos podem ser mais produtivos, mas ainda há desafios para trabalhar com eficiência em uma equipe distribuída. A coordenação de desenvolvedores em fusos horários pode apresentar uma dor de cabeça logística. As equipes de desenvolvedores remotos precisam das ferramentas e plataformas certas para garantir que possam compartilhar o trabalho com eficiência e capturar todos os benefícios do trabalho remoto produtivo. Essas são as dez melhores ferramentas para ajudar as equipes distribuídas de desenvolvedores a coordenar.

GitHub
O GitHub (e o Git) oferece um local baseado em nuvem para armazenamento, teste, compartilhamento e colaboração em projetos de desenvolvimento web. O GitHub é uma plataforma de teste para os desenvolvedores compartilharem projetos, editarem e construírem o código um do outro. Da revisão de código ao gerenciamento de projetos, às codificações e integrações sociais, o GitHub é a espinha dorsal de qualquer projeto de equipe de desenvolvedor remoto.

Slack
Toda equipe remota precisa de uma plataforma de colaboração e comunicação, e é aí que entra o Slack. Favorecido por equipes remotas de todos os tamanhos, o Slack oferece um espaço para bate-papo, para compartilhar documentos, obter feedback e coordenar projetos de codificação. Desde a solicitação de feedback do teste beta até o envio de projetos mais rapidamente, o Slack facilita uma cultura de equipe remota e um trabalho mais produtivo.

Bitbucket
O Bitbucket, anteriormente Stash, é uma ferramenta projetada para manter os desenvolvedores produtivos ao trabalhar no Git. Os repositórios Git podem ficar pesados ​​rapidamente - e o Bitbucket fornece uma maneira de estruturar repositórios com uma interface fácil e amigável. Como o GitHub, o Bitbucket oferece uma plataforma para planejar projetos, colaborando com código, testes e implantação. Além disso, configure repositórios privados ilimitados gratuitos.

Jira
Jira é uma necessidade absoluta para equipes de desenvolvimento ágil. A ferramenta de planejamento e rastreamento ajuda sua equipe a criar novas histórias de usuários, planejar sprints e atribuir tarefas para manter todos responsáveis ​​por seu trabalho. O rastreamento de erros e os relatórios são esclarecidos com o fluxo de trabalho transparente da plataforma, dando visibilidade a todos, não importa onde eles estejam no mundo. Além disso, o Jira se integra ao Confluence, Bitbucket e centenas de outras ferramentas de desenvolvedor.

Basecamp
O Basecamp é uma ótima alternativa (ou suplemento) ao Jira. A beleza do Basecamp é que ele reúne todas as ferramentas que uma equipe remota usa em um único local. A plataforma promete que um trabalhador remoto “saberá o que fazer, onde estão as coisas e onde encontrar as coisas que precisam”. O Basecamp inclui quadros de mensagens, listas de tarefas, armazenamento de arquivos, bate-papo em grupo e muito mais solução de produtividade.

InVision
Prototipar em uma equipe de desenvolvimento remoto pode ser um desafio, e é aí que o InVision vem em socorro. Este aplicativo foi usado por empresas como Airbnb, Amazon, Lyft e Netflix para colaborar em projetos de design e protótipo. Os quadros interativos e as ferramentas de design integradas à plataforma permitem feedback simplificado, coordenação inteligente e transferência eficiente entre as equipes de desenvolvimento e design. O InVision possui uma interface de usuário elegante e muitas integrações (incluindo Jira, Slack e Basecamp) para ajudar sua equipe a trabalhar da maneira mais eficiente possível.

Screenhero
Screenhero é uma ferramenta de compartilhamento de tela desenvolvida especificamente para codificadores remotos. O bate-papo por voz e vários cursores do mouse facilitam a colaboração e o emparelhamento de código ou correção de erros em conjunto. “Os designers podem iterar mais rapidamente revisando projetos com as partes interessadas ou clientes em tempo real - sem passar arquivos para frente e para trás”, escreve um revisor. Vá além do screencasting para uma maneira mais colaborativa de trabalhar virtualmente.

Google Drive
Toda equipe precisa de uma boa maneira de compartilhar arquivos. O Google Drive oferece 15 GB de armazenamento gratuito na nuvem - é uma quantidade razoável de códigos, imagens, histórias, designs e outros documentos que você pode precisar guardar para seus projetos de desenvolvimento. A flexibilidade da plataforma de armazenamento em nuvem significa que os desenvolvedores remotos podem acessar arquivos em qualquer dispositivo; os arquivos são sincronizados automaticamente e a função de salvamento automático salvou muitos planos de projeto em caso de emergência.

Every Time Zone
Às vezes, mesmo as ferramentas mais simples têm o maior impacto na capacidade de uma equipe virtual de trabalhar com eficiência. Every time zone mostra a que horas onde cada desenvolvedor está localizado. Em vez de esperar por uma resposta de um colega que está offline, um desenvolvedor pode solucionar problemas por conta própria ou seguir para uma tarefa diferente. O agendamento de reuniões e o cumprimento dos prazos se tornam mais fáceis quando você sabe quando cada pessoa está online - especialmente quando sua equipe tem agendas flexíveis. Os gerentes experientes também podem criar equipes remotas que sempre têm alguém on-line, garantindo cobertura constante sem atrasos.

I Done This
Procurando uma ferramenta simples de produtividade? I Done This é uma plataforma simples que fornece check-ins diários e relatórios de progresso para fazer mais de forma efetiva e produtiva. Acompanhe o trabalho dos seus co-desenvolvedores e acompanhe o que está sendo feito, o que está fora do cronograma e por quê. Além disso, é baseado em email, tornando-o uma adição simples às ferramentas que sua equipe já está usando.

Interessado em trabalhar com uma equipe de desenvolvedores remotos? Entre em contato com a Index Code para saber mais.

quinta-feira, 21 de março de 2019

Dynamics 365 - Update CRM via Portals

Sabemos que o Dyn365 Portals possui diversas limitações, e uma delas é a possibilidade de atualizar a base do CRM. Podemos apenas hoje usar a tecnologia Liquid para efetuar buscas no CRM.

Desta forma, segue um mecanismo para efetuar um CRUD no CRM, a partir do portal. O procedimento abaixo é um resumo do artigo criado pela UDS.

O exemplo abaixo faz uma atualização de status na tabela de apontamento.

1 - Criar a entidade PortalActions (escopo de organização), com os campos [new_action, new_parameters]
IMPORTANTE: Área de permissões do portal no Dyn365: Adicionar esta tabela no item [Permissões de Entidade], Escopo [Global], todos os privilégios, e no grid [Funções da Web], adicionar o [Administrador] e [Usuários Autenticados].

2 - Criar uma Page Template (chamada CustomActions) com o seguinte conteúdo Liquid:

{% assign action = request.params['action'] %}
{% assign parameters = request.params['parameters'] %}
{% fetchxml portalAction %}
<fetch>
 <entity name="new_portalactions">
 <attribute name="new_name" />
 <filter type="and">
 <condition attribute="new_action" operator="eq" value="{{action}}" />
 <condition attribute="new_parameters" operator="eq" value="{{parameters}}" />
 </filter>
 </entity>
</fetch>
{% endfetchxml %}

{% for item in portalAction.results.entities %}
<p>{{ item.new_name }}</p>
{% endfor %}


3 - Criar o seguinte Plugin (Message: RetrieveMultiple, EntityName: portalaction, Stage: pre)

public class ActionPlugin : IPlugin
{
    private IDictionary<string, Func<string, IOrganizationService, string>> _actionMap;

    public ActionPlugin()
    {
        _actionMap = new Dictionary<string, Func<string, IOrganizationService, string>>() {
        { "UpdateAppointmentStatus", UpdateAppointmentStatus }
     };
    }

    public void Execute(IServiceProvider serviceProvider)
    {
        var context = (IPluginExecutionContext)serviceProvider.GetService(typeof(IPluginExecutionContext));
        var serviceFactory = (IOrganizationServiceFactory)serviceProvider.GetService(typeof(IOrganizationServiceFactory));
        var service = serviceFactory.CreateOrganizationService(null);

        FetchExpression currentQuery = context.InputParameters["Query"] as FetchExpression;
        if (currentQuery != null) {
            XDocument parsedQuery = XDocument.Parse(currentQuery.Query);

            var requestParameters = parsedQuery.Descendants("filter").Elements().ToDictionary(e => e.Attribute("attribute").Value, e => e.Attribute("value").Value);

            if (requestParameters.ContainsKey("new_action") &&
            requestParameters.ContainsKey("new_parameters") &&
            _actionMap.ContainsKey(requestParameters["new_action"])) {
                string parameters = Encoding.UTF8.GetString(Convert.FromBase64String(requestParameters["new_parameters"]));
    parameters = parameters.Replace("\"", "");

                string result = _actionMap[requestParameters["new_action"]](parameters, service);
                var restulCollection = new EntityCollection();

    Guid id = Guid.NewGuid();
    restulCollection.Entities.Add(
    new Entity("new_portalactions") {
     Id = id,
     Attributes =
     {
      { "new_portalactionsid", id },
      { "new_result", result }
     }
    });
    
            }
        }
    }

    private string UpdateAppointmentStatus(string id, IOrganizationService service)
    {

        try {
            var _state = new SetStateRequest();
            _state.State = new OptionSetValue(1);
            _state.Status = new OptionSetValue(2);
            _state.EntityMoniker = new EntityReference("ENTITY_NAME", Guid.Parse(id));
            var stateSet = (SetStateResponse)crmService.Execute(_state);
        }
        catch (Exception ex) {
            return "Error: " + ex.Message;
        }

        return "Success";
    }
}

4 - Criar a classe JS [CrmActionHelper] e EXECUTÁ-LA em uma Portal Page (ONLOAD da página)

CrmActionHelper = CrmActionHelper || { __namespace: true };
(function (CrmActionHelperNamespace) {
 CrmActionHelperNamespace.Action = function (action, parameters) {
 var request;
 var url = "/CustomActions?action=" + action + "&parameters=" + prepareParameters(parameters);

 var $result = $.ajax({
 type: "GET",
 dataType : "json",
 url: url,
 beforeSend: function(xhr) {
 request = xhr;
 },
 error: function (jqXHR, textStatus, errorThrown) {
}

 });
 
 return { deferred: $result, request: request };
 }
 
 function prepareParameters(parameters) {
 return btoa(JSON.stringify(parameters));
 }
})(CrmActionHelper);
 
CrmActionHelper
 .Action("UpdateAppointmentStatus", "ID DO APONTAMENTO")
 .deferred
 .done (function (result) {
 });
 


That's it!

sexta-feira, 31 de agosto de 2018

Protegendo Propriedade Intelectual: Um Guia Fácil para Startups

Este artigo foi originalmente publicado no UpCounsel.

O que é propriedade intelectual?

Propriedade intelectual (IP) é um termo geral para os direitos reconhecidos pela lei dos EUA para criações da mente, incluindo:

Patentes - direitos concedidos para novas 
e úteis invenções.
Marcas registradas - direitos concedidos a empresas relacionadas à marca de seus produtos e serviços (nomes de empresas, produtos e serviços).
Direitos autorais - direitos concedidos aos autores para expressões tangíveis de idéias (arte, literatura, música, código de software, planos de arquitetura).
Segredos comerciais - direitos concedidos a empresas relacionadas a seus ativos intangíveis exclusivos e valiosos (processos de negócios, listas de clientes, procedimentos, práticas, fórmulas, notas de pesquisa, dados de mercado).


Tipos de Patentes

Existem três tipos de patentes que todas as startups devem conhecer:

Patentes de Utilidade - De acordo com o USPTO, patentes de utilidades são para invenções, “... de um novo e útil processo, máquina, manufatura, ou composição de matéria, ou um novo e útil aprimoramento do mesmo.” Patentes de utilidade são para a proteção de como um invenção é usada e funciona.

Patentes de Método de Negócio - Os métodos de negócios também são protegidos pela lei de patentes dos EUA. Uma patente de método comercial é, na verdade, uma forma de patente de utilidade que protege novos métodos de fazer negócios, como aqueles usados, por exemplo, em bancos, conformidade fiscal e comércio eletrônico, para citar alguns.

Patentes de design - patentes de design, conforme descrito pelo USPTO, são “Emitidas para um projeto novo, original e ornamental, incorporado ou aplicado a um artigo de fabricação.” Uma patente de projeto “permite que seu proprietário exclua outros de fazer, usar ou vender um design. ”Uma patente de projeto pode fornecer proteção para IP quando uma patente de utilidade não estiver disponível.

Todos os três tipos de patentes devem ser considerados por uma startup como parte de sua estratégia de proteção de IP.

Por que a propriedade intelectual é importante para uma Startup?

Se sua empresa iniciante ou em estágio inicial tiver direitos de propriedade intelectual, você poderá:

- Notificar o mundo que você possui esses direitos registrando-os no Escritório de Direitos Autorais dos EUA ou no Escritório de Marcas e Patentes dos EUA (USPTO) e usando os símbolos de aviso adequados em materiais tangíveis que contêm seu IP (©, ® e patente pendente ).
- Evite que terceiros não autorizados (infratores) concorram injustamente com você, reproduzindo seus trabalhos protegidos por direitos autorais, usando marcas comerciais semelhantes a seus produtos, fabricando / vendendo produtos semelhantes aos seus produtos patenteados ou roubando seus segredos comerciais.
- Use seus direitos de propriedade intelectual para gerar receita (1) vendendo diretamente produtos e serviços patenteados, com marca, patenteados ou outros proprietários ou (2) licenciando seus direitos autorais, marcas registradas, patentes e segredos comerciais a terceiros em troca de royalties.
- Crie joint ventures e alianças com outras empresas para desenvolver e vender novos produtos e serviços, combinando seus direitos de propriedade intelectual com propriedade intelectual de propriedade de seus parceiros estratégicos.

Etapas Importantes para as Startups Levarem para Proteção IP

1. Envolva um advogado de IP

Os direitos de PI funcionam como monopólios sancionados pelo governo, e essa exclusividade pode potencialmente torná-los muito valiosos. Por essa razão, a lei de propriedade intelectual é complicada e impõe vários requisitos aos proprietários de PI para reivindicar, proteger e preservar seus direitos de PI (e impedir que os ativos IP caiam no domínio público - ou seja, disponível para qualquer pessoa usar sem a permissão do proprietário) . Sua startup precisará de um advogado de renome especializado em leis de PI para ajudá-lo a elaborar uma estratégia eficaz para gerenciar e proteger seu IP e evitar os erros comuns que as pessoas de negócios cometem e que podem ter sérias implicações legais e financeiras.
Receba uma proposta gratuita de Todd

Como muitos direitos de PI dependem da confidencialidade (por exemplo, invenções que foram divulgadas antes do registro de um pedido de patente não podem ser patenteadas - veja a discussão de “EPD” abaixo), um advogado é o consultor ideal para uma startup, pois os advogados são eticamente legalmente obrigados a manter todas as suas comunicações confidenciais. Um consultor de PI não advogado não tem obrigações de confidencialidade rigorosas, a menos que você tenha um contrato impondo tais obrigações.

2. Identifique seu IP

Faça uma lista abrangente de cada ideia de negócio, invenção, novo produto ou conceito de serviço (ou qualquer melhoria ou avanço para um produto / serviço existente), potencial nome do produto, slogan, logotipo, processo de negócios, mercado ou nicho de cliente ou outra ideia proprietária que você acha que sua startup possui e é única e potencialmente valiosa. Seu advogado pode ajudá-lo a descobrir se essas ideias, conceitos, invenções, nomes e processos de negócios se qualificam como possíveis patentes, direitos autorais, marcas comerciais ou segredos comerciais.

3. Certifique-se de possuir o IP

Antes que você possa determinar se seu IP é protegido (incluindo, por exemplo, registrando-o nos EUA ou no exterior), você precisará confirmar que sua empresa realmente possui o IP (e pode continuar a possuí-lo se as coisas acontecerem no futuro ):
Inscrever-se no Blog UpCounsel

- Seus ex-empregadores possuem o IP? Se você e seus co-fundadores criaram o IP para sua startup enquanto você trabalhava em outras empresas, verifique seus contratos de emprego antigos para se certificar de que seus empregadores anteriores não têm motivos para uma possível reivindicação. Se você desenvolveu as idéias de seu novo negócio durante o horário de trabalho, ou ao usar os recursos do empregador anterior, pode estar em risco.
- O que acontece se você e seus co-fundadores se separarem? A startup deve continuar a possuir o IP, mesmo que um ou mais fundadores saiam pela porta. Você não quer que um ex-fundador crie uma empresa concorrente idêntica. Peça ao seu advogado de PI que redija um contrato simples de atribuição de propriedade intelectual que garanta que a empresa seja proprietária do PI, mesmo que o relacionamento azede.
- Você deu direitos nos contratos DIY que você elaborou? Se a sua startup contratou clientes ou fornecedores antes de contratar um advogado (provavelmente para poupar dinheiro), você precisa fazer com que seu advogado revise esses contratos. Peça ao seu advogado para ler todos os seus contratos existentes para se certificar de que você não concordou com termos que concedam mais direitos de PI a seus clientes e fornecedores do que o absolutamente necessário.

4. Pesquise seu IP

Depois de ter uma lista do IP significativo da sua inicialização, você precisa confirmar até que ponto esse IP é único e original (e, portanto, legalmente protegido).

Pesquise os registros de patentes no site do USPTO para ver se sua invenção (ou algo muito similar) já foi patenteada. Em seguida, faça uma pesquisa de "arte prévia" na internet para descobrir se uma versão não patenteada de sua invenção já existe. Se a sua invenção ou parte essencial dela já estiver nos registros de patentes ou fora do mundo, você não poderá patentear.

Da mesma forma, você desejará pesquisar o banco de dados de marcas registradas no site do USPTO e na Internet em geral para ver se os possíveis nomes de negócios e produtos de sua startup estão disponíveis. Se nomes semelhantes já estiverem em uso no mercado em produtos similares (ou se nomes semelhantes tiverem sido solicitados ou registrados no USPTO para produtos similares), essas marcas registradas podem não estar disponíveis.

5. Evite permitir a divulgação pública (EPD)

Como mencionado acima, a confidencialidade é crucial para invenções patenteáveis. Uma vez que uma invenção tenha sido “divulgada publicamente” pelo inventor, ela só tem um ano para registrar um pedido de patente junto ao USPTO. O conceito legal de permitir a divulgação pública (que ajuda a determinar o nível de divulgação que inicia o funcionamento do relógio) significa que você divulgou informações suficientes sobre o produto para permitir que outra pessoa em seu setor as copie. Feiras, demonstrações a potenciais investidores, comunicados de imprensa e artigos em publicações comerciais podem ser particularmente arriscados para desencadear EPD se você não estiver planejando arquivar rapidamente depois disso.

Seu advogado de IP pode ajudá-lo a evitar o EPD à medida que você desenvolve e testa seu produto.

6. Escolha suas batalhas IP

O dinheiro é escasso para a maioria das startups, então você vai querer mapear com seu advogado de PI quais patentes, registros e outras despesas relacionadas a IP precisam ser priorizadas em relação às outras. Por exemplo, você pode decidir que inicialmente buscará proteção por patente apenas para o produto principal da empresa e protegerá outras invenções como segredos comerciais usando contratos de confidencialidade. Da mesma forma, você pode decidir registrar inicialmente apenas o nome da marca principal da empresa como uma marca comercial. Patentes e registros adicionais podem ser adiados até que mais fundos estejam disponíveis.

7. Proteja seu IP dos investidores

Se você está lançando sua startup para potenciais investidores em um esforço para levantar dinheiro, você precisará divulgar pelo menos algumas de suas informações proprietárias para eles. Para evitar qualquer perda de seus direitos de propriedade intelectual, certifique-se de:

- Mantenha registros cuidadosos de quem recebeu acesso a seu memorando de colocação privado, plano de negócios ou apresentações de slides e peça aos potenciais investidores para (1) confirmar por escrito, por meio de acordos de não divulgação (NDAs), que não copiarão ou compartilhar esses materiais com outras pessoas e (2) devolver ou destruir todas as cópias em papel e eletrônicas dos materiais, caso decidam não investir.
- Distribua cópias em papel ou eletrônicas de seus materiais de investidores apenas para um número limitado de potenciais investidores pré-selecionados e seus conselheiros. Quanto menos cópias em circulação, melhor.

8. Proteja o IP de funcionários e contratados

Para evitar que funcionários e consultores que trabalham para sua empresa roubem seus ativos IP valiosos e os divulguem para concorrentes (ou iniciem seus próprios negócios para competir com você), você precisará deles para assinar NDAs para manter as informações confidenciais da empresa, ou seja, não divulgar informações da empresa a terceiros. Os acordos também devem incluir um reconhecimento de que todos os direitos sobre as invenções ou material com direitos autorais criados por eles enquanto trabalham para sua empresa são automaticamente transferidos para e pertencentes a sua empresa. (Seu advogado pode elaborar um modelo de contrato de empregado / consultor para você.)

9. Proteja seu IP globalmente

Muitas startups não reconhecem a importância de proteger seus direitos de PI fora dos EUA. Embora o pedido de patente nos EUA seja o lugar certo para começar, as startups precisam considerar uma estratégia internacional de patentes se acreditarem que suas invenções serão vendidas em outros países. países. Como parte dessa estratégia, as startups devem considerar a apresentação de um pedido de patente internacional (com o USPTO, se um residente dos EUA) sob as disposições do Tratado de Cooperação de Patentes (PCT). Um pedido de patente via PCT fornece proteção em mais de 100 países. 18 meses para permitir o registro de patentes nos países onde a proteção é solicitada.

10. Considere um pedido de patente provisório

Um pedido provisório de patente é um documento arquivado no USPTO que estabelece uma data de depósito antecipado para o depósito subseqüente de uma patente de utilidade não provisória. Também permite que o requerente use o termo “patente pendente” nos documentos que descrevem sua invenção.

O pedido de patente não provisória deve ser feito dentro de 12 meses do pedido provisório de patente. Um pedido provisório de patente requer a inclusão de uma especificação, mas é apresentado sem uma declaração formal de patentes, juramento ou declaração ou declaração de divulgação de informações.

11. Considere o exame prioritário Track One

O Programa Priorizado de Exame de Patentes (Track One) do USPTO permite que os arquivadores de patentes acelerem o exame e o processo de emissão de patentes para menos de 12 meses. A priorização do Track One tem um custo substancial (US $ 4.000 para grandes entidades, US $ 2.000 para pequenas empresas e US $ 1.000 para microentidades). No entanto, a obtenção de uma patente antecipada pode fornecer uma startup com várias vantagens, incluindo um aumento resultante mais rápido na avaliação da empresa e a capacidade de obter patentes estrangeiras em um período de tempo mais curto.

quinta-feira, 23 de agosto de 2018

Tudo o que você precisa saber sobre aplicativos de patentes de software

By UpCounsel Colaborator @
Artigo original - Everything You Need to Know About Software Patent Applications

Você tem uma ótima nova ideia para o que você espera que seja o próximo grande aplicativo. Você fez sua pesquisa e não conseguiu encontrar nada lá que seja remotamente parecido. Você reuniu investidores e está trabalhando com uma equipe de desenvolvedores e agora você está se perguntando se pode proteger sua ideia protegendo uma patente . Mas é patenteável? Você pode patentear uma ideia de software?

O velho caminho

Não muito tempo atrás, a questão de se uma ideia era elegível para uma patente tinha uma resposta realmente simples: sim! Costuma-se dizer que “qualquer coisa sob o sol que seja feita pelo homem” é elegível para ser protegida por uma patente.

A lei de patentes dos Estados Unidos 35 USC § 101 define o que pode ser patenteado como “qualquer novo e útil processo, máquina, manufatura ou composição de matéria, ou qualquer melhoria nova e útil do mesmo”. Isto parece incluir software, e nos anos desde o início da economia de aplicativos, muitas patentes dos EUA foram concedidas para software.

Uma nova abordagem

A Suprema Corte dos EUA interveio nos últimos anos e descobriu que muitas invenções de software não são elegíveis para proteção de patentes. Talvez mais significativamente, no caso de Alice v. CLS Bank, 134 S. Ct. 2347 (2014), a Suprema Corte determinou que as invenções realizadas em sistemas de computadores poderiam ser vistas como idéias meramente abstratas e, portanto, poderiam ser inelegíveis para a proteção de patentes.

Embora esta decisão, e as decisões que se seguiram, não impeçam totalmente que as invenções de software sejam patenteadas, na prática, tornou-se significativamente mais difícil obter patentes para invenções de software e as patentes concedidas para invenções de software são significativamente mais difíceis para executar no tribunal.

Quais tipos de software são mais difíceis de patentear?

Se a sua ideia for um método comercial ou envolver processamento de dados, determinação de custo / preço, comércio eletrônico ou software usado em finanças, você provavelmente terá mais dificuldade em buscar proteção por patente. Se a sua ideia envolve um método que usa hardware de computador genérico (não especializado) de uma maneira em que o hardware de computador genérico é normalmente usado, você provavelmente terá um caminho difícil pela frente.

Obtenha o guia final para estruturar operações legais

Quais tipos de software são mais fáceis de patentear?

Se a sua idéia envolve hardware de computador especializado que você criou, se sua ideia melhora a tecnologia do computador de tal forma que a maneira de operar o computador é aprimorada, ou se sua ideia permite que os computadores executem funções que, antes da sua ideia, computadores não poderiam executar, então você pode ter boas chances.

Se a minha ideia for elegível para patente, receberei uma patente?

Para patentes de software, o estabelecimento da elegibilidade de patentes é um primeiro passo importante na obtenção de sua patente. No entanto, sua ideia ainda precisará ser considerada nova e não óbvia. Simplificando, “romance” significa que sua invenção não era conhecida até que você a inventasse. "Não óbvio" geralmente significa que cada uma das características da sua invenção não pode ser encontrada separadamente em outro lugar.

quarta-feira, 6 de junho de 2018

Explorando os Princípios de Design da Gestalt

POR CAMERON CHAPMAN - EDITOR DE BLOG DE DESIGN @ TOPTAL

ARTIGO ORIGINAL - Explorando los Principios Gestalt del Diseño

O espaço negativo há muito tempo é um marco do bom design. Deixar espaço em branco ao redor dos elementos de um desenho é a primeira coisa que geralmente vem à mente. Mas há designs que usam esse espaço em branco para inferir um elemento que não está realmente lá (a seta oculta entre E e X no logotipo da FedEx vem imediatamente à mente como exemplo).


Os "E" e "x" no logotipo da FedEx criam uma seta dentro do espaço negativo entre eles.

O cérebro humano é excepcionalmente bom em preencher as lacunas em uma imagem e criar um todo maior que a soma de suas partes. É por isso que vemos rostos em coisas como folhas de árvores ou rachaduras na calçada.

Este princípio é uma das idéias subjacentes mais importantes por trás dos princípios gestálticos da percepção visual. A proposta inicial mais influente escrita sobre a teoria foi publicada por Max Wertheimer em 1923, nas suas leis gestálticas de organização perceptual , embora a discussão de Wolfgang Köhler, em 1920, sobre Gestos físicos também contenha muitas idéias influentes sobre o assunto.

Independentemente de quem primeiro propôs as idéias (houve ensaios que datam de 1890), os princípios da gestalt são um conjunto importante de idéias para qualquer designer aprender, e sua implementação pode melhorar muito não apenas a estética de um design, mas também sua funcionalidade e facilidade de uso.

Nos termos mais simples, a teoria da gestalt baseia-se na idéia de que o cérebro humano tentará simplificar e organizar imagens complexas ou desenhos que consistem em muitos elementos, organizando inconscientemente as partes em um sistema organizado que cria um todo, em vez de apenas um série de elementos díspares. Nossos cérebros são construídos para ver estrutura e padrões para que possamos entender melhor o ambiente em que vivemos.

Existem seis princípios individuais comumente associados à teoria da gestalt: semelhança , continuação , fechamento , proximidade , figura / fundo e simetria e ordem (também chamado de preniganz ). Existem também alguns princípios adicionais, às vezes associados à gestalt, como o destino comum .

Semelhança

É da natureza humana agrupar coisas semelhantes. Na gestalt, elementos semelhantes são visualmente agrupados, independentemente da proximidade entre eles. Eles podem ser agrupados por cor, forma ou tamanho. A similaridade pode ser usada para unir elementos que podem não estar ao lado um do outro em um design.


Os quadrados aqui são todos igualmente espaçados e do mesmo tamanho, mas os agrupamos automaticamente por cor, mesmo que não haja rima ou razão para a colocação deles.
Claro, você pode fazer coisas diferentes se você quiser fazê-los se destacar da multidão. É por isso que os botões para as frases de chamariz geralmente são criados em uma cor diferente do restante da página. Assim, eles se destacam e chamam a atenção do visitante para a ação desejada.

No design UX, o uso de similaridade deixa claro para seus visitantes quais itens são parecidos. Por exemplo, em uma lista de recursos usando elementos de design repetitivos (como um ícone acompanhado de 3-4 linhas de texto), o princípio de similaridade facilitaria a varredura através deles. Em contraste, a alteração dos elementos de design para os recursos que você deseja destacar faz com que eles se destaquem e lhes dê mais importância na percepção do visitante.

Mesmo as coisas simples, certificando-se de que os links ao longo de um design são formatados da mesma maneira, dependem do princípio de similaridade na forma como seus visitantes perceberão a organização e a estrutura do seu site.

Continuação

A lei da continuidade postula que o olho humano seguirá o caminho mais suave ao visualizar as linhas, independentemente de como as linhas foram realmente desenhadas.


O olho tende a querer seguir a linha reta de uma extremidade desta figura até a outra, e a linha curva de cima para baixo, mesmo quando as linhas mudam de cor no meio.
Essa continuação pode ser uma ferramenta valiosa quando o objetivo é guiar o olhar de um visitante em uma determinada direção. Eles seguirão o caminho mais simples da página, portanto, certifique-se de que as partes mais vitais que devem ver estejam nesse caminho.

Como o olho segue naturalmente uma linha, colocar itens em uma série em uma linha naturalmente atrairá o olho de um item para o outro. Os controles deslizantes horizontais são um exemplo, assim como as listagens de produtos relacionadas em sites como a Amazon.

Fecho

O encerramento é um dos princípios gestálticos mais legais e que eu já toquei no início desta peça. É a ideia de que seu cérebro preencherá as partes ausentes de um projeto ou imagem para criar um todo.

Em sua forma mais simples, o princípio do fechamento permite que seu olho siga algo como uma linha pontilhada até o fim. Mas aplicações mais complexas são frequentemente vistas em logotipos, como o do World Wildlife Fund. Grandes pedaços do contorno do panda estão faltando, mas seu cérebro não tem problema em preencher as seções que faltam para ver o animal inteiro.


O princípio de gestalt de fechamento é ilustrado lindamente no logotipo panda do World Wildlife Fund. O cérebro completa as formas brancas, mesmo que elas não sejam bem definidas.
O fechamento é bastante usado no design de logotipos, com outros exemplos, incluindo os da USA Network, NBC, Sun Microsystems e até da Adobe.

Outro exemplo muito importante de fechamento no trabalho em design de interface do usuário e interface do usuário é quando você mostra uma imagem parcial desaparecendo da tela do usuário para mostrar a eles que há mais a ser encontrado se deslizar para a esquerda ou para a direita. Sem uma imagem parcial, ou seja, se somente imagens completas são mostradas, o cérebro não interpreta imediatamente que pode haver mais para ser visto e, portanto, é menos provável que seu usuário role (já que o fechamento já é aparente).

Proximidade

Proximidade refere-se a quão perto os elementos estão uns dos outros. As relações de proximidade mais fortes são aquelas entre assuntos sobrepostos, mas apenas o agrupamento de objetos em uma única área também pode ter um forte efeito de proximidade.

O oposto também é verdade, claro. Ao colocar espaço entre elementos, você pode adicionar separação mesmo quando suas outras características forem as mesmas.

Pegue este grupo de círculos, por exemplo:


A única coisa que diferencia o grupo à esquerda daqueles à direita é a proximidade das linhas. E, no entanto, seu cérebro interpreta a imagem à direita como três grupos distintos.

Um exemplo de formulário PDF do USPS, em que o princípio de gestalt de proximidade está prejudicando a UX. Devido aos rótulos de campo estarem mais próximos dos campos abaixo deles, as pessoas acreditam erroneamente que é para onde as informações vão para "c". e "d" No entanto, as informações devem ser fornecidas nos campos acima dos rótulos de texto.
No design UX, a proximidade é usada com mais frequência para que os usuários agrupem determinadas coisas sem o uso de itens como bordas rígidas. Colocando coisas semelhantes mais próximas, com espaço entre cada grupo, o espectador vai imediatamente perceber a organização e a estrutura que você quer que elas percebam.

Figura / fundo

O princípio figura / fundo é semelhante ao princípio do fechamento, na medida em que aproveita a maneira como o cérebro processa o espaço negativo. Você provavelmente já viu exemplos desse princípio flutuando em memes nas mídias sociais, ou como parte de logotipos (como o logotipo da FedEx já mencionado).

Seu cérebro irá distinguir entre os objetos que considera estar no primeiro plano de uma imagem (a figura, ou ponto focal) e o fundo (a área na qual as figuras descansam). Onde as coisas ficam interessantes é quando o primeiro plano e o fundo realmente contêm duas imagens distintas, como esta:


Algumas pessoas verão imediatamente a árvore e os pássaros quando visualizarem o logotipo do Pittsburgh Zoo & PPG Aquarium, enquanto outros verão o gorila e o leão olhando um para o outro.

Outro grande exemplo do princípio gestalt figura / fundo.
Um exemplo mais simples pode ser visto com esta imagem, de duas faces criando um candelabro ou vaso entre elas:


Nesta famosa ilusão desenvolvida pelo psicólogo dinamarquês Edgar Rubin, o espectador é geralmente apresentado com duas interpretações de forma - duas faces ou um vaso. É outro excelente exemplo do princípio figura / fundo.
Em termos gerais, seu cérebro interpretará a área maior de uma imagem como o chão e a menor como a figura. Como mostrado na imagem acima, porém, você pode ver que cores mais claras e escuras podem influenciar o que é visto como a figura e o que é visto como o chão.

O princípio figura / fundo pode ser muito útil quando os projetistas de produtos desejam destacar um ponto focal, particularmente quando ele está ativo ou em uso - por exemplo, quando uma janela modal aparece e o restante do site desaparece em segundo plano ou quando uma barra de pesquisa é clicada e o contraste é aumentado entre ela e o restante do site.

Simetria e Ordem

A lei de simetria e ordem também é conhecida como prägnanz, a palavra alemã para "boa figura". O que esse princípio diz é que seu cérebro perceberá formas ambíguas da maneira mais simples possível. Por exemplo, uma versão monocromática do logotipo olímpico é vista como uma série de círculos sobrepostos, em vez de uma coleção de linhas curvas.



Aqui está outro bom exemplo do princípio de design gestalt “ prägnanz ”:


Seu cérebro interpretará a imagem à esquerda como um retângulo, um círculo e um triângulo, mesmo quando os contornos de cada um deles estiverem incompletos, porque são formas mais simples do que a imagem geral.

Destino comum

Embora o destino comum não tenha sido originalmente incluído na teoria da gestalt, foi adicionado desde então. No design UX, sua utilidade não pode ser negligenciada. Este princípio afirma que as pessoas agruparão as coisas que apontam ou estão se movendo na mesma direção.

Na natureza, vemos isso em coisas como bandos de pássaros ou cardumes de peixes. Eles são compostos de um monte de elementos individuais, mas porque eles se movem aparentemente como um só, nossos cérebros os agrupam e os consideram um único estímulo.


Um bando de pássaros é visto como uma única unidade ao voar na mesma direção e, assim, compartilhar um destino comum. (por Martin Adams no Unsplash)
Isso é muito útil em UX, pois os efeitos animados se tornam mais predominantes no design moderno. Note que os elementos não precisam estar se movendo para se beneficiar deste princípio, mas eles têm que dar a impressão de movimento.

Princípios Gestálticos no Design UX

Como acontece com qualquer princípio psicológico, aprender a incorporar os princípios da percepção visual da gestalt em seu trabalho de design pode melhorar muito a experiência do usuário. Compreender como o cérebro humano funciona e, em seguida, explorar as tendências naturais de uma pessoa cria uma interação mais perfeita que faz com que um usuário se sinta confortável em um site, mesmo que seja sua primeira visita.

Os princípios da Gestalt são relativamente fáceis de incorporar em praticamente qualquer design e podem elevar rapidamente um design que parece aleatório ou como se estivesse lutando pela atenção do usuário para um que ofereça uma interação perfeita e natural que direcione os usuários para a ação que você deseja.