10
19/02/2015 10 principais dicas para criar Software como Serviço de sucesso http://www.ibm.com/developerworks/br/opensource/library/oscloudsaas/ 1/10 Desenvolva e implemente seu próximo aplicativo na plataforma de cloud do IBM Bluemix. Comece a construir grátis Acrônimos frequentemente usados API: Interface de programação de aplicativo DTD: Definição de tipo de documento UI: Interface de usuário XML: Linguagem de Marcação Extensível Conheça 10 dicas essenciais para criar aplicativos de Software como Serviço (SaaS) no prazo e dentro do orçamento, resultando em um positivo e preferível retorno sobre investimento. Dan Orlando is a recognized Flash Platform architect and consultant for Universal Mind. As an advocate for RIA, he has been published in magazines and Web sites such as PHP Architect, Flash and Flex Developer Magazine, IBM developerWorks, Amazon Web Services, and the Adobe Developer Connection. He is also coauthor of Flex 4 in Action (Manning Press). 01/Set/2009 O software fornecido como serviço online, em vez de um aplicativo baseado em desktop, continua a ganhar popularidade a uma taxa exponencial. Eu me envolvi com uma série de negócios centrados no SaaS. E durante aquele tempo, eu montei 10 elementoschave específicos para o desenvolvimento de software que podem determinar se um aplicativo SaaS tornase bemsucedido e — em muitos casos, —se vale a pena lançálo. Essas são dicas são destinadas a fornecerem uma perspectiva esclarecedora sobre o desenvolvimento baseado em SaaS. 1. Faça do UXD seu bem mais valioso Com o surgimento da Internet, a atenção à experiência do usuário se expandiu. Entretanto, houve um recuo claro e evidente quanto a essa importante característica de software bem sucedido nos últimos anos. Esse retorno foi acentuado quando o termo Web 2.0 tornouse um jargão, eventualmente evoluindo para algo mais significativo: aplicativos ricos para Internet (RIAs). Eu coloquei propositalmente o design de experiência do usuário (UXD) na primeira posição neste artigo porque a experiência do usuário é uma característica identificável que faz com que um usuário de computador imediatamente escolha um aplicativo em detrimento de outro. A Figura 1 ea Figura 2 demonstram duas técnicas interessantes de UXD. A Figura 1 ilustra um conceito conhecido como permanecer na página. Como este é um aplicativo cliente RIA fino construído utilizando o Adobe® Flex, obviamente não há páginas. Entretanto, a técnica ainda é válida. O cenário de caso de uso é um usuário que quer alterar as configurações de sua conta pessoal. Ao invés de sair do estado atual (ou página) do aplicativo, uma janela sobreposta é exibida permitindo ao usuário realizar as alterações necessárias, depois fechar a janela e retornar à tarefa que estava realizando. Figura 1. Exemplo de técnica UXD conhecida como permanecer na página. developerWorks Brasil Itens Técnicos Software livre Biblioteca técnica 10 principais dicas para criar Software como Serviço de sucesso Habilidades essenciais para assegurar que seu projeto SaaS seja concluído no prazo e dentro do orçamento

10 Principais Dicas Para Criar Software Como Serviço de Sucesso

Embed Size (px)

DESCRIPTION

São 10 dicas muito valiosas para quem pretende trabalhar com software. Méritos IBM .

Citation preview

Page 1: 10 Principais Dicas Para Criar Software Como Serviço de Sucesso

19/02/2015 10 principais dicas para criar Software como Serviço de sucesso

http://www.ibm.com/developerworks/br/opensource/library/os­cloud­saas/ 1/10

Desenvolva e implementeseu próximo aplicativo naplataforma de cloud do

IBM Bluemix.

Comece aconstruir grátis

Acrônimos frequentementeusadosAPI: Interface de programação deaplicativoDTD: Definição de tipo de documentoUI: Interface de usuárioXML: Linguagem de MarcaçãoExtensível

