[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"blog-post-mes-integration-retro-en":3,"blog-adjacent-mes-integration-retro-en":30,"blog-related-mes-integration-retro-en":65},{"id":4,"slug":5,"title":6,"excerpt":7,"content":8,"cover":9,"tone":10,"author":11,"publishedAt":12,"updatedAt":12,"readingMinutes":13,"featured":14,"tags":15,"category":19,"seoSettings":29},71,"mes-integration-retro","Retrospective: Integrating ERP With MES","The hard part of integration is not the interface, but getting two departments to agree on what a field means.","\u003Cp>The client, an equipment manufacturer, wanted work orders synced from ERP to MES and completion data sent back. Planned at six weeks, it took eleven, and nearly all the extra time went into agreeing on field meanings.\u003C\u002Fp>\n\u003Ch2>Three sticking points\u003C\u002Fh2>\n\u003Cp>Status mismatch: ERP had seven states, MES had four, and the mapping was debated for two weeks.\u003C\u002Fp>\n\u003Cp>Batch numbering conflict: both systems generated batch numbers in different formats that could not be matched.\u003C\u002Fp>\n\u003Cp>Unstable shop-floor network: some areas had poor signal and failed uploads had no retry, so data was lost.\u003C\u002Fp>\n\u003Ch2>How we resolved it\u003C\u002Fh2>\n\u003Cp>A joint on-site workshop mapped each of the seven states to the four, with exceptions handled manually.\u003C\u002Fp>\n\u003Cp>ERP became the sole source of batch numbers and MES only referenced them, removing the double key.\u003C\u002Fp>\n\u003Cp>MES gained a local queue that retries uploads when the network recovers, with a log of each replay.\u003C\u002Fp>\n\u003Cp>Manufacturing projects are decided on the shop floor. Watching one real transaction beats debating status codes in a meeting room.\u003C\u002Fp>","","cyan","佳益方圆团队","2026-10-01T10:13:00+08:00",1,false,[16,17,18],"Retrospective","Manufacturing","Integration",{"id":20,"parentId":21,"slug":22,"name":23,"description":24,"icon":25,"cover":9,"tone":26,"kind":27,"sortOrder":28,"count":21},3,0,"project-retrospective","Project Retrospectives","Real project records from zero to one, covering problems, solutions, lessons learned and final outcomes.","clipboard-check","blue","article",40,{},{"previous":31,"next":48},{"id":32,"slug":33,"title":34,"excerpt":35,"content":9,"cover":9,"tone":26,"author":11,"publishedAt":36,"updatedAt":36,"readingMinutes":13,"featured":14,"tags":37,"category":41},51,"mvp-boundary","Drawing the Boundary of an MVP","Minimum viable is not the fewest features; it is one complete business loop running end to end.","2026-10-03T10:13:00+08:00",[38,39,40],"MVP","Product","Requirements",{"id":42,"parentId":21,"slug":43,"name":44,"description":45,"icon":46,"cover":9,"tone":26,"kind":27,"sortOrder":47,"count":21},2,"product-thinking","Product Thinking","Requirement analysis, user experience and product design methods, plus the thinking from business problems to product solutions.","lightbulb",50,{"id":49,"slug":50,"title":51,"excerpt":52,"content":9,"cover":9,"tone":10,"author":11,"publishedAt":53,"updatedAt":53,"readingMinutes":13,"featured":14,"tags":54,"category":58},90,"what-code-review-is-for","What Code Review Is Really For","Review is not fault-finding. It is letting another mind walk through your code.","2026-09-29T10:13:00+08:00",[55,56,57],"Team Culture","Code Review","Engineering Practice",{"id":59,"parentId":21,"slug":60,"name":61,"description":62,"icon":63,"cover":9,"tone":26,"kind":27,"sortOrder":64,"count":21},4,"team-culture","Team and Culture","Company events, tech sharing, team building and hiring culture that show the daily life of the Jiayifangyuan team.","users",30,[66,77,88],{"id":67,"slug":68,"title":69,"excerpt":70,"content":9,"cover":9,"tone":71,"author":11,"publishedAt":72,"updatedAt":72,"readingMinutes":13,"featured":14,"tags":73,"category":76},70,"gov-project-acceptance","Retrospective: Why Acceptance Took Half a Year","The system was live for months while acceptance stalled. The causes were documents, process and communication, not software.","indigo","2026-10-13T09:00:00+08:00",[16,74,75],"Government","Acceptance",{"id":20,"parentId":21,"slug":22,"name":23,"description":24,"icon":25,"cover":9,"tone":26,"kind":27,"sortOrder":28,"count":21},{"id":78,"slug":79,"title":80,"excerpt":81,"content":9,"cover":9,"tone":82,"author":11,"publishedAt":83,"updatedAt":83,"readingMinutes":13,"featured":14,"tags":84,"category":87},72,"cross-border-site-retro","Retrospective: Traffic Arrived, Enquiries Did Not","Ads ran normally after launch but enquiries stayed low. The review found trust and form friction were the blockers.","teal","2026-09-19T11:26:00+08:00",[16,85,86],"Cross-border","Conversion",{"id":20,"parentId":21,"slug":22,"name":23,"description":24,"icon":25,"cover":9,"tone":26,"kind":27,"sortOrder":28,"count":21},{"id":89,"slug":90,"title":91,"excerpt":92,"content":9,"cover":9,"tone":26,"author":11,"publishedAt":93,"updatedAt":93,"readingMinutes":13,"featured":14,"tags":94,"category":97},73,"miniapp-launch-retro","Retrospective: Launch Day Is Not the Finish Line","Users arrived on launch day and so did the problems. We now include post-launch operations in scope.","2026-09-07T12:39:00+08:00",[16,95,96],"Mini Program","Operations",{"id":20,"parentId":21,"slug":22,"name":23,"description":24,"icon":25,"cover":9,"tone":26,"kind":27,"sortOrder":28,"count":21}]