Accueil / Articles / Après la génération de code : compétences qui restent importantes pour les ingénieurs

Après la génération de code : compétences qui restent importantes pour les ingénieurs

Lorsque les modèles rédigent du code, le jugement se porte sur les spécifications, les revues, l’architecture et les pratiques de vérification.

1280 mots

Utilisez ceci comme une version révisée destinée aux opérateurs des idées présentées dans « L’IA peut écrire votre code. Alors que faire maintenant ? » : étapes claires, emplacements de code ordonnés et notes de récupération qui survivent au transfert de tâches. L’aperçu fonctionne le mieux lorsqu’il est considéré comme une surface mesurable. Capturez un enregistrement exemplaire, un cas d’échec et la note de réversion avant d’élargir le périmètre. Considérez cette étape comme un contrat entre les entrées et les sorties validées. Nommez les artefacts, définez des critères de succès et refusez toute complétion partielle silencieuse.

Le code devient de moins en moins cher

Puisque le code devient de plus en plus abordable, il convient de définir les entrées, le responsable de l’étape et les critères d’arrêt avant de modifier le code. Les opérateurs doivent pouvoir relancer l’étape à partir d’un point de contrôle connu, sans avoir à deviner l’état caché. Enregistrez les temps d’exécution ainsi que le coût des jetons ou des requêtes à côté des résultats fonctionnels. Une visibilité précoce des coûts permet d’éviter des factures inattendues lorsque le processus passe de l’environnement de démonstration à des environnements partagés. Ajoutez un test de fumée qui met en œuvre le chemin critique dans les processus CI, en utilisant des fixtures plutôt que des API payantes en temps réel, chaque fois que le budget le permet.

Add JWT authentication.
Create login and refresh-token APIs.
Add PostgreSQL persistence.
Write integration tests.
Run the test suite.
Fix failures.

Anthropic nous montre où cela mène

Afin qu’Anthropic nous montre où cela mène, il convient de définir les entrées, le responsable de l’étape et les critères de fin avant de modifier du code. Les opérateurs doivent pouvoir relancer l’étape à partir d’un point de contrôle connu, sans avoir à deviner l’état caché. Conservez la configuration en dehors du code de l’application. Les fichiers d’environnement, les bases de données secrètes et les indicateurs fonctionnels doivent être regroupés en un seul endroit que les opérateurs peuvent auditer sans devoir lire l’ensemble du système. Ajoutez un test de fumée qui exécute le chemin critique dans l’CI à l’aide de fichiers de configuration, et non d’API payantes en temps réel, chaque fois que le budget le permet.

Is the architecture correct?
Is authentication secure?What happens under 10,000 requests?Can this transaction fail halfway?Will this leak memory?What happens when Redis is unavailable?What happens when the database is slow?Did the AI introduce a race condition?

Puis quelque chose de bien plus important s’est produit

Avant de modifier le code, il faut définir les entrées, le responsable de l’étape et les critères d’arrêt. Les opérateurs doivent pouvoir relancer l’étape à partir d’un point de contrôle connu sans deviner l’état caché. Il convient de documenter à la fois le parcours normal et les scénarios de récupération. Les tentatives répétées, les contrôles humains et la gestion des messages non traités font partie intégrante du produit, et non d’améliorations ultérieures. Lorsque le budget le permet, ajoutez un test de base qui exécute le parcours critique dans l’environnement CI à l’aide de fichiers de configuration, et non d’API payantes en production. Traitez cette étape comme un contrat entre les entrées et les sorties validées : donnez des noms aux artefacts, définites des vérifications de succès et refusez toute complétion partielle silencieuse.

La plus grande erreur que peuvent commettre les développeurs

Lorsque vous travaillez sur la question de la plus grande erreur que peuvent commettre les développeurs, notez d’abord le contrat : les entrées requises, le signal de succès et ce qui se passe en cas d’échec partiel. Cette liste de contrôle permet de rester honnête lors des modifications ultérieures du code. Enregistrez les temps d’exécution ainsi que le coût des tokens ou des requêtes à côté des résultats fonctionnels. Une visibilité précoce des coûts évite les factures inattendues lorsque le système passe d’un environnement de démonstration à des environnements partagés. Rédigez un petit manuel d’utilisation : comment rotationner les clés, comment vider la file d’attente, comment annuler la dernière ingestion.

@GetMapping("/users")
public List<User> getUsers() {
    return userRepository.findAll();
}

Alors, que devraient apprendre les développeurs maintenant ?

Lorsque vous travaillez sur la question « Que devraient apprendre les développeurs maintenant ? », notez d’abord le contrat : les entrées requises, le signal de succès et ce qui se passe en cas d’échec partiel. Cette liste de contrôle permet de rester honnête lors des modifications ultérieures du code. Gardez la configuration en dehors du code de l’application. Les fichiers d’environnement, les bases de données secrètes et les indicateurs fonctionnels doivent être regroupés en un seul endroit que les administrateurs peuvent auditer sans devoir lire l’ensemble du système. Rédigez un petit manuel d’utilisation : comment rotationner les clés, comment vider la file d’attente, comment revenir en arrière après une dernière ingestion.