Conheça 10 dicas essenciais para criar aplicativos de Software como Serviço (SaaS) no prazo e dentro do orçamento,resultando em um positivo e preferível retorno sobre investimento.

Dan Orlando is a recognized Flash Platform architect and consultant for Universal Mind. As an advocate for RIA, he has been published inmagazines and Web sites such as PHP Architect, Flash and Flex Developer Magazine, IBM developerWorks, Amazon Web Services, and theAdobe Developer Connection. He is also co­author of Flex 4 in Action (Manning Press).

01/Set/2009

O software fornecido como serviço on­line, em vez de um aplicativobaseado em desktop, continua a ganhar popularidade a uma taxaexponencial. Eu me envolvi com uma série de negócios centrados no SaaS.E durante aquele tempo, eu montei 10 elementos­chave específicos para odesenvolvimento de software que podem determinar se um aplicativo SaaStorna­se bem­sucedido e — em muitos casos, —se vale a pena lançá­lo.Essas são dicas são destinadas a fornecerem uma perspectivaesclarecedora sobre o desenvolvimento baseado em SaaS.

1. Faça do UXD seu bem mais valiosoCom o surgimento da Internet, a atenção à experiência do usuáriose expandiu. Entretanto, houve um recuo claro e evidente quanto aessa importante característica de software bem sucedido nosúltimos anos. Esse retorno foi acentuado quando o termo Web 2.0tornou­se um jargão, eventualmente evoluindo para algo maissignificativo: aplicativos ricos para Internet (RIAs). Eu coloqueipropositalmente o design de experiência do usuário (UXD) na primeira posição neste artigo porque aexperiência do usuário é uma característica identificável que faz com que um usuário de computadorimediatamente escolha um aplicativo em detrimento de outro.

A Figura 1 e a Figura 2 demonstram duas técnicas interessantes de UXD. A Figura 1 ilustra um conceitoconhecido como permanecer na página. Como este é um aplicativo cliente RIA fino construído utilizandoo Adobe® Flex, obviamente não há páginas. Entretanto, a técnica ainda é válida. O cenário de caso deuso é um usuário que quer alterar as configurações de sua conta pessoal. Ao invés de sair do estadoatual (ou página) do aplicativo, uma janela sobreposta é exibida permitindo ao usuário realizar asalterações necessárias, depois fechar a janela e retornar à tarefa que estava realizando.

Figura 1. Exemplo de técnica UXD conhecida como permanecer na página.

developerWorks Brasil Itens Técnicos Software livre Biblioteca técnica

10 principais dicas para criar Software como Serviçode sucessoHabilidades essenciais para assegurar que seu projeto SaaS seja concluído no prazo e dentro do orçamento

Page 2: 10 Principais Dicas Para Criar Software Como Serviço de Sucesso

19/02/2015 10 principais dicas para criar Software como Serviço de sucesso

http://www.ibm.com/developerworks/br/opensource/library/os­cloud­saas/ 2/10

Interação homem­computadorEm estudos realizados pela ForresterResearch sobre a interação homem­computador, os sujeitos forneciamrespostas invariavelmente centradas nausabilidade como sua razão fundamentalpara escolher um aplicativo emdetrimento de outro. Em cada projetobem sucedido de SaaS que eu vivenciei,o teste de usabilidade era o primeiroplano do processo inicial de design doprograma. Eu vi empresas chegarem aoextremo de ter uma população deamostra respondendo questionários apartir de arquivos de imagens estáticas. Épor isso que as grandes revisões desoftware são extremamentedispendiosas. Tomar medidas extrasdurante a fase de projeto e de criação deprotótipo pode fazer uma empresaeconomizar milhões de dólares. Asequipes de desenvolvimento tambémpodem identificar tendências, traços,características, amores e desafetosquanto à interação homem­computadordo segmento para o qual estãodesenvolvendo no momento.

