Ayant lu les réponses ici, qui sont excellentes, il y a deux aspects majeurs à cela :
Premièrement, il y a l'aspect discipline. Par définition, le travail à domicile comporte des distractions différentes de celles du travail au bureau. Lorsque je travaille à domicile, je le traite comme une journée de travail normale. Je suis une personne très distraite, avec une maison pleine de choses que j'aime faire. (Piano, guitares, livres, Xbox) et une moto assise dans un garage qui me fait un clin d'œil quand elle voit le soleil, donc je dois me lever, faire ma routine du petit-déjeuner, puis m'asseoir et travailler pendant 7 heures avec la même structure travail/pause/travail/déjeuner/travail/pause/travail/fin de 9 à 5 environ, sinon mon jeu de guitare est bon, et mon rendement est mauvais.
Deuxièmement, il y a l'aspect pratique de travailler loin de mon système de développement, mais généralement ce que je fais, c'est un VPN dans mon réseau de travail et utiliser une session Remote Desktop. J'ai une connexion Internet dorsale symétrique en fibre 100Mbit au travail avec une latence de 10ms vers le mauvais monde, et une fibre 70Mbit à la maison avec une latence <20ms. Dans l'ensemble, l'expérience est transparente, et je peux accéder à mon serveur de construction, à mon serveur de projet et à mon système de bureau au travail comme si j'étais à mon bureau. J'utilise un ordinateur portable standard à la maison pour cette raison. Il a bien VS sur lui, mais je ne l'utilise que pour tester des choses rapidement.
[Et oui, j'ai fait le "pourquoi je ne peux pas transférer ce fichier sur ma clé USB" après une longue journée en étant connecté à distance à mon PC de travail. Le meilleur de tous était d'essayer de graver un build sur un DVD. J'ai passé une demi-heure à éjecter/fermer mon lecteur, à échanger des disques, pour voir à chaque fois "aucun disque dans le lecteur". Bien sûr, je regardais ma machine de travail et je permutais les disques sur ma machine à domicile !]
.