Environnement de développement interne ou de développement logiciel [fermé]

13

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é?

Isaac Kleinman
la source
9
Je pense que vous avez trop généralisé. Les méthodologies utilisées n'ont rien à voir avec les produits internes par rapport aux projets vendus dans le commerce. J'ai travaillé sur un produit expédié qui a été développé de manière très ponctuelle, ignorant bon nombre de ce qui serait considéré comme des meilleures pratiques. J'ai également travaillé sur des projets internes qui avaient des spécifications détaillées, des suites de tests et une pléthore de pratiques de contrôle qualité.
Thomas Owens
Les deux questions que vous avez posées ne peuvent être résolues que par vous-même.
leo
6
À mon humble avis, votre problème n'a rien à voir avec le fait de rater In-House vs société de logiciels. Vous semblez souffrir d'être dans un environnement de développement non structuré et de ne pas avoir un mentor fort qui vous aide à suivre les meilleures pratiques.
maple_shaft
1
Que le logiciel soit développé pour la vente ou pour un usage interne, tout est appelé «développement logiciel». Commercial pourrait être un meilleur terme que ce que vous appelez le «développement de logiciels».
Caleb
1
Vous associez deux dimensions du développement logiciel: le processus de développement ad hoc vs structuré et le développement interne vs développement de produit. Le degré de chacun peut varier indépendamment.
Sean McMillan

Réponses:

13

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).

Oded
la source
J'écrivais quelque chose de similaire lorsque vous avez posté. +1 juste pour la dernière phrase, bien que ce soient tous des points valides.
Thomas Owens
@ThomasOwens - Oui, j'ai vu votre commentaire à la question après avoir posté ma réponse et j'attendais également une réponse de votre part;)
Oded
10

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".

Doc Brown
la source
6

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.

Sam Goldberg
la source
3

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.

Nickz
la source