Dans l'industrie, il existe une distinction entre un environnement de «développement interne» où les développeurs de logiciels écrivent du code qui sera utilisé par l'entreprise elle-même et un environnement de «développement de logiciels» approprié où les logiciels sont conçus pour être vendus / distribués. au public.
Entre autres, une différence évidente entre les deux est qu'une entreprise orientée vers le développement logiciel suivra généralement une sorte de cycle de vie de développement logiciel comme la rédaction de spécifications, les tests, la construction, etc., tandis que la boutique orientée interne faire les choses de manière plus décontractée car ils sont eux-mêmes les utilisateurs finaux et peuvent toujours réparer quelque chose qui n'a pas été bien fait.
En tant qu'étudiant (comme la plupart des autres étudiants), je m'attendais en quelque sorte à travailler dans un environnement de développement logiciel, mais j'ai finalement obtenu mon premier poste dans une entreprise qui fonctionne de manière plus interne.
Parfois, je me demande si je manque une expérience de développement logiciel à part entière. Y a-t-il une base à ce sentiment? Dois-je chercher à rejoindre un environnement de développement logiciel approprié?
la source
Réponses:
D'après mon expérience, la distinction que vous faites entre «en interne» et «produit distribuable» est fausse.
Il y a des entreprises qui prennent leur processus de développement logiciel au sérieux et celles qui ne le font pas. Qu'ils soient «en interne» ou «sur mesure» ou «emballage sous film» a tendance à ne pas y entrer autant (bien que s'ils sont des fournisseurs «d'emballage sous film rétractable», s'ils n'ont pas de processus, ils ne seront probablement pas en affaires pour longue).
Vous devriez chercher un endroit qui a les normes de développement que vous recherchez - lors de l'entretien, vous devez poser ces questions pour vous assurer que l'endroit est à votre goût à cet égard (ainsi que d'autres).
la source
Vous pouvez lire cet article
http://www.joelonsoftware.com/items/2007/12/04.html
de Joel Spolsky, qui répond exactement à votre question.
Je suis dans une position où j'ai dû travailler sur les deux dernières années - un produit logiciel de taille moyenne vendu et certains logiciels internes. D'après cette expérience, je peux vous dire qu'il y a des différences entre ces deux plates-formes, mais la situation n'est pas si mauvaise que Joel l'a décrite.
Par exemple, la plupart de nos logiciels internes ne doivent fonctionner que dans un environnement très restreint. Beaucoup d'outils fonctionnant simplement avec une certaine feuille de calcul ou version de base de données, avec un environnement réseau spécifique, avec un nombre restreint d'utilisateurs, aucune routine d'installation nécessaire, etc. Cela rend beaucoup de choses plus faciles et plus rapides à développer par rapport aux nouvelles fonctionnalités introduites dans notre produit d'expédition. D'un autre côté, cela ne signifie pas que mon code pour les programmes "en interne" a une qualité inférieure ou est écrit de manière plus "décontractée".
la source
Il y a longtemps, j'ai lu un livre sur la gestion de projet agile (j'aimerais pouvoir me souvenir du titre), où l'auteur a distingué les systèmes en fonction de leur niveau de tolérance aux défauts du système. La tolérance aux défauts peut aller de très élevée - par exemple, un utilitaire utilisé par d'autres développeurs (où les bogues ne sont qu'un inconvénient) à très faible - par exemple, un système qui gère la vie des astronautes (où un bogue pourrait être mortelle).
L'auteur a fait valoir que la méthodologie de développement (et la formalité) devaient être adaptées à la tolérance aux pannes (ou criticité) du système. Je pense que cette distinction est la plus importante, par opposition à la distinction entre le développement en interne et les logiciels pour la distribution générale.
Imaginez un hôpital où des développeurs internes construisent des systèmes de dossiers médicaux qui pourraient avoir un impact sur la qualité des soins médicaux. Dans ce cas, la boutique interne serait probablement plus rigoureuse qu'un consultant de site Web, qui construit des produits Web destinés au grand public.
la source
J'ai travaillé pour des éditeurs de logiciels, des agences de marketing, des opérateurs de téléphonie mobile et des banques, une chose que je dirai, c'est la culture et l'industrie de l'entreprise qui dicte le niveau des processus appliqués. L'environnement le plus rigoureux, le plus lent, le plus restrictif et le plus testé que j'ai jamais connu était le développement interne d'une banque. Le plus décontracté était une agence de marketing.
Je recommanderais d'apprendre de cette expérience et de l'utiliser pour décider de votre orientation future pour votre prochain emploi. L'industrie du développement de logiciels n'est pas une science, son art / science d'où la variation et les différences d'une entreprise à l'autre. Il est plus important que vous appreniez à bien faire les choses concernant votre code. Bien qu'il soit utile de noter mentalement les échecs ou le manque de processus, alors lorsque votre gestionnaire peut mettre en œuvre de meilleurs processus.
la source