AFigura 2 exibe uma visão mais próxima da janela apresentada na Figura 1, mas em dois modos. Estecaso de uso é mais específico, e supõe­se que o usuário quis alterar especificamente os valores dasInformações da Empresa e, portanto, seleciona a respectiva barra de título. A janela 1 mostra o estadoda janela quando é exibida pela primeira vez. A janela 2 mostra o estado da janela depois de o usuárioclicar na barra Informações da Empresa. Esta técnica é conhecida como menu sanfona devido à formacomo os painéis deslizam para cima e para baixo como uma sanfona quando suas respectivas barras detítulo são selecionadas. Esse comportamento melhora a experiência do usuário, pois facilita para ousuário localizar e atualizar rápida e facilmente um ou mais valores quando muitas configuraçõesprecisam ser categorizadas.

Figura 2. Painéis sanfona

Page 3: 10 Principais Dicas Para Criar Software Como Serviço de Sucesso

19/02/2015 10 principais dicas para criar Software como Serviço de sucesso

http://www.ibm.com/developerworks/br/opensource/library/os­cloud­saas/ 3/10

O poder da comunidadeQuando um projeto de software éconcluído, a empresa ou os indivíduosque desenvolveram o softwarenormalmente fazem uma contribuiçãocom a comunidade de software livre. Talcontribuição pode consistir em umabiblioteca de código customizadonecessária para realizar algo ou umconjunto de componentes de softwarereutilizáveis que possam ser modificadose utilizados em outro lugar. Essascontribuições constantes com asferramentas de software livre cultivam umambiente no qual a tecnologia podeevoluir livremente em uma proporçãorápida e contínua.

2. Adapte­se aos requisitos em constante mudançaSe há algo inevitável no desenvolvimento de software é que o cliente, consumidor ou proprietário doproduto mudará os requisitos do projeto depois que todo o projeto, planejamento, diagramação e criaçãode protótipo tiver sido concluída. A maioria dos gerentes de projeto é treinada em metodologiastradicionais e parte desse treinamento inclui resistência à mudança; o resultado é um nívelperigosamente crescente de "descarte" conforme o produto fica mais próximo de sua release oficial.

O desenvolvimento de software evolui tão rapidamente que não é incomum deparar com váriasmudanças na metodologia de gerenciamento do projeto principal durante o ciclo de vida do processo dedesenvolvimento inicial. Como resultado, esteja preparado para implementar novas metodologias dedesenvolvimento ou variantes das metodologias existentes a cada projeto.

3. Adote padrões abertosAs empresas baseadas em SaaS devem considerar a adoção de padrões abertos, pois acompatibilidade com outros dispositivos, plataformas, serviços e aplicativos da Web significa menoscodificação em futuras iterações e maior adoção do produto pelo consumidor. Os consumidoresapreciam e são atraídos pelos aplicativos SaaS que lhes permitam realizar várias tarefas. Por exemplo,a Figura 3 mostra o TweetDeck, um aplicativo de plataforma cruzada que utiliza as APIs abertas Twittere Facebook em uma interface. O TweetDeck está rapidamente tornando­se um dos clientes maispopulares do Twitter, principalmente porque os usuários do Twitter podem também visualizar asatualizações de status de seus amigos no Facebook sem terem que alternar entre aplicativos.

Figura 3. Popular aplicativo TweetDeck utiliza APIs abertas do Twitter e Facebook

Os custos financeiros para uma empresa podem ser significativamente reduzidos utilizando ferramentasbaseadas em padrões abertos, pois as taxas de licenciamento são eliminadas e o custo dos recursosdiminui porque você tem um ponto de partida que está além de onde estaria se você estivessecomeçando a construir do zero. Assim, é possível alocar recursos para modificar o código de origempara corresponder aos desafios e necessidades comerciais. Por exemplo, os criadores do TweetDeckpodem focar­se em construir recursos voltados à experiência do usuário no aplicativo, ao invés de teremque trabalhar nas APIs do Twitter e Facebook, o que seria embaraçoso.

