Faits :
A.
Dès le 1er septembre 2003, Z._ a travaillé au service de Coopérative X._, à Neuchâtel, en qualité de responsable administrative et de gestion. Elle était membre de la coopérative et elle en a intégré le conseil d'administration dès 2007. Le 1er avril 2010, la coopérative l'a licenciée avec effet au 31 octobre suivant, et elle l'a libérée de l'obligation de travailler dans l'intervalle. Z._ s'est opposée à ce congé qu'elle tenait pour abusif. Elle percevait alors un salaire annuel brut au montant de 90'285 fr. pour un taux d'activité de 80%.
Le 25 août 2011, Z._ a ouvert action contre la coopérative devant le Tribunal civil de l'arrondissement du Littoral neuchâtelois et du Val-de-Travers. La défenderesse devait être condamnée à payer 44'039 fr.50 à titre d'indemnité pour licenciement abusif et 6'000 fr. pour rémunération d'heures de travail supplémentaires, le tout avec intérêts au taux de 5% par an dès le 1er novembre 2010.
La défenderesse a conclu au rejet de l'action.
Le tribunal a interrogé les parties ou leurs représentants, et il a recueilli divers témoignages.
Il s'est ensuite prononcé le 26 août 2016. Il a retenu que le congé était abusif et il a alloué à la demanderesse une indemnité chiffrée à 30'095 fr., montant net, correspondant à quatre mois de salaire, avec intérêts au taux de 5% par an dès le 1er novembre 2010. Pour le surplus, le tribunal a rejeté l'action.
La Cour d'appel civile du Tribunal cantonal a statué le 15 mars 2017 sur l'appel de la défenderesse. Elle a rejeté cet appel et confirmé le jugement.
B.
Agissant par la voie du recours en matière civile, la défenderesse requiert le Tribunal fédéral de rejeter entièrement l'action. Des conclusions subsidiaires tendent à l'annulation de l'arrêt de la Cour d'appel et au renvoi de la cause à cette autorité pour nouvelle décision.
La demanderesse conclut au rejet du recours.
Les parties ont spontanément déposé une réplique et une duplique.

