Software Development / Desenvolvimento de Software

Software Development / Desenvolvimento de Software

Knowledge or Experience

Throughout my career, I have witnessed cases of applications which have successfully lasted for decades. On the other hand, I saw applications being replaced in less than one year life cycle.

Considering that companies became dependent on software, I studied these disparate scenarios to write this article. After all, what is the fine line - or not so fine - between the success and shipwreck of an application?

There is no shortage of methodologies, libraries and frameworks for software development. Especially in the recent years, where there has been a great popularization of Design Thinking, Agile, UI/UX, DevOps and Low Code/No-Code. They are accelerators in the search for lower risk, higher productivity and assertiveness in software development. We are also close to having a new layer of development powered by Artificial Intelligence. However, the success of an application goes beyond good functional analysis:

Human interface - if the system requires a user manual, we already have one signal that the interface is bad. Good softwares are naturally intuitive, easy to navigate and very well crafted in terms of usability. The rich interface has an exacerbated concern for details and minimizes the use of the keyboard.

Data source - the craving for information often disowns the cost of capturing the data. Fortunately, intense typing has its days numbered. The alternatives which relieve the operation of systems such as real-time integrations, content proposition, automation and connectors are getting bigger.

Error handling - software developers are optimists by nature and do not consider the insertion of control points into systems. We easily find websites and apps presenting technical error messages to users, while this could be intercepted with two aims: (i) notifying the system administrator about the error; (ii) presenting a readable message to the non-technical user.

Administration tools - the work of monitoring, diagnosing and correcting errors is essential for the creation of mature systems. Behind-the-scenes tools for administrators to monitor, debug and respond to issues are needed, but not always built.

Technical environment - a robust technical environment starts with appropriate facilities, elastic processing and storage capacity, performance and very good connectivity. Other issues such as suitable platform, versioning of programming codes and the development track need to be very well established. All this associated with code scan and tests automation (unitary, integrated and regressive) to complete the good practices.

Software development is a powerful competitive differentiator in business, and the companies have several challenges in this field. Some challenges are more visible, such as the shortage of manpower and the usage of obsolete platforms, others are more subtle and related to excellence.

To wrap up... Why the title “Knowledge or Experience”? Software development is much more like a craft than serial production. Experience counts more than knowledge. Develop software developers takes time, besides requiring fitness and dedication. Some non-technical skills are also required.


Conhecimento ou Experiência

Ao longo da minha carreira, presenciei casos de aplica??es que perduraram, com sucesso, por décadas. Na contram?o, vi outras aplica??es serem substituídas em menos de um ano de ciclo de vida.

Considerando que as empresas se tornaram dependentes de software, estudei esses cenários t?o díspares para escrever esse artigo. Afinal, qual a linha tênue - ou nem tanto - entre o sucesso e o naufrágio de uma aplica??o?

N?o faltam metodologias, bibliotecas e frameworks para o desenvolvimento de software. Em especial nos últimos anos, nos quais houve uma grande populariza??o do Design Thinking, Agile, UI/UX, DevOps e Low Code/No-Code. S?o aceleradores na busca por menor risco, maior produtividade e assertividade no desenvolvimento de software. Também estamos perto de ter uma nova camada de desenvolvimento movida pela Inteligência Artificial. Entretanto, o sucesso de uma aplica??o vai além da boa análise funcional:

Interface humana - se o sistema requer um manual para o usuário, já temos um sinal de que a interface é ruim. Os bons softwares s?o naturalmente intuitivos, fáceis de navegar e muito bem trabalhados no quesito usabilidade. A interface rica tem preocupa??o exacerbada com os detalhes e minimiza o uso do teclado.

Fonte de dados - a ansia por informa??o frequentemente renega o custo de captura do dado. Felizmente, a digita??o intensa está com os dias contados. As alternativas que desoneram a opera??o dos sistemas, tais como integra??es em tempo real, proposi??o de conteúdo, automa??o e conectores s?o cada vez maiores.