Write this.
Refactor this.
Explain this.
Test this.
Fix this.
Convert this.
Don't build it this way.
Here's why.
Here's the simpler architecture.
Here's the failure mode you missed.
Here's what we should measure in production.

L’IA ne remplace pas la nécessité de réfléchir

Lorsque l’on travaille avec de l’IA, cela ne dispense pas de réfléchir : notez d’abord les conditions du contrat, à savoir les entrées requises, le signal de succès et ce qui se passe en cas d’échec partiel. Cette liste de contrôle permet de garantir l’honnêteté des modifications ultérieures du code. Documentez à la fois le parcours normal et celui de récupération. Les tentatives répétées, les contrôles humains et la gestion des messages échoués font partie intégrante du produit, et non d’améliorations apportées ultérieurement. Rédigez un petit manuel opérationnel : comment rotationner les clés, comment vider la file d’attente, comment revenir en arrière après une dernière ingestion. Lorsque l’on travaille avec de l’IA, cela ne dispense pas de réfléchir : notez d’abord les conditions du contrat, à savoir les entrées requises, le signal de succès et ce qui se passe en cas d’échec partiel. Cette liste de contrôle permet de garantir l’honnêteté des modifications ultérieures du code. Considérez cette étape comme un contrat entre les entrées et les sorties validées. Donnez des noms aux artefacts, définites des vérifications de succès et refusez les terminations partielles silencieuses.

Prompt → Copy → Commit → Next task

Le nouvel ingénieur logiciel

Le nouvel ingénieur logiciel fonctionne le mieux lorsqu’il est considéré comme une entité mesurable. Capturez un enregistrement exemplaire, un cas d’échec et la note de réversion avant d’élargir le périmètre du projet. Notez les temps d’exécution ainsi que le coût des tokens ou des requêtes à côté des résultats fonctionnels. Une visibilité précoce des coûts évite les factures inattendues lorsque le projet passe de la démonstration aux environnements partagés. Fixez les versions des dépendances et enregistrez le digest de l’image ayant servi à exécuter la démonstration. La reproductibilité vaut mieux que les connaissances propres à un groupe.

Si vous étiez développeur aujourd’hui

Si vous étiez développeur aujourd’hui, il est préférable de considérer le travail comme une surface mesurable. Capturez un exemple réussi exemplaire, un cas d’échec et la note de réversion avant d’élargir le périmètre du projet. Gardez la configuration en dehors du code de l’application. Les fichiers d’environnement, les bases de données secrètes et les indicateurs fonctionnels doivent être regroupés en un seul endroit que les opérateurs peuvent auditer sans devoir lire l’ensemble du système. Fixez les versions des dépendances et enregistrez le digest de l’image utilisée pour exécuter la démonstration. La reproductibilité vaut mieux que les connaissances propres à un groupe.

Liste de contrôle opérationnelle

Lorsque vous travaillez selon la liste de contrôle opérationnelle, écrivez d’abord le contrat : les entrées requises, le signal de succès et ce qui se passe en cas d’échec partiel. Cette liste garantit que les modifications ultérieures du code restent transparentes.

Préférez des unités petites et testables plutôt que des scripts complexes. Lorsqu’une étape échoue, l’échec doit indiquer une seule responsabilité et non un processus embrouillé.

Rédigez un petit manuel opérationnel : comment rotationner les clés, comment vider la file d’attente, comment annuler la dernière ingestion.

Dokumentez à la fois le parcours normal et les procédures de récupération. Les tentatives répétées, les contrôles humains et la gestion des messages échoués font partie intégrante du produit, et non d’améliorations ultérieures.

Ajoutez un test de fumée qui simule le parcours critique dans l’environnement CI à l’aide de fixtures, et non d’API payantes en production, chaque fois que le budget le permet.

Gardez la configuration en dehors du code de l’application. Les fichiers d’environnement, les stockages de secrets et les indicateurs fonctionnels doivent être regroupés en un seul endroit que les opérateurs peuvent auditer sans devoir lire l’ensemble du système.

Au préalable de promouvoir la stack, figez les versions, conservez une transcription exemplaire du parcours critique et confirmez les étapes d’annulation. Les environnements partagés nécessitent des limites de débit, des vérifications de location et un responsable clair pour la rotation des secrets. Préférez une fiabilité solide à de brillantes démonstrations ponctuelles.

Remarque de lot pour 34004c5d2824 : ne pas inclure les clés des fournisseurs dans le répertoire, fixer un plafond pour les tokens par session, et stocker les transcriptions à côté des fichiers d’évaluation afin que les remplacements ultérieurs de modèles restent comparables.