Considere o seguinte: O que aconteceria se o Twitter e o Facebook cobrassem pela utilização de suas

Page 4: 10 Principais Dicas Para Criar Software Como Serviço de Sucesso

19/02/2015 10 principais dicas para criar Software como Serviço de sucesso

http://www.ibm.com/developerworks/br/opensource/library/os­cloud­saas/ 4/10

APIs? O TweetDeck provavelmente teria que cobrar taxas mensais de utilização dos consumidores paraque a empresa pudesse pagar o Twitter e o Facebook pela utilização de suas APIs. Ou os usuáriosteriam que pagar ao Twitter e ao Facebook uma taxa mensal somente para utilizarem o aplicativoTweetDeck. O efeito para o TweetDeck, Twitter e Facebook seria prejudicial e o TweetDeck não poderiamais ser considerado como um aplicativo SaaS bem sucedido.

4. Esquematize antes de projetarUm esquema é simplesmente uma visualização conceitual de um estado específico de uma interface deusuário (UI) de um programa de software a partir de um ponto de vista funcional, como demonstrado naFigura 4. Note que não há design especial envolvido. A proposta é evitar ser distraído pelos elementosdo projeto para que o foco possa permanecer na função comercial. Quando as funções comerciais doaplicativo tiverem sido estabelecidas, a equipe de design pode trabalhar nele; mas o software tem queser funcional antes de ser bonito.

Figura 4. A esquematização oferece visualização conceitual de uma UI

Esse aspecto está fortemente relacionado com o UXD, o primeiro elemento de um SaaS bem sucedido.A diferença é que para que o SaaS seja bem sucedido, o UXD deve ser parte de todo o ciclo de vida dedesenvolvimento do software, do conceito à produção. Em se tratando de esquematização, eu sempreencontro dois erros que fazem com que o SaaS apresente deficiências:

A equipe vai muito rápido para o projeto e a criação do tema do projeto do aplicativo de repente setorna parte do processo de esquematização, pois as partes interessadas querem ver algo bonito aoinvés de funcional.

Os principais estados do aplicativo ficam de fora da esquematização (isto é, apenas partes doaplicativo compõem o esquema).

Curiosamente, a segunda das duas razões é a mais prejudicial para um projeto de SaaS. A coisa maisfascinante quanto aos esquemas é que você pode confiar neles para expor diferenças na abrangênciados requisitos do produto. Eles são conhecidos por exporem deficiências fundamentais do projeto daarquitetura bem antes do início do desenvolvimento. Com isso em mente, não é difícil imaginar o quantoa certeza de que o processo de esquematização está completo pode de tempo e recursos para umaempresa.

Um conjunto completo de esquemas pode incluir 100 documentos ou mais. Cada esquema deve estarassociado a uma descrição de uma ou duas páginas no mínimo para ajudar as partes interessadas aentenderem o que elas estão procurando ao analisar os esquemas. Lembre­se de que esses esquemasprecisarão ser revisados antes de as partes interessadas se desconectarem deles. É melhor identificaras diferenças durante a esquematização do que depois de a funcionalidade ter sido codificada.

Observação: Depois do início do processo de design, o conjunto completo de documentos que agoradefinem a UI é normalmente chamado de livro de figuras.

5. Forneça uma infraestrutura de nuvem para o SaaS

Page 5: 10 Principais Dicas Para Criar Software Como Serviço de Sucesso

19/02/2015 10 principais dicas para criar Software como Serviço de sucesso

http://www.ibm.com/developerworks/br/opensource/library/os­cloud­saas/ 5/10

Inicialmente, sugerir que a infraestrutura pode construir ou destruir o SaaS pode parecer óbvio.Entretanto, a maioria dos aplicativos SaaS na Web está sendo executada em hardware insuficiente,ligado a uma infraestrutura que não pode ser escalada on demand. Como desenvolvedores, precisamosacessar sistemas de nuvem autoescalável, normalmente chamados de Infraestrutura como Serviço(IaaS), já que a adoção de tal tecnologia superior é surpreendentemente lenta.

