Récemment, j'ai été approché par une agence de publicité locale avec une opportunité d'emploi. Ils apportent tout le développement web / interactif en interne et ajoutent à leur équipe de développement.
J'en ai marre de mon travail d'entreprise confortable et ennuyeux et je suis intrigué par le poste.
N'ayant travaillé que pour des magasins de logiciels où l'entreprise principale fabriquait des logiciels, je crains qu'ils ne mettent pas l'accent sur des pratiques logicielles de qualité, car le développement n'est pas au centre de leurs activités.
Quelqu'un ayant de l'expérience à la fois peut-il comparer / contraster un travail dans une entreprise de logiciels avec un travail dans une entreprise qui se trouve justement avoir une équipe ou un service de développement de logiciels en interne?
la source
Réponses:
Cela dépendra de l'entreprise. Mais généralement, si ce n'est pas leur objectif principal, le logiciel sera de moindre qualité. S'ils en ont, le processus sera moins rigoureux. Le test inexistant. Et le travail globalement moins difficile techniquement.
Ils voudront que ça marche, et ça marche maintenant, et ce sera suffisant.
Mais certains endroits sont branchés sur le développement de logiciels, même si ce sont des boutiques maman et pop qui font tout autre chose. Cela dépend du fait que le leadership commercial est ouvert aux bonnes idées, que le leadership technologique en sait suffisamment pour bien faire les choses et qu'il y a des gens qui peuvent expliquer une bonne idée. Ce pourrait être toi.
Interviewez l'entreprise. Demandez-leur si vous connaissez / respectez le test Joel. La plupart d'entre eux sont de bons points. Voyez s'ils comprennent la dette technique et le mois-homme mythique. Qui est votre chef de projet, quel processus utilise-t-il et à quel point est-il geek?
la source
Il y a une énorme différence. Dans le premier cas, vous faites partie d'un centre de profit. Dans ce dernier, vous faites partie d'un centre de coûts. Devinez lequel obtient un meilleur traitement?
Je travaille pour une société de logiciels maintenant et je suis tellement plus heureux que lors de mon dernier emploi, où il s'agissait de licenciements et d'externalisation tout le temps, et les développeurs étaient simplement considérés comme des widgets facilement remplaçables (au lieu du cœur de l'entreprise).
la source
Les programmeurs sont toujours des programmeurs. Ce n'est pas parce que le principal produit de l'entreprise n'est pas un logiciel qu'un programmeur n'a pas besoin des mêmes commodités.
la source
J'ai travaillé dans le département informatique de grandes entreprises développant des logiciels à usage interne; J'ai travaillé dans des entreprises développant des logiciels pour le marché; et j'ai travaillé dans des agences faisant du développement web pour des clients.
Et je ne dirais pas qu'il y avait une quelconque différence entre ces différentes entreprises en termes d'importance pour augmenter la productivité.
Garder les programmeurs productifs est vital quel que soit le type de développement que ces programmeurs font. Et je dirais que garder les programmeurs heureux et les faire travailler pour vous est encore plus important lorsqu'ils sont programmeurs de maintenance dans le département informatique d'une entreprise non logicielle.
la source
La différence dépend en grande partie de l'entreprise elle-même; J'ai travaillé dans de bonnes sociétés non logicielles et dans de terribles sociétés de logiciels. En moyenne, cependant, voici ce que j'ai trouvé:
Entreprise non logicielle
L'accent est mis sur le fait de faire les choses rapidement, avec peu ou pas de réflexion sur la qualité ou la maintenabilité à long terme. Les développeurs sont généralement techniquement ignorants au-delà de ce qu'ils ont fait dans le passé ou pendant leur temps avec l'entreprise, et essayant souvent d'introduire de nouveaux concepts (ORM, principes SOLID, TDD, etc.) seront confrontés à la confusion ou au rejet immédiat. Les gens ont tendance à se concentrer davantage sur le «remorquage de la ligne de l'entreprise».
Société de logiciels
Accent sur la réalisation des tâches sans sacrifier la qualité. Les collègues sont plus susceptibles de se tenir au courant de la technologie (s'ils peuvent ou non l'utiliser au travail) et cherchent souvent comment ils peuvent intégrer de nouvelles idées ou de nouveaux cadres dans la routine quotidienne pour améliorer le logiciel. S'ils ne sont pas déjà familiers et utilisent des concepts tels que TDD, ORM, SOLID, etc., ils en ont probablement entendu parler et sont plus disposés à les évaluer.
Encore une fois, cela dépend de l'entreprise. J'ai travaillé dans une société non logicielle avec une équipe extrêmement agile qui a adopté le TDD et les ORM et m'a beaucoup appris sur l'ingénierie logicielle appropriée, et j'ai travaillé dans une petite société de logiciels qui a écrit le code spaghetti VBScript du pire et a plus de 50 développeurs que chacun devait travailler sur des pages différentes pour éviter que les choses ne se cassent, et des tonnes de paperasse, même pour un changement mineur. Cependant, moins l'entreprise s'appuie extérieurement sur des logiciels, plus l'environnement est susceptible d'être très pauvre pour le développement de logiciels.
la source
J'ai travaillé comme le seul développeur de logiciels sur un étage de personnes non logicielles, et je pense que l'indépendance est encore plus importante dans ce cas. Lorsque vous n'avez pas des dizaines de personnes utilisant les mêmes outils, vous devez prendre beaucoup plus de décisions - quel langage vous utiliserez, quel compilateur, quels serveurs, etc. Les développeurs solitaires ont besoin de plus de liberté pour installer, évaluer et administrer des logiciels qui est pris pour acquis dans un cadre de groupe.
la source
Une différence certaine sera moins l'accent mis sur les frais généraux et les formalités administratives que vous devez subir dans un magasin de logiciels d'entreprise. Vous constaterez que vous pourrez avoir un contrôle beaucoup plus précis sur tous les aspects de vos projets.
Un pro est que cela peut être rafraîchissant ...
Cela s'est avéré horriblement pour moi personnellement, mais c'est peut-être parce que j'ai mal choisi. Un ÉNORME inconvénient est que vous n'êtes plus lié au pain et au beurre de l'entreprise et que vous êtes plutôt une charge administrative. Les contrôleurs budgétaires m'ont traité comme si je prenais personnellement de l'argent de leurs propres portefeuilles et ont pour ainsi dire "me battre comme un mulet loué". Pour moi, c'était une épreuve exaspérante et épuisante, alors vous devriez soigneusement rechercher les signes de ce genre d'attitude lorsque vous interviewez.
la source
Il y a déjà d'excellentes réponses ici, mais je voudrais simplement faire référence à un lien vers la transcription de la 2e partie d'une conférence que Joel Spolsky a donnée à l'Université de Yale:
Joel Spolsky - Talk At Yale Partie 2 sur 3
Là, il parle de la différence entre les programmeurs "internes" et les programmeurs qui travaillent dans des sociétés de logiciels / technologies.
Ses trois points principaux sont:
Lorsque vous êtes un programmeur interne, vous ne pouvez jamais faire les choses correctement. Vous devez toujours faire les choses rapidement.
En tant que programmeur interne, une fois que certains logiciels sont «assez bons», vous cessez de travailler dessus. Lorsque vous développez des «produits» logiciels, vous pouvez les rendre beaux.
Lorsque vous êtes programmeur dans une entreprise de logiciels, le travail que vous faites est directement lié à la façon dont l'entreprise gagne de l'argent. Cela signifie, d'une part, que la direction se soucie de vous.
Personnellement, j'ai travaillé à la fois dans des sociétés de logiciels et dans des sociétés non logicielles tout au long de ma carrière, et bien qu'il y ait toujours des exceptions à chaque règle, je suis d'accord avec les points de Joel car la grande majorité des entreprises semblent les respecter.
la source
Une différence majeure est qu'en travaillant dans un magasin de logiciels, vous contribuez probablement à générer des emplois au sein de l'entreprise. Travailler dans le département de programmation. dans un autre type d'entreprise, cela signifie généralement que vous écrivez des logiciels pour remplacer des personnes. C'est une réalité déprimante à gérer. Cela étant dit, une agence de publicité peut très bien être une bête complètement différente. Plus comme une boutique de développement Web au sein d'une autre entreprise, ce serait ma supposition.
la source
Eh bien, selon mes observations, il y a au moins deux cas où s'en tenir aux frontières des éditeurs de logiciels pour les questions de survie professionnelle .
Le premier cas est si l'on est totalement dans le codage - donnez-moi 80 ... 90 ... 100% de temps pour coder ou je meurs . Dans les magasins de logiciels, c'est presque acquis, comme si tout le monde savait comment s'y rendre car, eh bien, parce que tout le monde fait exactement cela. Mais à l' extérieur , il y a un risque très élevé de ne pas y arriver. On peut descendre jusqu'à 50, 40, 30% (ma charge de codage personnelle est tombée à 20% - sans blague, j'ai mesuré en JIRA !) Ce n'est pas parce qu'ils "ne veulent pas que vous codiez - non, ils veulent mais , mais ... ils ne savent tout simplement pas comment.
Le deuxième «risque mortel» concerne le fait que quelqu'un a de graves problèmes de communication. Cela peut être gênant même dans les magasins de logiciels, non, mais au moins il y a de bonnes chances de survivre et de vivre une belle vie productive sans perturber les interactions. :) Dans les sociétés non logicielles, ces chances sont beaucoup plus faibles - bien au contraire, il est presque inévitable que l'on doive éventuellement consacrer beaucoup d'efforts à éduquer un étranger aux bases informatiques simplement parce que sinon il sera impossible de faire le travail.
Eh bien, sauf pour les deux cas mentionnés ci-dessus, je ne connais aucune autre raison valable de verrouiller strictement les sociétés de logiciels. Maintenant, quel côté préférer? pour autant que je sache, c'est plus une question de goût, de quel genre de plaisir clique davantage sur vous.
Les deux parties offrent leurs propres formes distinctes de plaisir. Ce n'est pas facile à décrire.
Je dirais que les éditeurs de logiciels sont plus amusants pour ceux qui visent des «notes élevées» tandis que ceux de l' extérieur donnent un frisson à ceux qui aspirent à «une grande différence». J'y pense comme ça (les numéros de note ci-dessous ne sont inventés que pour simplifier un point) ...
Notez que les chances d'obtenir un boost de 500% chez les éditeurs de logiciels sont négligeables en comparaison - et respectivement, les chances d'obtenir 100 fonctionnalités sont négligeables à l' extérieur .
D'un côté, les meilleures notes élargissent notre compréhension des limites professionnelles et améliorent nos connaissances sur la façon de mieux faire les choses. Une grande différence de l'autre côté a un impact profond sur la culture de l'entreprise, améliorant les connaissances des étrangers sur la façon d'y remédier.
Maintenant, si vous avez une préférence claire pour l'un ou l'autre, vous savez de quel côté prendre. Ou, si vous êtes indécis, n'hésitez pas à basculer entre eux comme vous le souhaitez. :)
la source
Bravo à la réponse du centre de coûts vs profit.
J'ai fait partie des deux et je préférerais de loin une société de logiciels. Étant donné que votre corrélation avec les bénéfices est plus évidente, vous êtes plus susceptible d'avoir une rémunération basée sur les performances et une culture d'entreprise globale qui englobe la personnalité des développeurs de logiciels. Souvent, cela se traduit par moins de politique de bureau, des Dockers non requis, des cheminements de carrière évidents et moins de BS. Mais si vous préférez un concert de 9 à 5, peut-être moins difficile, pas de pointe que parfois le corp IT est une meilleure affaire - n'étant pas cynique ici, je comprends que certaines personnes aiment un équilibre travail / vie plus typique au détriment de autres choses. D'après mon expérience, la qualité globale d'un développeur est beaucoup, beaucoup mieux dans une société de logiciels; par opposition à la médiocrité qui imprègne souvent le corp IT. Je sais qu'il y a des exceptions,
la source
L'informatique fait partie du groupe de support dans les sociétés non logicielles. Les programmeurs de logiciels ont développé des applications qui aideront la société pour une bien meilleure productivité, des transactions plus rapides, une assistance technique etch ... Certaines sociétés non logicielles (fabrication / gravure industrielle) proposent des formations et autres choses à leurs programmeurs, mais beaucoup ne le sont pas, alors ils externalisaient les programmeurs dans d'autres sociétés.
la source
Je préfère opposer le fait de travailler au sein d'un département SI à celui de la branche développement de produits d'une entreprise qui vend des logiciels. Juste pour clarifier chaque côté et en donner quelques-uns, avec quelques corrections de formatage:
Département SI
L'entreprise peut fabriquer du matériel, des logiciels, des voitures ou autre chose, mais la clé ici est qu'il existe un service interne qui est responsable des systèmes que l'entreprise utilise jour après jour. Ici, il peut y avoir des cadres comme ITIL qui peuvent essayer d'apporter une certaine maturité aux processus que le département exécute dans le cadre de ce département sont les gars de l'infrastructure qui gardent les lumières allumées et l'autre partie sont les gars de développement et d'analyse qui ont apporté des améliorations , améliorations et nouveaux systèmes. Ici, les projets peuvent varier en longueur, mais dans certains cas, cela peut prendre des années pour obtenir un système entièrement mis en œuvre en raison des phases de déploiement si un gros système est remplacé comme un CMS, CRM ou ERP.
À certains moments, j'ai eu le sentiment d'être un rouage dans une machine et à d'autres, c'est plutôt bien de faire partie de l'épine dorsale de l'entreprise pour les bas et les hauts d'une telle position. Je ne me vante pas trop des personnes extérieures à l'entreprise car la plupart de mon travail porte sur des systèmes internes qui ne sont pas destinés à être accessibles ou consultés par le public. Ici, il peut y avoir des tickets de support où l'on peut avoir à traiter avec des fournisseurs de logiciels car quelqu'un a un problème qui n'est pas nécessairement quelque chose où il est facile de savoir ce qui a causé l'erreur et donc le service informatique doit faire le suivi avec quelqu'un d'autre pour aider à résoudre le problème. Dans d'autres cas, il se peut que certaines personnalisations doivent être modifiées en raison de l'évolution des exigences ou des règles métier.
Entreprise de logiciels
Ici, cela fonctionne sur ce que l'entreprise vend directement et il y a donc de grandes différences de règles. Tout d'abord, le client ici ne peut pas être autant emballé que le cas du département SI. Dans le département SI, il peut y avoir seulement quelques utilisateurs d'un système afin que la gouvernance puisse prendre en charge de nombreux cas étranges où si quelqu'un choisit intentionnellement de mal utiliser un outil, cela ne peut pas toujours être évité. Dans la société de logiciels, il n'y a pas de filet de sécurité. Si quelqu'un télécharge votre logiciel et parvient à trouver un moyen de faire quelque chose de plutôt destructeur avec lui, l'entreprise peut en avoir un gros œil au beurre noir. Dans ce cas, il peut y avoir une partie de ce que j'ai fait, car il peut y avoir une fonctionnalité intéressante à montrer à un ami ou un parent s'il veut en savoir un peu plus sur ce que je fais.
Quelque chose à noter ici est qu'il peut y avoir des entreprises qui sont intégrées en tant qu'intégrateurs de systèmes pour mettre en place de gros logiciels d'entreprise personnalisables qui travaillent avec des personnes dans les services informatiques sur la mise en œuvre de millions de dollars de choses ainsi que ceux qui travaillent directement pour l'entreprise qui fait le gros logiciel lui-même. Il peut également y avoir des fournisseurs de services d'application que je mettrais ici car ils vendent un service qui est généralement construit principalement avec des logiciels. Par exemple, Google peut avoir un département SI ainsi qu'un certain nombre de développeurs de logiciels, même si on n'irait pas dans un magasin pour acheter un DVD du logiciel de Google, au moins je ne pense pas avoir vu cela même si je le fais connaître de nombreux produits Google en ligne qui peuvent être utilisés assez facilement. Cela peut permettre une certaine spécialisation car ce n'est pas
la source
J'ai récemment travaillé dans une grande société américaine de non-logiciels où un collègue a entendu le PDG dire "Je ne donne pas de détails sur les logiciels que je gère * *". D'après mon expérience, cela est normal pour le cours. Il y aura presque inévitablement des problèmes qui sembleront évidents à l'équipe logicielle, mais la gestion des non-développeurs refusera même d'y penser.
la source