Considérant en droit :
1.
Les conditions de recevabilité du recours en matière civile sont satisfaites; en particulier, la valeur litigieuse dépasse le minimum de 15'000 fr. exigé en matière de droit du travail (<ref-law>).
2.
Le recours est ouvert pour violation du droit fédéral (<ref-law>). Le Tribunal fédéral doit conduire son raisonnement juridique sur la base des faits constatés dans la décision attaquée (<ref-law>); il peut toutefois compléter ou rectifier même d'office les constatations de fait qui se révèlent manifestement inexactes, c'est-à-dire arbitraires aux termes de l'art. 9 Cst. (<ref-law>; <ref-ruling> consid. 1.3.1 p. 253; <ref-ruling> consid. 2.3 p. 266; <ref-ruling> consid. 4.1.2 p. 62). La partie recourante est autorisée à attaquer des constatations de fait ainsi irrégulières si la correction du vice est susceptible d'influer sur le sort de la cause (<ref-law>). Il lui incombe alors d'indiquer de façon précise en quoi les constatations critiquées sont contraires au droit ou entachées d'une erreur indiscutable; les critiques dites appellatoires, tendant simplement à une nouvelle appréciation des preuves, sont irrecevables (<ref-ruling> consid. 1.4.3 p. 254; voir aussi <ref-ruling> consid. 1.3.1 p. 253; <ref-ruling> consid. 2.3 p. 266; <ref-ruling> consid. 4.1.2 p. 62).
3.
Il est constant que les parties se sont liées par un contrat de travail de durée indéterminée, librement résiliable par chacune d'elles conformément à l'<ref-law>, moyennant le respect du délai et du terme de congé convenus ou légaux.
La résiliation ordinaire du contrat de travail est abusive lorsqu'elle intervient dans l'une des situations énumérées à l'<ref-law>, lesquelles se rapportent aux motifs de la partie qui résilie. Cette disposition restreint, pour chaque cocontractant, le droit de mettre unilatéralement fin au contrat (<ref-ruling> consid. 2.3 p. 514/515; <ref-ruling> consid. 2.4 p. 118; <ref-ruling> consid. 4.2 p. 539 in medio). Lorsque l'une des parties a résilié abusivement, l'art. 336a al. 1 et 2 CO autorise l'autre partie à réclamer une indemnité dont le juge fixe librement le montant en tenant compte de toutes les circonstances; cette indemnité ne peut toutefois pas excéder l'équivalent de six mois de salaire.
L'énumération de l'<ref-law> n'est pas exhaustive et un abus du droit de résiliation peut se révéler aussi dans d'autres situations qui apparaissent comparables, par leur gravité, aux hypothèses expressément visées (<ref-ruling> ibidem; <ref-ruling> consid. 2 p. 116; <ref-ruling> consid. 4 p. 537). Ainsi, lorsque le caractère difficile d'un travailleur engendre une situation conflictuelle dans l'entreprise, préjudiciable à l'accomplissement du travail, l'employeur ne peut licencier ce travailleur qu'après avoir introduit sans succès les autres mesures que l'on pouvait raisonnablement attendre de lui en vue d'améliorer la situation, telles que des modifications de son organisation ou des instructions adressées aux autres travailleurs. L'<ref-law> impose à l'employeur de respecter et de protéger la personnalité du travailleur; si l'employeur omet ces mesures ou s'il se contente de démarches insuffisantes et qu'il procède néanmoins au licenciement, il viole son obligation de protéger la personnalité du travailleur et le licenciement est alors abusif. En raison de la finalité du droit de résiliation, d'une part, et de la disproportion des intérêts en présence, d'autre part, le licenciement peut également être tenu pour abusif lorsqu'il répond à un motif de simple convenance personnelle de l'employeur (ATF <ref-ruling> consid. 2 p. 116; ATF <ref-ruling> consid. 4 p. 537; <ref-ruling> consid. 2 p. 72).
L'abus n'est pas obligatoirement inhérent au motif de la résiliation; il peut également surgir dans ses modalités. La partie qui veut mettre fin au contrat, même pour un motif légitime, doit exercer son droit avec des égards et s'abstenir de tout comportement biaisé ou trompeur. Une violation manifeste du devoir imposé par l'<ref-law>, en relation avec le licenciement, peut caractériser l'abus. Par contre, un comportement de l'employeur simplement discourtois ou indélicat est insuffisant car il ne ressortit pas à l'ordre juridique de sanctionner ces attitudes (mêmes arrêts).
Le motif de la résiliation relève du fait et il incombe en principe au travailleur d'apporter la preuve d'un motif abusif; le juge peut cependant présumer un abus lorsque le motif avancé par l'employeur semble mensonger et que celui-ci ne parvient pas à en apporter la confirmation (<ref-ruling> consid. 4.1 p. 702/703).
4.
Devant le Tribunal civil, la défenderesse a soutenu que la demanderesse a été licenciée parce qu'elle avait commis de graves erreurs dans l'exécution de ses tâches et qu'elle entretenait de mauvaises relations avec le bureau du conseil d'administration, d'une part, et avec une autre collaboratrice qui lui était subordonnée, d'autre part. Selon le jugement du Tribunal civil, ces motifs sont fallacieux; en réalité, la défenderesse a résilié le contrat parce que la demanderesse avait dénoncé et critiqué les comportements déloyaux, préjudiciables à la coopérative, et plus tard avérés dans une poursuite pénale, de trois autres membres du conseil d'administration; ce motif réel était jugé abusif. Selon l'arrêt de la Cour d'appel, l'animosité entre la demanderesse et d'autres administrateurs « apparaît clairement »; néanmoins, la critique de leurs comportements déloyaux a « peut-être joué un certain rôle en arrière-plan » mais elle ne se trouve pas à l'origine du licenciement. Les juges d'appel apprécient différemment les preuves et ils nient le lien de causalité retenu par le premier juge. Selon leur arrêt, le congé est contraire aux art. 328 al. 1 et 336 al. 1 CO parce que les erreurs reprochées à la demanderesse, prétendument survenues dans l'exécution de ses tâches, sont en réalité inexistantes ou insignifiantes, et que de plus, cette partie n'a pas joui d'une possibilité suffisante de s'expliquer et de se justifier.
5.
Devant le Tribunal fédéral, la défenderesse reproche à la Cour d'appel d'avoir fondé sa décision sur un motif qui n'avait pas été évoqué au cours de la procédure, dont aucune des parties ne s'était prévalue et dont nul ne pouvait supputer la pertinence; ainsi, la Cour a prétendument violé le droit d'être entendu garanti à tout plaideur par l'art. 29 al. 2 Cst. (cf. <ref-ruling> consid. 1b p. 96/97; voir aussi <ref-ruling> consid. 5.4.1 p. 26; <ref-ruling> consid. 2.2 p. 505). Ce grief est voué au rejet car déjà dans le jugement de première instance, le Tribunal civil avait discuté de manière détaillée les erreurs imputées à la demanderesse et le processus par lequel le conseil d'administration est parvenu à la décision de résilier le contrat de travail; la défenderesse pouvait donc s'attendre à ce que ces éléments fussent discutés par la Cour d'appel aussi.
6.
Le conseil d'administration s'est réuni en séance extraordinaire le 15 décembre 2009; la demanderesse était alors excusée pour cause de maladie. Le conseil a alors décidé de la licencier pour le plus proche terme possible, de lui retirer le droit de signature sociale, de la suspendre du conseil avec effet immédiat, et, aussi avec effet immédiat, de l'exclure de la coopérative. Selon l'arrêt de la Cour d'appel, le procès-verbal de cette séance n'a pas été produit. En instance fédérale, la défenderesse signale avec raison une inadvertance sur ce point. Présent au dossier, le procès-verbal atteste sans ambiguïté de l'opinion défavorable du président et d'un autre membre du conseil à l'encontre de la demanderesse. Pour le surplus, le document ne révèle rien de concret au sujet des motifs du licenciement et il n'indique pas non plus si, quand et de quelle manière, le cas échéant, l'employée licenciée a été mise en mesure de s'expliquer. Ainsi, le procès-verbal est inapte à invalider les constatations de fait de la Cour d'appel, et la correction réclamée devant le Tribunal fédéral est insusceptible d'influer sur le sort de la cause.
Pour le surplus, la défenderesse ne prétend pas avoir apporté la preuve d'erreurs commises par la demanderesse dans l'exécution de ses tâches, suffisamment graves ou répétées pour rompre l'indispensable lien de confiance entre les parties au contrat de travail. La défenderesse explique seulement de quelle manière la collaboratrice subordonnée à la demanderesse et une autre employée ont critiqué la demanderesse et son travail lors de trois entretiens avec le président et d'autres membres du conseil d'administration, entretiens auxquels la demanderesse n'était pas conviée et dont il ne subsiste aucun procès-verbal. Les témoignages ont confirmé ces entretiens.
La Cour d'appel constate que le bureau du conseil s'est entretenu avec la demanderesse le 12 décembre 2009, qu'il lui a signifié oralement des reproches et qu'il l'a placée devant le choix de démissionner elle-même ou d'être licenciée. La demanderesse a alors demandé de pouvoir s'expliquer dans une séance plénière du conseil. Cette séance a eu lieu trois jours plus tard, le 15 décembre; la demanderesse s'est alors fait excuser en produisant un certificat médical. On a vu que lors de cette séance, le conseil a décidé de résilier le contrat de travail. La demanderesse a ensuite protesté par lettres du 20 et du 22 décembre 2009 adressées à tous les membres du conseil; la défenderesse fait état de ces démarches écrites pour soutenir que son employée a ainsi eu l'occasion de s'expliquer mais qu'elle n'est pas parvenue à convaincre les administrateurs de revenir sur leur décision. Les arguments de fait ainsi développés devant le Tribunal fédéral ne révèlent aucune erreur ni omission flagrante dans les constatations de la Cour d'appel, lesquelles reposent sur une discussion approfondie des témoignages et des autres dépositions présents au dossier; il n'y a donc pas lieu à rectification ni à complètement selon l'<ref-law>.
7.
Dans son appréciation juridique des faits, la Cour d'appel s'est surtout référée à la cause d'une auxiliaire de santé employée dans un établissement médico-social, dont le Tribunal fédéral a jugé le licenciement abusif; l'employeuse avait congédié cette travailleuse en raison d'une grave accusation de vol, sur la base d'une dénonciation sujette à caution, sans avoir procédé à toutes les vérifications qui s'imposaient et sans avoir mis la travailleuse en mesure de défendre efficacement sa position et son honneur (arrêt 4A_694/2015 du 4 mai 2016). La défenderesse relève avec raison que le cas de la demanderesse est différent en ce sens que celle-ci n'a pas été accusée, elle, d'un comportement pénalement répréhensible ni contraire à l'honneur. Néanmoins, il demeure que les erreurs prétendument commises par la demanderesse et prétendument à l'origine de son licenciement n'ont pas été établies dans le procès, et qu'il existait un climat d'animosité entre elle et d'autres membres du conseil d'administration, avec parmi eux son président. Au regard de la jurisprudence topique ci-mentionnée et sans abuser de leur pouvoir d'appréciation, les juges d'appel pouvaient retenir que le congé n'était justifié que par de simples prétextes; qu'il répondait présumablement, en réalité, à des motifs d'inimitié personnelle internes au conseil d'administration, et qu'il était par conséquent abusif aux termes de l'<ref-law>. Dans son résultat au moins, l'arrêt attaqué se révèle conforme à cette disposition; il n'est pas nécessaire de vérifier si sa motivation résiste en tous points aux critiques de la défenderesse.
8.
Selon l'art. 336a al. 1 et 2 CO, la partie qui a résilié abusivement doit à l'autre une indemnité à fixer par le juge et correspondant à six mois de salaire au plus. Le montant doit être évalué selon les règles du droit et de l'équité, conformément à l'<ref-law>. Il faut notamment prendre en considération la gravité de la faute commise par l'employeur, une éventuelle faute concomitante du travailleur, la gravité de l'atteinte à sa personnalité, son âge, la durée et l'intensité de la relation de travail, les effets du licenciement et les difficultés de réinsertion dans la vie économique (<ref-ruling> consid. 3; voir aussi <ref-ruling> consid. 6a p. 255).
Le Tribunal fédéral ne contrôle qu'avec retenue une décision de dernière instance cantonale prise en équité. Il intervient lorsque le prononcé s'écarte sans raison des règles établies par la doctrine et la jurisprudence en matière de libre appréciation, ou lorsqu'il repose sur des faits qui, dans le cas particulier, ne devaient jouer aucun rôle, ou encore lorsqu'il méconnaît des éléments qui auraient absolument dû être pris en considération; en outre, le Tribunal fédéral redresse les décisions rendues en vertu d'un pouvoir d'appréciation lorsqu'elles aboutissent à un résultat manifestement injuste ou à une iniquité choquante (<ref-ruling> consid. 2.1.1 p. 305; <ref-ruling> consid. 4.1 p. 32; <ref-ruling> consid. 3.1 p. 220).
Selon les constatations déterminantes, la demanderesse était âgée de quarante-huit ans lors du congé mais elle n'a pas subi de conséquences économiques particulières ni de difficultés de réinsertion professionnelle. Elle a été dispensée de travailler durant un délai de congé de six mois. Elle a subi une période d'incapacité de travail causée par une maladie qui paraissait directement liée au congé. Elle n'a commis aucune faute tandis qu'une faute de gravité « à tous le moins moyenne » est imputable à la défenderesse. En conséquence, la Cour d'appel confirme l'indemnité correspondant à quatre mois de salaire allouée par le Tribunal civil.
L'auxiliaire de santé accusée de vol (arrêt ci-mentionné 4A_694/2015) a elle aussi obtenu une indemnité de quatre mois de salaire. A l'appui du recours en matière civile, la défenderesse expose avec raison que la demanderesse a subi une atteinte à la personnalité notablement moins grave que celle infligée à cette travailleuse-là. Néanmoins, cette comparaison ne suffit pas à mettre en évidence un abus du pouvoir d'appréciation reconnu à la juridiction cantonale. En particulier, l'auxiliaire de santé n'avait pas contesté l'indemnité allouée par le jugement de première instance; seule l'employeuse avait attaqué ce jugement, obtenu gain de cause en appel puis succombé devant le Tribunal fédéral. Or, on ne saurait absolument exclure que l'autre partie eût pu prétendre à une indemnité plus importante.
9.
Le recours se révèle privé de fondement, ce qui conduit à son rejet. A titre de partie qui succombe, son auteur doit acquitter l'émolument à percevoir par le Tribunal fédéral et les dépens auxquels l'autre partie peut prétendre.

Par ces motifs, le Tribunal fédéral prononce :
1.
Le recours est rejeté.
2.
La défenderesse acquittera un émolument judiciaire de 2'000 francs.
3.
La défenderesse versera une indemnité de 2'500 fr. à la demanderesse, à titre de dépens.
4.
Le présent arrêt est communiqué aux parties et au Tribunal cantonal du canton de Neuchâtel.
Lausanne, le 14 février 2018
Au nom de la Ire Cour de droit civil
du Tribunal fédéral suisse
La présidente : Kiss
Le greffier : Thélin