Essa lentidão pode ser atribuída principalmente a uma falta de conhecimento sobre o assunto. Porexemplo, o Amazon Elastic Compute Cloud (Amazon EC2) tem o potencial de oferecer economiasconsideráveis às empresas que executam aplicativos SaaS, mas a falta de conhecimento geral sobre ainfraestrutura Amazon Web Services (AWS) faz muitos recuarem para sistemas de legado por serem oque conhecem. Entretanto, o constante aumento na largura da banda disponível de ISPs é uma garantiade que qualquer aplicativo SaaS bem sucedido demandará desempenho mais avançado de rede emtermos de escalonamento automático de recursos on demand.

6. Produza documentação completa de projeto antes de iniciar acodificaçãoO software funciona da mesma forma que os negócios, e uma das principais características deempresas de SaaS bem sucedidas é um hábito saudável de respeito à etapa de planejamento doprocesso de desenvolvimento. Documentação de projeto de alta qualidade serve como um roteiro paraos responsáveis pela execução do projeto e tem o potencial de acelerar consideravelmente a codificaçãodo software. É por isso que aplicativos SaaS bem sucedidos normalmente são projetos concluídos noprazo e dentro do orçamento.

Quando aplicativos SaaS estouram o prazo e o orçamento, é devido à comunicação problemática dosprincípios de projeto da arquitetura para o projeto. Para manter a consistência de código através de umgrande aplicativo SaaS, é essencial que um conjunto completo de padrões e convenções de projeto sejaestabelecido e efetivamente comunicado a toda a equipe de desenvolvimento. Uma excelente maneirade comunicar tais princípios é utilizando o córtex visual.

Utilizando o córtex visualUm número surpreendente de estudos clínicos sobre o pensamento e aprendizagem humana nosúltimos 100 anos sugeriu que os humanos aprendem mais rápido quando mais de um dos cinco sentidosestá envolvido no processo de aprendizagem. Envolver o sentido da visão além da audição torna osaprendizes aproximadamente sete vezes mais propensos a lembrarem do assunto. Não é de seestranhar, portanto, que as indicações visuais, como diagramas, fluxogramas são tão eficazes em setratando de documentação técnica de software.

Como mostrado na Figura 5, os diagramas de arquitetura e microarquitetura de software são úteis paraestabelecer e comunicar uma base para um cliente RIA e para oferecer às equipes de desenvolvimentouma estrutura de tópicos para seguirem ao organizar o código. Esses diagramas também estabelecemum conjunto de diretrizes e expectativas a partir de um ponto de vista estrutural.

Figura 5. Visualização solta, de alto nível dos padrões de design estrutural de um programa

Page 6: 10 Principais Dicas Para Criar Software Como Serviço de Sucesso

19/02/2015 10 principais dicas para criar Software como Serviço de sucesso

http://www.ibm.com/developerworks/br/opensource/library/os­cloud­saas/ 6/10

Fluxogramas também são particularmente úteis para transmitir um processo ou série de eventos. Emmuitos casos, quanto mais criativo você puder ser, mais efetivos serão os fluxogramas. A Figura 6demonstra como a criatividade foi implementada em um fluxograma utilizado para fornecer umarepresentação visual de como o software livre Swiz Framework para Flex implementa a Inversão deControle (IoC), introspecção de objeto e injeção de dependência.

Figura 6. Fluxograma do software livre Swiz Framework para Flex

Se você já foi auxiliado por, solicitou ou de outra forma se envolveu com a criação de uma patente demétodo, o diagrama da Figura 7 pode lhe parecer familiar. Ele é especialmente útil para apresentar umprocesso ou método onde há mais de uma possibilidade. Um bom exemplo disso é um processo que

