Faits :
Faits :
A. M._ a travaillé en qualité de monteur en ventilation. Souffrant de lombalgies, il a cessé de pratiquer ce métier en 1995 et s'est annoncé à l'assurance-invalidité le 10 avril 1996.
L'Office de l'assurance-invalidité du canton de Genève (l'office AI) a recueilli l'avis du docteur A._, médecin traitant de l'assuré. Dans un rapport du 11 juillet 1996, ce médecin a attesté que son patient était parfaitement apte à assumer des tâches sans port de charge important et à conduire un véhicule. Il a ajouté que les plaintes subjectives étaient importantes, qu'elles variaient dans le temps et qu'elles étaient peu reproductibles lors de différents examens. D'autres médecins ont partagé cette appréciation de la capacité de travail, à l'instar du docteur B._ qui a attesté, le 12 juin 1996, que l'assuré avait à nouveau une capacité entière de travail dès le 17 juin 1996.
M._ a bénéficié de mesures de réadaptation d'ordre professionnel, sous la forme d'un stage d'observation professionnelle puis d'un stage de réentraînement à l'effort. Ces mesures se sont étendues, par intermittence, d'octobre 1997 à février 1999.
Le 12 mars 1999, l'office AI a informé l'assuré qu'il envisageait d'arrêter son taux d'invalidité à 40 % et de lui allouer un quart de rente. Par lettre du 21 mars 1999, l'intéressé a répondu qu'il demeurait incapable de travailler. L'office AI a dès lors repris contact avec le docteur A._, qui au cours d'un entretien téléphonique du 29 mars 1999, a confirmé à l'administration que la capacité de travail de son patient restait entière dans une activité adaptée. Le docteur A._ s'est encore exprimé dans une écriture du 21 avril 1999.
Par décision du 8 juin 1999, l'office AI a alloué à l'assuré une rente fondée sur un degré d'invalidité de 40 %, ainsi que les rentes complémentaires pour l'épouse et les enfants dès le 1er février 1999.
Depuis le mois de septembre 2000, l'assuré occupe un emploi d'agent de sécurité durant 14 heures par semaine, tâche pour laquelle il est rémunéré 20 fr. de l'heure.
Depuis le mois de septembre 2000, l'assuré occupe un emploi d'agent de sécurité durant 14 heures par semaine, tâche pour laquelle il est rémunéré 20 fr. de l'heure.
B. M._ a déféré cette décision à la Commission cantonale genevoise de recours en matière d'AVS/AI en concluant au versement d'une demi-rente d'invalidité à partir du 1er août 1996.
Par jugement incident du 23 avril 2001, la juridiction cantonale a renoncé à ordonner une expertise pluridisciplinaire proposée par l'office AI. Statuant au fond le 2 avril 2002, elle a admis le recours et reconnu à l'assuré le droit à une demi-rente d'invalidité, dès lors que son taux d'invalidité s'élevait, selon ses calculs, au moins à 50,8 %.
Par jugement incident du 23 avril 2001, la juridiction cantonale a renoncé à ordonner une expertise pluridisciplinaire proposée par l'office AI. Statuant au fond le 2 avril 2002, elle a admis le recours et reconnu à l'assuré le droit à une demi-rente d'invalidité, dès lors que son taux d'invalidité s'élevait, selon ses calculs, au moins à 50,8 %.
C. L'office AI interjette un recours de droit administratif contre le jugement du 2 avril 2002 dont il demande l'annulation, en concluant à la confirmation de sa décision du 8 juin 1999.
L'intimé conclut au rejet du recours, avec suite de dépens. L'Office fédéral des assurances sociales a renoncé à se déterminer.
Considérant en droit :
Considérant en droit :
1. Le litige porte sur le degré d'invalidité de l'intimé.
1. Le litige porte sur le degré d'invalidité de l'intimé.
2. La juridiction cantonale de recours a exposé correctement les règles applicables à la solution du litige, de sorte qu'il suffit de renvoyer au jugement attaqué. Il convient encore de compléter cet exposé en précisant que la loi fédérale sur la partie générale du droit des assurances sociales (LPGA), du 6 octobre 2000, entrée en vigueur le 1er janvier 2003, n'est pas applicable en l'espèce, le juge des assurances sociales n'ayant pas à tenir compte des modifications du droit ou de l'état de fait survenues après que la décision litigieuse (in casu du 8 juin 1999) a été rendue (cf. ATF 127 V 467 consid. 1, 121 V 366 consid. 1b).
2. La juridiction cantonale de recours a exposé correctement les règles applicables à la solution du litige, de sorte qu'il suffit de renvoyer au jugement attaqué. Il convient encore de compléter cet exposé en précisant que la loi fédérale sur la partie générale du droit des assurances sociales (LPGA), du 6 octobre 2000, entrée en vigueur le 1er janvier 2003, n'est pas applicable en l'espèce, le juge des assurances sociales n'ayant pas à tenir compte des modifications du droit ou de l'état de fait survenues après que la décision litigieuse (in casu du 8 juin 1999) a été rendue (cf. ATF 127 V 467 consid. 1, 121 V 366 consid. 1b).
3. En ce qui concerne sa capacité de travail, l'intimé renvoie à l'écriture du docteur A._ du 21 avril 1999, en rappelant que son médecin traitant y avait évalué sa capacité résiduelle de travail de 50 à 75 %.
Le docteur A._ a certes estimé en quelques lignes, le 21 avril 1999, que la capacité de travail de son patient devrait être vraisemblablement être réduite au vu des résultats du stage d'observation professionnelle. Ce faisant, le médecin traitant n'a pas motivé son appréciation, ni décrit les activités qui restaient accessibles à son patient. Il s'ensuit que l'écriture du 21 avril 1999 n'est d'aucune utilité pour évaluer la capacité de travail de l'intimé ou déterminer quels travaux on peut encore, raisonnablement, exiger de lui (cf. ATF 125 V 261 consid. 4, 115 V 134 consid. 2, 114 V 314 consid. 3c, 105 V 158 consid. 1).
Avec les premiers juges, il faut donc admettre que les spécialistes qui ont examiné l'intimé ont unanimement reconnu que sa capacité de travail demeurait entière dans un emploi adapté à son handicap. Sur cette question, il suffit pour le surplus de renvoyer aux considérants du jugement incident du 23 avril 2001, que la Cour de céans fait siens.
Avec les premiers juges, il faut donc admettre que les spécialistes qui ont examiné l'intimé ont unanimement reconnu que sa capacité de travail demeurait entière dans un emploi adapté à son handicap. Sur cette question, il suffit pour le surplus de renvoyer aux considérants du jugement incident du 23 avril 2001, que la Cour de céans fait siens.
4. La question de la réadaptation de l'assuré dans le circuit économique a été instruite à satisfaction. Comme un reclassement ne s'est pas révélé possible (voir le rapport d'évaluation du centre X._, Entreprise sociale privée d'intégration et de réinsertion professionnelle, du 18 février 1999), l'administration est passée à juste titre à l'examen du droit à la rente.
4. La question de la réadaptation de l'assuré dans le circuit économique a été instruite à satisfaction. Comme un reclassement ne s'est pas révélé possible (voir le rapport d'évaluation du centre X._, Entreprise sociale privée d'intégration et de réinsertion professionnelle, du 18 février 1999), l'administration est passée à juste titre à l'examen du droit à la rente.
5. 5.1 Pour évaluer le degré d'invalidité, l'office recourant a comparé un revenu annuel de 49'400 fr. (3'800 x 13) que l'intimé pourrait réaliser en qualité de monteur en mécanique légère ou monteur en électricité à l'issue d'une formation pratique (apprentissage), avec le gain annuel de 82'000 fr. environ (6'300 x 13) auquel il aurait pu prétendre dans un emploi de monteur en ventilation, sans la survenance de l'atteinte à la santé. De cette comparaison des revenus, elle a fixé le taux d'invalidité à 40 %.
5.2 De son côté, la juridiction de recours a évalué le gain annuel sans invalidité à 81'242 fr., en actualisant le salaire annuel de 52'803 fr. (correspondant à huit mois de travail) qui ressortait des comptes individuels AVS de l'intimé en 1995.
Pour arrêter le gain d'invalide, elle a procédé à deux calculs différents, aboutissant tous deux à un taux d'invalidité supérieur à 50 %. En premier lieu, la commission cantonale est partie du salaire horaire de 20 fr. que l'intimé réalise désormais dans un emploi d'agent de sécurité; en extrapolant ce gain horaire sur une année, elle est parvenue à un revenu de 38'400 fr. (20 fr. x 40h x 48 semaines), de sorte que la comparaison des revenus a abouti à une perte de gain de 52,7 % (38'400 / 81'242).
En second lieu, la juridiction de recours s'est fondée sur les statistiques salariales de l'Enquête suisse sur la structure des salaires 1998, publiée par l'Office fédéral de la statistique. Elle a tenu compte d'un revenu annuel de 53'196 fr., réalisable en moyenne en 1998 par un homme dans une activité simple et répétitive du secteur de la production (table TA1, 10-45 : secteur 2), puis elle l'a réactualisé à 53'283 fr. en 1999. Les premiers juges ont ensuite appliqué un facteur de réduction de 25 % à ce gain, afin de tenir compte des limitations physiques de l'assuré et de son besoin de repos; ils ont obtenu ainsi un revenu d'invalide de 39'962 fr., soit finalement un taux d'invalidité de 50,8 % (39'962 / 81'242).
En second lieu, la juridiction de recours s'est fondée sur les statistiques salariales de l'Enquête suisse sur la structure des salaires 1998, publiée par l'Office fédéral de la statistique. Elle a tenu compte d'un revenu annuel de 53'196 fr., réalisable en moyenne en 1998 par un homme dans une activité simple et répétitive du secteur de la production (table TA1, 10-45 : secteur 2), puis elle l'a réactualisé à 53'283 fr. en 1999. Les premiers juges ont ensuite appliqué un facteur de réduction de 25 % à ce gain, afin de tenir compte des limitations physiques de l'assuré et de son besoin de repos; ils ont obtenu ainsi un revenu d'invalide de 39'962 fr., soit finalement un taux d'invalidité de 50,8 % (39'962 / 81'242).
5.3 5.3.1 En l'occurrence, le revenu que l'intimé réalise dans son emploi d'agent de sécurité (20 fr. de l'heure), soit 13'440 fr. par an ainsi qu'il l'allègue dans sa réponse, ne saurait être pris en considération comme gain d'invalide. En effet, l'intimé peut mettre sa capacité de gain à profit à plein temps, ce qui lui procurerait un gain minimal garanti par les conventions collectives (à ce sujet, voir VSI 1999 pp. 53-54 consid. 3a), que la recourante a arrêté dans le cas d'espèce à 45'630 fr. Nonobstant les objections de l'intimé, ce montant n'apparaît pas critiquable, au vu de la documentation produite, et peut donc être pris en compte comme gain d'invalide.
5.3.2 Par ailleurs, si le revenu d'invalide de l'intimé était déterminé à la lumière des statistiques de l'Enquête suisse sur la structure des salaires 1998 (table TA1, tous secteurs confondus, pour un homme exerçant des tâches simples et répétitives dans le secteur privé), il faudrait partir d'un montant de 4'268 fr. (voir l'arrêt ATF 128 V 174 et la table TA1 de l'Enquête suisse sur la structure des salaires 1998), et non de 4'433 fr. comme indiqué dans le jugement attaqué. Ce montant devrait être ajusté à la durée moyenne de travail de 41,8 heures hebdomadaires dans les entreprises en 1999 (cf. Annuaire statistique de la Suisse 2002, T3.2.3.5 p. 207), ce qui porterait le gain mensuel à 4'460 fr., ou 53'520 fr. par an, proche de celui que la commission cantonale de recours avait retenu.
Cette dernière a appliqué un facteur de réduction au gain annuel statistique, conformément à la jurisprudence (ATF 126 V 79-80 consid. 5b/aa-cc). Le coefficient de 25 % qu'elle a pris en compte est toutefois excessif dans le cas d'espèce. En effet, il ne trouve sa justification que lorsque la situation de l'assuré est délicate, eu égard notamment à son âge, aux années de service, à sa nationalité, à la catégorie d'autorisation de séjour, à son taux d'occupation, voire à sa méconnaissance des langues, à un état d'illettrisme ou d'analphabétisme. Un facteur de réduction de 10 à 15 % apparaîtrait ainsi mieux approprié en l'espèce, si bien que le gain d'invalide de l'intimé ne serait donc pas inférieur à 45'492 fr. (en cas d'application d'un coefficient de réduction de 15 % au montant de 53'520 fr.).
5.3.3 Dans l'éventualité la plus favorable à l'intimé, en comparant le gain d'invalide de 45'492 fr. avec le revenu d'assuré valide de 82'000 fr., son degré d'invalidité s'élèverait au plus à 44,5 % (45'492 / 82'000). Il s'ensuit que le recours de l'office AI est bien fondé.
5.3.3 Dans l'éventualité la plus favorable à l'intimé, en comparant le gain d'invalide de 45'492 fr. avec le revenu d'assuré valide de 82'000 fr., son degré d'invalidité s'élèverait au plus à 44,5 % (45'492 / 82'000). Il s'ensuit que le recours de l'office AI est bien fondé.
6. Dans sa réponse au recours de droit administratif, l'intimé allègue que son état de santé s'est aggravé, en se référant à un rapport du docteur A._ du 11 janvier 2001.
Ce document porte sur des faits survenus postérieurement à la décision litigieuse. Ils ne doivent donc pas être pris en considération pour en examiner la légalité (cf. ATF 121 V 366 consid. 1b).
Par ces motifs, le Tribunal fédéral des assurances prononce :
1. Le recours est admis et le jugement de la Commission cantonale genevoise de recours en matière d'AVS/AI du 2 avril 2002 est annulé.
1. Le recours est admis et le jugement de la Commission cantonale genevoise de recours en matière d'AVS/AI du 2 avril 2002 est annulé.
2. Il n'est pas perçu de frais de justice.
2. Il n'est pas perçu de frais de justice.
3. Le présent arrêt sera communiqué aux parties, à la Commission cantonale genevoise de recours en matière d'assurance-vieillesse, survivants et invalidité et à l'Office fédéral des assurances sociales.
Lucerne, le 21 février 2003
Au nom du Tribunal fédéral des assurances
Le Président de la IIe Chambre: Le Greffier: