Faits: A. A._ SA a exécuté divers travaux, surtout de fouille et de terrassement, sur un bien-fonds de Colombier où B._ et C._ faisaient ériger une villa. Le 23 octobre 2003, elle avait conclu avec eux un contrat d'entreprise portant sur le code des frais de construction 201 « fouilles en pleine masse » au prix de 35'196 fr.30, taxes comprises. Ce contrat précisait que « tous les prix » étaient fixes et valables jusqu'à la fin du chantier, qu'aucune plus-value ne serait acceptée et que pour tout travail non compris dans le libellé convenu, une offre complémentaire devrait être soumise à la direction des travaux, un avenant au contrat devrait être établi et l'offre devrait être acceptée avant le commencement de ce travail. La forme écrite, « soit par le procès-verbal, soit par lettre séparée », serait requise pour toute commande de travail en régie. Les maîtres de l'ouvrage ont acquitté une facture au montant de 42'711 fr.25, en opérant toutefois, semble-t-il, une retenue de dix pour cent. Le 31 mai 2006, alors que les travaux avaient pris fin à l'automne de 2004, l'entreprise a présenté une deuxième facture au montant de 45'615 fr.65. Les maîtres de l'ouvrage se sont refusés à tout paiement supplémentaire. B. Le 4 juin 2007, A._ SA a ouvert action contre B._ et C._ devant le Tribunal cantonal du canton de Neuchâtel. Les défendeurs devaient être condamnés à payer solidairement 45'615 fr.65 avec intérêts au taux de 5% par an dès le 30 juin 2006. Les défendeurs ont conclu au rejet de l'action. Sur la base d'une expertise judiciaire, la Ire Cour civile du Tribunal cantonal s'est prononcée par un jugement du 23 décembre 2010. Accueillant partiellement l'action, elle a condamné les défendeurs à payer solidairement 11'796 fr.65, avec intérêts au taux de 5% par an dès le 27 septembre 2006. C. Agissant par la voie du recours en matière civile, la demanderesse saisit le Tribunal fédéral de conclusions identiques à celles déjà prises devant le Tribunal cantonal. Les défendeurs concluent au rejet du recours. D. Par arrêt du 31 mars 2011, le Tribunal fédéral a prononcé que le recours est recevable au regard de l'art. 75 al. 1 de la loi fédérale sur le Tribunal fédéral (LTF); pour le surplus, il a renvoyé la cause au juge rapporteur.