Page 7: 10 Principais Dicas Para Criar Software Como Serviço de Sucesso

19/02/2015 10 principais dicas para criar Software como Serviço de sucesso

http://www.ibm.com/developerworks/br/opensource/library/os­cloud­saas/ 7/10

O caso do misterioso conversorde dataMeu colega escreveu uma etapa de testeantes de codificar uma função querealizava alguns cálculos e conversõesde data para exibir frases como "Semana

envolve uma série de funções, algumas das quais incluem uma ou mais condicionais, tais comoinstruções if - else e switch. Os diagramas de descrição funcional são extremamente úteis paraestruturar processos comerciais técnicos, bem como software em tópicos. Por exemplo, esse tipo dediagrama deve ser ótimo para estruturar em tópicos o processo de cometimento de código para orepositório central de controle de código de origem.

Figura 7. Diagrama de descrição funcional, utilizado para caminhar através de um processo oumétodo condicional

7. Seja obcecado por testes de unidadeEm geral, os SaaS com melhores chances são normalmente aplicativos razoavelmente grandes,construídos por muitos. Em se tratando de grandes aplicativos e teste de unidade, os dados sãoconsistentes: Os projetos que implementam testes de unidade tardiamente fracassam. No extremooposto, os desenvolvedores de SaaS bem sucedidos escrevem testes de unidade e até mesmo osexecuta antes de escreverem o código. Por exemplo, se eu recebesse a tarefa de escrever uma classechamada ServiceController, eu não começaria codificando a classe. Pelo contrário, eu escreveria aclasse que executa todas as etapas de teste de unidade contra os métodos na classe. Então eu a levariaum passo além e executaria as etapas de teste, mesmo se eu soubesse que iria falhar porque eu nãoteria escrito nenhum código para ela.

A proposta desse exercício é excluir a possibilidade de ter erros reais em seus testes de unidade quepoderiam sempre fazê­las passar. Por mais incomum que possa parecer, é fácil cometer esse erroinadvertidamente. Se todos os testes de unidade falharem, eu sei que estou pronto para escrever ocódigo real. Quando eu tiver escrito a nova classe, então eu executo os testes de unidade novamente.Se todas as etapas de teste passarem, eu adiciono a nova classe de teste de unidade à minha bibliotecade automação de teste de unidade, que é executada a cada construção. Em outras palavras, toda abiblioteca de teste de unidade que eu criei para um aplicativo torna­se parte de meu processo deconstrução. Na verdade, antes mesmo de eu começar a construir o projeto, todos os testes de unidadesão executados para assegurar que a integridade do código do aplicativo não tenha sidoinadvertidamente comprometido.

No mundo da programação, eu tenho visto apenas alguns desenvolvedores seguirem religiosamenteesse processo. Entretanto, eles estão entre os indivíduos mais respeitados, prestigiados e bem pagos dosegmento de mercado. Se você procura um caminho rápido para um aumento de salário ou umapromoção, seja obcecado pelos testes de unidade.

Page 8: 10 Principais Dicas Para Criar Software Como Serviço de Sucesso

19/02/2015 10 principais dicas para criar Software como Serviço de sucesso

http://www.ibm.com/developerworks/br/opensource/library/os­cloud­saas/ 8/10

passada" e "ontem". Após concluir aetapa de teste, ele codificou a função eexecutou o teste de unidade contra ela.Estranhamente, o método passavaquando era executado entre 00:01 e23:59, mas misteriosamente falhava demeio­dia às 11:59.

A grande questão aqui é, esse erro teriasido encontrado se não fosse em umteste consistente, repetido a cada hora?O teste periódico manual teria sido capazde detectá­lo? A equipe de QA teriapego? A verdade da questão é que esseaplicativo poderia muito bem ter chegadoao consumidor com esse erro aindapresente, provavelmente acabando comum relacionamento de uns 15 anos se oaplicativo fosse diretamente para aprodução.

