Já parou para pensar como funciona o desenvolvimento de programas de computadores e aparelhos eletrônicos, ou até mesmo, dos serviços digitais que você utiliza, como o sinal da TV que chega na sua casa ou a legenda do filme ou novela que assiste?
Computadores e máquinas inteligentes de uso pessoal estão presentes no nosso dia-a-dia em praticamente todas as nossas atividades, seja no trabalho, para estudar ou nos momentos livres como forma de entretenimento. É difícil imaginar um dia sem nenhum contato com um aparelho eletrônico de pesquisa ou entretenimento, seja este o celular, Smart’s TV, videogames, tablets e outros, porém, eles sozinhos não atendem nossas necessidades.
Precisamos dos programas que são executados e é ai que entram os desenvolvedores de software!
Mas calma lá, o que é software? Para diferenciar hardware de forma didática, podemos dizer que este (hardware) é o “corpo” do computador – é a parte que existe no mundo físico, são os chips e outros componentes eletrônicos – e o outro (software) é a “mente” do computador – ele define quais operações o hardware deve executar para obter resultado. O software também pode ser conhecido como um programa, e é dai que vem a palavra “programadores”, que são aqueles que os programam.
Com isso chegamos na SHOWCASE, onde a nossa equipe de desenvolvimento trabalha para criar, desenvolver e melhorar nossos produtos, enquanto a equipe de operações é responsável pelos serviços de acessibilidade audiovisual (como produção de Closed Caption e Audiodescrição). Estes produtos que desenvolvemos podem ser externos, destinados à venda para nossos clientes, ou internos – que visam dar suporte à produção da área de operações. Nossos maiores clientes, tanto para produtos quanto para serviços, são emissoras de TV. Por isso os produtos externos são criados para atender as necessidades destes clientes, como codificadores de sinais digitais (família de produtos XDA e Sentinel) e multiplexação (IFN100).
Nossos produtos internos tem como objetivo auxiliar os operadores em suas tarefas, como a produção, envio e controle de atividades de Closed Caption ao vivo (XON75), legendas e roteiros de Audiodescrição (através de uma plataforma interna de produção).
Estes produtos são criados com um objetivo: suprir uma necessidade do cliente, seja ele interno ou externo, por isso, o nosso principal trabalho na área de desenvolvimento é entender estas necessidades, pensar em como melhor supri-la, priorizar as partes mais importantes de serem atendidas e então implementar esta solução, de forma que ela atenda à necessidade inicial de maneira simples, confiável e mais eficiente do que qualquer solução que tenha existido anteriormente.
É comum existir uma divisão entre programação Front-End (lida mais com a interface, apresentação e usabilidade do produto) e Back-End (lida mais com as regras e negócio e estruturação do programa). Como somos uma equipe relativamente pequena, é importante que todos tenham uma certa flexibilidade para transitar entre as duas áreas (e as tecnologias e ferramentas de cada uma), ainda assim alguns dos colaboradores tem mais conhecimento do FrontEnd e outros do BackEnd. Esta necessidade por flexibilidade aliada aos diferentes conhecimentos de cada membro da equipe intensifica a colaboração e o trabalho em equipe dentro do time de desenvolvimento de software da SHOWCASE.
Para começar um novo projeto de desenvolvimento, nós procuramos sempre partir de um problema que queremos solucionar ou um processo que desejamos otimizar. Uma vez que esta necessidade foi identificada, uma equipe é formada para começar o desenvolvimento da solução. Depois de formada a equipe, o primeiro passo para o trabalho é analisar com cuidado o problema, elaborar possíveis soluções e planejar os aspectos gerais do produto, com uma solução delineada e um plano geral formado, a equipe começa de fato a desenvolver o produto.
Manter a comunicação interna constante é essencial para avaliar o progresso do projeto e realizar alterações no planejamento quando necessário, além disso, é importante manter certa flexibilidade quanto ao planejamento, pois é comum surgirem mudanças nos requerimentos, limitações de tecnologia ou ideias melhores para solucionar o problema, pois se manter muito rígido a um plano inicial, mesmo quando surgem novas ideias e melhorias, pode resultar num produto que não atenda tão bem à necessidade para a qual ele foi criado.
Reforçando a importância de ser flexível, até mesmo a formação das equipes pode mudar ao longo do seu desenvolvimento, com colaboradores entrando, saindo ou sendo comutados de projetos conforme as necessidades surgem, pois prioridades se modificam e projetos são iniciados e finalizados dentro da jornada de um programador e/ou desenvolvedor.
Quer descobrir também como introduzir a Programação Real Time em sistema Linux?
Saiba mais sobre este tema clicando aqui!