O que significa "empresa" em relação à arquitetura de software?

11

Vejo muito o termo "empresa" em torno de desenvolvedores e programadores de software e usado livremente.

en · ter · prêmio / ˈentərˌprīz /

Substantivo: Um projeto ou empreendimento, normalmente um que é difícil ou requer esforço. Iniciativa e desenvoltura.

Alguém pode esclarecer o que esse termo realmente abrange? "No nível da empresa", "escala da empresa"? Existem até "edições empresariais" das coisas. O que exatamente isso significa? Obviamente, não faz sentido julgar pela definição acima, mais especificamente para software, o que se quer dizer com o uso da palavra empresa?

EDITAR:

Para adicionar um pouco disso - como esse termo se encaixa em frases como o Enterprise Framework Model? O que o acesso e o contexto dos dados têm a ver com as descrições de toda a empresa?

SkonJeet
fonte
6
Pergunta muito semelhante: O que é exatamente software empresarial?
Roc Martí
10
Basicamente significa que é complicado o suficiente, que você pode construir consultoria empresarial em torno dela ;-)
vartec
3
@SkonJeet: Empresas como IBM e HP tendem a abusar do termo "empresa", e seu modelo de negócios é basicamente fornecer serviços de consultoria para implantar e manter suas soluções.
vartec
10
@vartec Eu pensei que isso significava software desnecessariamente complicado e caro que as empresas extremamente grandes, com orçamentos de TI inchados, compram por causa de todo o dinheiro que economizaram ao reduzir o tamanho de sua equipe de TI e escravizar os que permanecem?
Maple_shaft
1
@maple_shaft: sim, é descrição bastante precisa ;-)
vartec

Respostas:

11

Você precisa ampliar sua definição.

Em http://dictionary.reference.com :

en · ter · prêmio  [en-ter-prahyz] substantivo

  1. um projeto realizado ou a ser realizado, especialmente importante ou difícil ou que exige ousadia ou energia: Manter a paz é um empreendimento difícil.
  2. um plano para esse projeto.
  3. participação ou engajamento em tais projetos: Nosso país foi formado pela empresa de homens e mulheres resolutos.
  4. ousadia ou prontidão na realização; espírito aventureiro; ingenuidade.
  5. uma empresa organizada para fins comerciais; empresa de negócios.

De acordo com a 5ª definição que citei acima, o software Enterprise ou uma Licença Enterprise visa fornecer uma solução para toda a empresa. De acordo com a definição de dicionário do OP, o "Projeto ou Empresa" nos casos citados pelo OP é uma empresa.

Uma solução para toda a empresa significa que será usada onde quer que uma empresa tenha um escritório ou site. Portanto, uma licença Enterprise fornecerá uma solução para todos os sites de uma empresa. Isso difere de uma licença do site, que abrangeria apenas um local pertencente a uma empresa, em vez de todos eles. Outro uso do termo Empresa é simplesmente indicar uma empresa inteira e não é necessariamente limitado em definição a algo relacionado a software. Assim, você pode ter software, RH ou contabilidade, ou mesmo um suprimento de Jelly Beans para "The Enterprise". Quando usada nos dois casos, a palavra Empresa em relação ao tamanho de uma empresa não é relevante, pois se aplica igualmente a uma pequena empresa, assim como a uma megacorp.

As edições corporativas do software destinam-se a receber os tipos de recursos que você normalmente precisa para acomodar algum tipo de solução de vários servidores em vários sites. Nesse caso, no entanto, você descobrirá que é provável que você pague mais para obter mais recursos que provavelmente não precisaria em uma "empresa" menor e, portanto, a palavra se tornará a mais muita hipérbole de marketing como qualquer outra coisa.

Para responder à parte editada da resposta do OP, um Enterprise Framework é um nome sofisticado para uma API que suporta a implementação de produtos projetados para armazenamento e comunicação de dados distribuídos, normalmente necessários para produtos projetados com um produto de vários sites em mente. Isso normalmente não se destina a pequenas empresas e ainda pode ser usado para criar produtos que podem ser escalados de um único servidor / site para vários servidores / sites. A idéia é permitir que um produto cresça para atender às necessidades de mudança de uma empresa (a Empresa) à medida que cresce, como abrir escritórios em todo o mundo, mas compartilhar um sistema de correio comum, por exemplo.

Portanto, o problema da palavra usada "vagamente" ou "vagamente" não é realmente um problema, pois o termo Enterprise sempre se destina a significar "em toda a empresa, independentemente do número de sites que você precisa atender" ... apenas Enterprise é claramente muito pouco a dizer e, de acordo com os exemplos listados pelo OP, o significado da palavra Enterprise permanece claro.

S.Robins
fonte
Obrigado pela sua resposta, está muito esclarecido - e, para ser sincero, sinto que tenho uma melhor compreensão da palavra empresa em um contexto de software. No entanto, parece ser uma resposta comum que a empresa seja usada para descrever software destinado à escalabilidade em toda a empresa - mas nem todo software é essencialmente projetado para ser escalável? A menos que seja mal projetado. Além disso, consulte editar.
SkonJeet
1
@SkonJeet Não necessariamente. A escalabilidade é uma questão de muitos fatores, e eu não chamaria um software mal projetado se não atendesse às condições que nunca foram planejadas ou projetadas para atender. O software funciona distribuído por muitos servidores? Paralela bem sua carga de trabalho? Localiza o texto para que possa ser usado em muitos países? Ele será construído e executado em hardware diferente? Existem muitos consultores / programadores que podem usá-lo / modificá-lo? Tudo isso e muito mais são grandes fatores de quão útil um software é para uma empresa, dependendo das necessidades específicas da empresa.
CodexArcanum
6