8. Vença montanhas, não pequenos montesO potencial para gargalos de desempenho é muito maior com aplicativos SaaS do que com aplicativoscliente "grossos" executados a partir do desktop. Até os programadores experientes admitirão que emmatéria de aplicativos SaaS, às vezes os gargalos de desempenho são difíceis de prever devido aonúmero de variáveis envolvidas. A diferença entre aplicativos SaaS bem sucedidos e aqueles quefalham é a forma como a equipe de desenvolvimento responde às ocorrências prejudiciais aodesempenho durante o teste de carregamento e elaboração de perfil.

Em geral, há apenas dois tipos de otimização de desempenho: as que causam um impacto notável nodesempenho e as que não parecem ter quaisquer resultados perceptíveis. Raramente há algo entreesses dois tipos. Uma metáfora comum utilizada para esse assunto é a das montanhas e os pequenosmontes. Nove entre 10 desenvolvedores passam a maior parte do tempo alocados para impulsionar odesempenho, caminhando sobre pequenos montes em vez de vencer grandes problemas que acabamcom a vida do processador ou memória do computador quando o aplicativo é executado. É importanteconsiderar aqui que como programador, você não consegue ver a montanha quando está muito ocupadoolhando para os pequenos montes.

A forma mais fácil de não ser distraído pelos pequenos montes é criar o perfil de seus aplicativos. Aelaboração de perfil é uma parte importante de projetos de SaaS bem sucedidos porque oferece aoportunidade de otimizar a forma como seu aplicativo utiliza os recursos do sistema, como demonstradona Figura 8. Ao elaborar o perfil de um aplicativo, é possível ver exatamente quais peças do aplicativoestão consumindo mais recursos e implementar padrões de design para um desempenho aperfeiçoado.Por exemplo, você pode achar necessário implementar agrupamento de objetos com proxies seencontrar muita reinstalação de objeto sem a coleta de lixo necessária, que frequentemente consomemais memória conforme você deixa o aplicativo em execução.

Figura 8. Criação de perfil do aplicativo em Eclipse

Page 9: 10 Principais Dicas Para Criar Software Como Serviço de Sucesso

19/02/2015 10 principais dicas para criar Software como Serviço de sucesso

http://www.ibm.com/developerworks/br/opensource/library/os­cloud­saas/ 9/10

9. Procure saber de outros projetos de SaaS de sucessoA maneira mais simples de saber sobre outros projetos de SaaS de sucesso é começar escolhendo umprograma de SaaS que você já gosta de usar. Portanto, encontre dois ou três concorrentes para osoftware que você escolher e revise­os, anotando aspectos específicos que chamam sua atenção e queestejam relacionados à razão para você gostar ou não do respectivo aplicativo.

É raro um aplicativo chamar minha atenção com relação à usabilidade e desempenho, portanto, quandoisso ocorre, eu me certifico de ter tempo suficiente de descobrir por que, pois normalmente eu aprendoalgo com ele. Um aplicativo de gerenciamento de tarefa chamou minha atenção recentemente,principalmente porque eu acho esse gênero de aplicativos particularmente fraco. Entretanto, o nível deusabilidade envolvido neste aplicativo SaaS em especial foi espantoso.

Eu passei cerca de duas horas navegando no aplicativo, testando seus limites e avaliando aacessibilidade de seus inúmeros recursos. Eu gosto de aplicativos que tenham uma extraordináriaquantidade de recursos embutidas, embora eu também espere que eles sejam leves. Por essa razão, eusou crítico de design de UI. Se a interface não for bem organizada, um aplicativo com vários recursostorna­se um pesadelo para se utilizar, pois é impossível descobrir o que você procura durante metade dotempo de utilização. Minha avaliação desse aplicativo SaaS em particular me levou à conclusão de quefoi a exclusiva e incomum organização da UI comparada com outros aplicativos de gerenciamento detarefas que eu tenho instalado que fez com que eu gostasse de trabalhar com ele.

