Faits: Faits: A. A._ est propriétaire d'un immeuble, à Peseux. En automne 1995, elle a décidé d'y aménager un appartement indépendant au rez-de-chaussée. Par l'intermédiaire de E._, qui était chargé de la direction des travaux, elle a conclu avec B._ un contrat d'entreprise portant sur l'installation d'un chauffage et de sanitaires. L'entrepreneur a établi deux devis, l'un de 24 370 fr.40 pour le chauffage et l'autre de 26 884 fr.20 pour les sanitaires. Les travaux ont débuté le 23 septembre 1996. B._ a tout d'abord démonté l'ancienne chaudière, puis mis en place la nouvelle. Le 17 octobre 1996, A._ a payé un premier acompte de 19 400 fr. Le 29 octobre 1996, l'entrepreneur a exigé un deuxième acompte de 25 000 fr.; A._ a refusé de le régler. A la suite de divergences, les parties ont échangé une correspondance abondante. Par télécopie du 31 mars 1997 adressée au mandataire de l'entrepreneur, A._ a mis un terme aux relations contractuelles. Les travaux ont débuté le 23 septembre 1996. B._ a tout d'abord démonté l'ancienne chaudière, puis mis en place la nouvelle. Le 17 octobre 1996, A._ a payé un premier acompte de 19 400 fr. Le 29 octobre 1996, l'entrepreneur a exigé un deuxième acompte de 25 000 fr.; A._ a refusé de le régler. A la suite de divergences, les parties ont échangé une correspondance abondante. Par télécopie du 31 mars 1997 adressée au mandataire de l'entrepreneur, A._ a mis un terme aux relations contractuelles. B. B.a Le 2 juin 1997, B._ a adressé au Président du Tribunal du district de Boudry une requête de preuve à futur, qui tendait à la mise en oeuvre d'une expertise destinée à déterminer la nature et la qualité des travaux exécutés par l'entrepreneur, ainsi que le solde dû par A._. L'expertise a été confiée à C._, du Bureau C._ Ingénieurs-Conseils SA. Dans son rapport du 18 décembre 1997, l'expert est arrivé à la conclusion que les travaux réalisés représentaient 20 863 fr. pour le chauffage et 9485 fr. pour les sanitaires, soit 30 348 fr. au total, indépendamment d'éventuels rabais et escompte. B.b Le 3 mars 1998, B._ a introduit contre A._ une action en paiement de 15 948 fr., plus intérêts, soit 10 948 fr. - correspondant à la valeur des travaux exécutés à dire d'expert après déduction de l'acompte de 19 400 fr. - et 5000 fr. à titre de dommages-intérêts. Une nouvelle expertise judiciaire a été ordonnée. Elle a été confiée à D._, du Bureau d'études Chauffage - Ventilation - Climatisation. L'expert a estimé la valeur des travaux sanitaires à 3580 fr.; il n'a pas évalué les travaux de chauffage, soulignant toutefois que l'acompte de 19 400 fr. couvrait largement les prestations fournies par l'entrepreneur. Par jugement du 8 janvier 2003, le Tribunal civil du district de Boudry a condamné A._ à payer à B._ 12 423 fr. avec intérêts à 5% dès le 3 mars 1998; ce montant correspond à 28 848 fr. pour les travaux exécutés et 2975 fr. à titre de dommages-intérêts, moins 19 400 fr. d'acompte. Par arrêt du 20 juin 2003, la Cour de cassation civile du Tribunal cantonal du canton de Neuchâtel a rejeté le recours déposé par la défenderesse. Par arrêt du 20 juin 2003, la Cour de cassation civile du Tribunal cantonal du canton de Neuchâtel a rejeté le recours déposé par la défenderesse. C. A._ interjette un recours en réforme au Tribunal fédéral. A titre principal, elle conclut à la réforme de l'arrêt attaqué en ce sens que la demande est rejetée. Elle demande subsidiairement le renvoi de la cause à l'autorité cantonale. B._ propose le rejet du recours. Par arrêt de ce jour, le recours de droit public formé parallèlement par A._ a été rejeté dans la mesure où il était recevable.