Tratamento de erro - o s desenvolvedores de software s?o otimistas por natureza e n?o consideram a inser??o de pontos de controle nos sistemas. Facilmente encontramos websites e apps apresentando mensagens de erro técnico para os usuários, enquanto esse poderia ser interceptado com dois objetivos: (i) notificar o administrador do sistema sobre o erro; (ii) apresentar uma mensagem legível para o usuário.

Ferramentas de administra??o - o trabalho de monitoramento, diagnóstico e corre??o de erros é essencial para a cria??o de sistemas maduros. As ferramentas de bastidores para os administradores monitorarem, depurarem e responderem aos problemas s?o necessárias, mas nem sempre construídas.

Ambiente técnico - um ambiente técnico robusto come?a com instala??es apropriadas, capacidade de processamento e armazenamento elástico, performance e excelente conectividade. Outras quest?es como plataforma adequada, versionamento dos códigos de programa??o e esteira de desenvolvimento precisam estar muito bem estabelecidas. Tudo isso associado à varredura de código e automa??o de testes (unitário, integrado e regressivo) para completar as boas práticas.

Desenvolvimento de software é um diferencial competitivo poderoso nos negócios, e as empresas possuem vários desafios nesse campo. Alguns desafios s?o mais visíveis, tais como a escassez de m?o de obra e a utiliza??o de plataformas obsoletas, outros s?o mais sutis e relacionados à excelência.

Para terminar... Por que o título “Conhecimento ou Experiência”? O desenvolvimento de software se assemelha muito mais a um artesanato do que a uma produ??o em série. A experiência conta mais que o conhecimento. Desenvolver desenvolvedores de software toma tempo, além de requerer aptid?o e dedica??o. é também necessário ter algumas habilidades n?o técnicas.

Monikaben Lala

Chief Marketing Officer | Product MVP Expert | Cyber Security Enthusiast | @ GITEX DUBAI in October

1 年

Ricardo, thanks for sharing!

Alexandre Bertolami

Sócio em SBC Law Advogados

1 年

??????

Olavo Cezar

Associate Manager

1 年

Excelente artigo Ricardo Miranda

要查看或添加评论,请登录

Ricardo Miranda的更多文章

  • Artificial intelligence / Inteligência Artificial

    Artificial intelligence / Inteligência Artificial

    Trained or Abandoned Decision logic has been present in corporate systems since the beginning of computing – the…

    1 条评论
  • Globalization / Globaliza??o

    Globalization / Globaliza??o

    Local or Global The 2000s were a fruitful decade for the globalization of companies with presence in several countries…

    2 条评论
  • Human Behavior / Comportamento Humano

    Human Behavior / Comportamento Humano

    Thinking, Speaking and Doing The jargon that digital transformation is more related to people than technology is not…

    5 条评论
  • Return on Investment / Retorno do Investimento

    Return on Investment / Retorno do Investimento

    Requirement or Opportunity A recurrently discussed subject is the calculation of return on investment in projects…

  • Go-Live Date / Data de Lan?amento

    Go-Live Date / Data de Lan?amento

    Go or No-Go If there is an event which I think tense, it is the start-up of a new system, especially in large projects…

    1 条评论
  • Solving Problems / Resolvendo problemas

    Solving Problems / Resolvendo problemas

    Workaround or Definitive One of the most used jargons in the corporate world is “we are here to solve problems”. I have…

    4 条评论
  • Periodization of History / Periodiza??o da História

    Periodization of History / Periodiza??o da História

    Good and Bad I wonder if the pandemic of covid-19 will be remembered as the end of Contemporary Age and the beginning…

    7 条评论
  • Buying Technology / Comprando Tecnologia

    Buying Technology / Comprando Tecnologia

    Photo and Movie As vertical as companies are, they all go shopping when it comes to technology. These purchases are…

    1 条评论
  • Backstage of Technology / Bastidores da Tecnologia

    Backstage of Technology / Bastidores da Tecnologia

    Risk or Suicide Digital solutions increasingly participate in our lives, with surprising technologies which transform…

    2 条评论
  • Change / Mudan?a

    Change / Mudan?a

    Love or Pain We often hear that people do not like to change. It always made me thoughtful until I heard another…

    7 条评论

社区洞察

其他会员也浏览了