10. Construa protótipos utilizáveisUm protótipo ainda é um protótipo se o mesmo código utilizado para construí­lo também for utilizadopara criar o produto final?

A resposta para essa pergunta é absolutamente. Em desenvolvimento de software, o clientenormalmente quer ver uma prova de conceito antes de investir no desenvolvimento da coisa real. Umprotótipo nada mais é que uma prova de conceito. Desenvolvedores inteligentes de SaaS tiram proveitodo tempo que têm para criar o protótipo. Considere quanto pode se conseguir durante esse tempo:

Projete e construa a base da arquitetura.

Crie o esquema do banco de dados SaaS construindo um XML DTD personalizado, e use o XML comoorigem de dados do protótipo. (O esquema pode ser importado posteriormente no mecanismo do bancode dados e convertido na coisa real em questão de minutos).

Page 10: 10 Principais Dicas Para Criar Software Como Serviço de Sucesso

19/02/2015 10 principais dicas para criar Software como Serviço de sucesso

http://www.ibm.com/developerworks/br/opensource/library/os­cloud­saas/ 10/10

RecursosAprender

Para ouvir entrevistas e discussões interessantes para desenvolvedores desoftware, consulte os podcasts do developerWorks.

Mantenha­se atualizado com os eventos e webcasts técnicos dodeveloperWorks.

Siga o developerWorks no Twitter (a página reside fora da ibm.com).

Verifique as próximas conferências, feiras, webcasts e outros Eventos emtodo o mundo que sejam de interesse dos desenvolvedores IBM de códigoaberto.

Visite a Zona de código aberto do developerWorks para informaçõesextensivas sobre como fazer, ferramentas e atualizações de projetos que oajudarão a desenvolver com as tecnologias de código aberto e usá­las comos produtos IBM.

Assista e aprenda sobre a IBM e as tecnologias e funções de produtos decódigo aberto com as demos on demand do developerWorks grátis.

Obter produtos e tecnologias

iPlotz (a página reside fora da ibm.com): Descubra uma ótima forma de criarseus modelos e esquemas.

Inove em seu próximo projeto de desenvolvimento em código aberto com osoftware de avaliação IBM, disponível para download ou em DVD.

Faça download das versões de avaliação de produtos IBM ou explore asavaliações on­line no IBM SOA Sandbox e utilize as ferramentas dedesenvolvimento de aplicativos e produtos de middleware do DB2®, Lotus®,Rational®, Tivoli® e WebSphere®.

Discutir

Participe dos blogs developerWorks e envolva­se na comunidade dodeveloperWorks.

Guias de capacitaçãoSe capacite através de diversosrecursos de treinamento.

Programa IBM ChampionO programa reconhececontribuidores que estão ajudandoa construir um Planeta MaisInteligente.

Programa Global deEmpreendedorismo da IBMFaça parte do programa que buscapor empreendedores que ajudam amodificar a maneira como omundo funciona.

Crie o pacote, interface e estrutura de classe organizacionais do aplicativo em tamanho total, mesmose os arquivos não fizerem nada além de declarar o nome da classe e a interface que implementainicialmente.

Há uma série de vantagens para essa abordagem, mas duas são essenciais para SaaS de sucesso:Você tem uma grande vantagem inicial quando chega o momento de construir o produto real e padrõesconflitantes de design e arquiteturas mal projetadas normalmente mostrarão suas faces nada agradáveisquando o protótipo for construído sobre eles. As modificações necessárias podem ser feitas antes doinício do desenvolvimento do produto real.

ConclusãoÉ importante reconhecer que o mundo do desenvolvimento de software evolui tão rapidamente que osprincipais elementos para o desenvolvimento bem sucedido de SaaS eventualmente mudarão —provavelmente antes do esperado. O segredo é acompanhar o processo evolutivo e posicionar­se parase adiantar aos acontecimentos.