Na minha experiência, a palavra "empresa" em uma configuração de software geralmente se refere ao software que está sendo escrito para uma grande corporação. Também se refere frequentemente a software interno, e não a software voltado para o cliente.

Pode parecer uma linha arbitrária a ser traçada (e, é claro, o que exatamente é "grande"), mas, tendo escrito software para uma variedade de tipos diferentes de empresas, posso dizer que as necessidades das grandes empresas são muito diferentes das necessidades das pequenas empresas, o que é novamente muito diferente das necessidades dos indivíduos.

Os problemas que geralmente são irrelevantes (ou melhor, não valem a pena investir) para muitas pequenas empresas incluem:

  • Alta disponibilidade / failover contínuo
  • Recuperação de redundância / desastre
  • Privacidade dos dados do cliente
  • Conformidade com leis e regulamentos
  • Monitoramento em tempo real, informações avançadas de rastreamento para solução de problemas
  • Foco nos relatórios (normalmente permitindo gerenciamento inteligente)

Eu arriscaria adivinhar que isso ocorre porque as despesas gerais e os lucros de uma grande empresa estão em uma escala completamente diferente de uma grande empresa. Se as folhas de pagamento de uma pequena empresa ficarem offline, você poderá pagar manualmente ou pedir desculpas a todos pessoalmente. Se isso acontece em uma grande empresa, há uma revolta. Certa vez, um banco jogou em torno de vários milhões de dólares por hora até que um bug foi encontrado - ele coloca a perspectiva das coisas. Confiabilidade é algo importante para a maioria das grandes empresas (bem, pelo menos no papel).

Daniel B
fonte
5

O uso é bastante vago, mas normalmente significa software que deve funcionar em grandes organizações - multinacionais, por exemplo.

Oded
fonte
Obrigado pela sua resposta, mas parece que esse não é o único uso normal da palavra. Olhando para o link que Roc forneceu (nos comentários do OP), você pode ver que existem muitos usos diferentes para a palavra. Uma coisa que realmente me incomoda é que, no nível júnior, analisar o desenvolvimento e as tecnologias já é difícil o suficiente sem palavras como essa voando pela indústria para causar confusão.
SkonJeet 13/04
3
@SkonJeet - Exatamente por que afirmo que o termo é vago.
Oded
É por isso que +1, e provavelmente será marcado como resposta. É como se na comunidade de programação (até mesmo possa ser vista no SO) houvesse quase um tipo de pretensão com as palavras usadas - projetadas por pessoas de nível sênior para mostrar seu conhecimento e excluir aqueles que não o possuem.
SkonJeet
1
@SkonJeet - "Agile" é outra dessas palavras.
Oded
1
@ S.Robins - eu discordo respeitosamente. O uso neste contexto é vago e depende de quem está falando. É principalmente um termo de marketing e não tem significado exato.
Oded
2

Em teoria, "solução corporativa" é qualquer tipo de solução que seja adequada o suficiente para negócios corporativos em larga escala. Na prática, porém, significa soluções desenvolvidas com a mentalidade "ninguém é demitido por contratar a IBM" .

Por outro lado, existem empresas como Google, Facebook, Amazon etc. que construíram seus negócios em soluções que tradicionalmente não são consideradas "nível empresarial". Por exemplo, eles inicialmente estavam usando hardware CotS barato . O software que eles usam é de código aberto, com grande papel desempenhado por linguagens dinâmicas, que também não são tradicionalmente consideradas "prontas para empresas" (mesmo sendo amplamente usadas pelas empresas).

vartec
fonte
"adequado para negócios corporativos em larga escala" - que solução não foi originalmente projetada para escalabilidade? É aqui que está minha confusão.
SkonJeet
1
Muitos softwares são projetados para funcionar primeiro, em segundo. A escalabilidade é YAGNI para muitas soluções.
Eoin Carroll
Por que você usou o acrônimo YAGNI? 9/10 pessoas provavelmente não sabem o que isso significa e precisam pesquisar no Google.
SkonJeet
2
Os não desenvolvedores do @SkonJeet 9/10 não sabem o que YAGNI significa, mas a maioria dos desenvolvedores sabe (ou deveria), é um acrônimo bastante comum que aparece muito (junto com DRY, SOLID etc.). E nada de errado em pesquisar no Google por um acrônimo, você aprendeu algo novo fazendo isso.
yannis
2

As definições são boas e boas. No software, isso parece estar associado a um termo de marketing - uma palavra de código que diz "compre isto para o seu negócio, este é um software sério onde você pode obter suporte". Se isso é verdade ou não, depende do produto, mas essa é a mensagem que o marketing está tentando enviar. A parte de suporte disso é importante para muitas empresas - elas querem alguém do outro lado do telefone quando ligam com um problema.

Nesse contexto, é um termo de marketing.

anon
fonte
1

O software corporativo geralmente é:

  • Revestimento interno;
  • Missão crítica e / ou usada por muitas pessoas em toda a empresa; e
  • Integrado com outros sistemas internos e / ou externos

O software corporativo não precisa necessariamente ser implementado em uma grande empresa. Um exemplo pode ser um sistema eletrônico de registro médico em um consultório médico pequeno, integrado aos sistemas de laboratório hospitalar e aos sistemas de processamento de solicitações de seguro.

Penhasco
fonte