Meta tags:
Headings (most frequently used words):
the, of, topics, about, me, content, thoughtworks, follow, fragments, local, models, for, coding, website, on, building, software, effectively, recent, changes, photostream, data, management, domain, specific, languages, books, conference, talks, board, games, tags, august, conductor, developer, economic, benefit, refactoring, orchestrator, tax, why, writing, rachel, ramblings, july, 21, archaeologist, copilot, dsls, enable, reliable, use, llms, experiences, with, viability,
Text of the page (most frequently used words):
the (63), and (36), software (28), that (27), for (20), more (17), this (16), about (11), 2026 (11), data (10), #refactoring (10), with (10), agile (9), architecture (9), llms (9), how (9), jul (9), edt (9), can (9), when (9), are (8), #domain (8), writing (8), changes (8), board (7), games (7), they (7), need (7), development (7), out (6), tue (6), use (6), but (6), language (6), change (6), also (6), design (6), needs (6), thoughtworks (5), content (5), videos (5), books (5), dsl (5), testing (5), delivery (5), programming (5), most (5), what (5), build (5), been (5), team (5), patterns (5), talks (5), which (5), fragments (4), microservices (4), local (4), code (4), specific (4), dsls (4), system (4), orchestrator (4), new (4), page (4), enterprise (4), while (4), good (4), both (4), has (4), our (4), into (4), make (4), techniques (4), site (4), bluesky (3), linkedin (3), mastodon (3), rss (3), engineering (3), photography (3), some (3), time (3), coding (3), now (3), recent (3), using (3), clear (3), languages (3), llm (3), modernization (3), environment (3), was (3), not (3), process (3), analysis (3), tests (3), useful (3), have (3), haven (3), should (3), large (3), like (3), website (3), technical (3), collaboration (3), continuous (3), conference (3), application (3), any (3), there (3), one (3), learn (3), product (3), making (3), practices (3), articles (3), martin (2), fowler (2), bgg (2), follow (2), radar (2), careers (2), insights (2), home (2), index (2), faq (2), topics (2), trying (2), tasks (2), she (2), birgitta (2), böckeler (2), models (2), reports (2), experiences (2), them (2), two (2), model (2), day (2), generate (2), from (2), distributed (2), behavior (2), such (2), act (2), systems (2), world (2), people (2), think (2), legacy (2), java (2), run (2), codebase (2), answers (2), hold (2), evidence (2), stable (2), practical (2), step (2), thu (2), between (2), why (2), subagents (2), token (2), context (2), its (2), value (2), giving (2), helps (2), may (2), possible (2), economic (2), benefit (2), developer (2), you (2), post (2), material (2), all (2), 2000 (2), web (2), uml (2), tools (2), planning (2), style (2), technique (2), nosql (2), culture (2), architectures (2), conferences (2), long (2), modern (2), many (2), often (2), give (2), own (2), written (2), problem (2), complex (2), complicated (2), way (2), programmers (2), easily (2), custom (2), within (2), applications (2), their (2), respond (2), coping (2), role (2), management (2), runs (2), only (2), isn (2), providing (2), customers (2), quickly (2), allowing (2), teams (2), automated (2), first (2), allow (2), program (2), small (2), developers (2), significant (2), conceived (2), important (2), able (2), features (2), easy (2), understand (2), production (2), developed (2), put (2), rapidly (2), began (2), last (2), allows (2), users (2), profession (2), these (2), still (2), building (2), effectively (2), wider (2), colleagues (2), disclosures, recently, spent, running, memo, outlines, factors, influence, viable, job, viability, her, compares, standard, tries, promising, wed, incredibly, fast, ensure, exactly, intended, boundaries, abstractions, provide, strong, harness, guides, right, start, describes, example, tickloom, illustrating, partner, iteratively, natural, interface, key, source, truth, shows, unmesh, joshi, enable, reliable, folks, aren, imagining, target, will, challenge, facing, needed, today, hardware, his, early, gave, plausible, did, progress, came, grounded, support, validation, docker, gradual, protected, main, takeaway, constrained, roles, strategy, nik, malykhin, archaeologist, copilot, mismatched, views, suite, comparing, dotcom, bubbles, law, professors, prefer, stench, speak, july, ideas, promise, myself, rachel, ramblings, get, justified, saved, parallel, execution, explains, matters, every, competing, attention, real, subagent, keeps, treated, tool, protecting, working, memory, offloading, reasoning, doesn, onto, doing, well, means, explicit, ground, rules, delegate, rahul, garg, tax, does, experiment, see, decomposing, function, reduce, costs, suggesting, measure, giles, edwards, alexander, starting, feel, little, conducting, orchestra, fri, conductor, responsibility, rogue, agents, indicators, bubble, bursting, dread, praise, gov, getting, closed, packages, eyes, clacton, aug, august, notified, subscribe, feed, announcements, dedicated, twitter, fediverse, 1996, 1997, 1998, 1999, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023, 2024, 2025, services, version, control, travel, test, categories, leadership, debt, organization, talk, security, ruby, requirements, boundary, recruiting, project, environments, productivity, theory, privacy, presentation, podcast, platforms, parser, generators, object, mobile, metrics, legal, lean, workbench, feature, interviews, internet, infodecks, ieeesoftware, generative, gadgets, front, end, extreme, expositional, experience, evolutionary, event, estimation, encapsulation, domestic, driven, documentation, diversity, diversions, computing, magazine, dictionary, database, mesh, analytics, covid, panels, computer, history, certification, scripting, bad, things, integration, adoption, api, tags, fan, enjoy, game, fully, occupies, mind, clearing, serious, thoughts, bit, enjoying, company, friends, saw, dramatic, improvement, 1990, rise, eurogames, expect, would, surprised, tried, generation, appear, regularly, heavy, cardboard, asked, inferred, pretty, speaker, ironic, since, really, hate, form, your, opinion, watching, seven, including, distilled, editor, signature, series, addison, wesley, includes, five, jolt, award, winners, common, capture, logic, manipulate, communicate, experts, create, particular, either, parsers, conventions, host, kinds, kind, primarily, engaged, enduring, problems, tackle, aspects, managment, focused, here, migrate, stores, changing, different, contexts, across, databases, broader, issues, big, messy, san, francisco, photostream, machine, traditionally, releasing, hinders, evolve, uses, automation, collaborative, workflows, remove, bottleneck, release, demand, solid, foundation, range, confidence, introduced, bugs, leads, integrate, improve, creating, something, done, prose, regular, revisions, best, achieve, goals, essential, changed, safely, consists, don, alter, observable, combining, lots, revise, structure, supporting, modifications, weren, planned, fluently, impact, upon, built, adapt, unexpected, ways, write, supposed, divided, modules, parts, supported, detect, errors, made, examples, internal, structures, used, efforts, find, architectural, deploy, less, entangling, dependencies, becomes, critical, business, react, 1990s, became, steadily, popular, decade, focus, flexible, approach, products, direction, managers, effective, widely, accepted, approaches, requiring, skills, importantly, open, partners, theme, through, work, interplay, shift, towards, thinking, specifics, technology, fundamental, several, years, old, relevant, were, photo, christopher, ferguson, joined, where, learned, deliver, clients, pass, industry, respected, platform, edited, published, thoughtworkers, others, help, reach, audience, young, learning, involved, activity, over, three, decades, easier, place, publish, martinfowler, com,
Text of the page (random words):
martinfowler com refactoring agile architecture about thoughtworks topics architecture refactoring agile delivery microservices data testing dsl about me about books faq content videos content index fragments board games photography thoughtworks home insights careers radar engineering follow rss mastodon linkedin bluesky x bgg software development is a young profession and we are still learning the techniques and building the tools to do it effectively i ve been involved in this activity for over three decades and in the last two i ve been writing on this website about patterns and practices that make it easier to build useful software the site began as a place to put my own writing but i also use it to publish articles by my colleagues in 2000 i joined thoughtworks where my role is to learn about the techniques that we ve learned to deliver software for our clients and pass these techniques on to the wider software industry as this site has developed into a respected platform on software development i ve edited and published articles by my colleagues both thoughtworkers and others to help useful writing reach a wider audience photo christopher ferguson martin fowler a website on building software effectively if there s a theme that runs through my work and writing on this site it s the interplay between the shift towards agile thinking and the technical patterns and practices that make agile software development practical while specifics of technology change rapidly in our profession fundamental practices and patterns are more stable so writing about these allows me to have articles on this site that are several years old but still as relevant as when they were written as software becomes more critical to modern business software needs to be able to react quickly to changes allowing new features to be conceived developed and put into production rapidly the techniques of agile software development began in the 1990s and became steadily more popular in the last decade they focus on a flexible approach to planning which allows software products to change direction as the users needs change and as product managers learn more about how to make their users effective while widely accepted now agile approaches are not easy requiring significant skills for a team but more importantly a culture of open collaboration both within the team and with a team s partners this need to respond fluently to changes has an important impact upon the architecture of a software system the software needs to be built in such a way that it is able to adapt to unexpected changes in features one of the most important ways to do this is to write clear code making it easy to understand what the program is supposed to do this code should be divided into modules which allow developers to understand only the parts of the system they need to make a change this production code should be supported with automated tests that can detect any errors made when making a change while providing examples of how internal structures are used large and complex software efforts may find the microservices architectural style helps teams deploy software with less entangling dependencies creating software that has a good architecture isn t something that can be done first time like good prose it needs regular revisions as programmers learn more about what the product needs to do and how best to design the product to achieve its goals refactoring is an essential technique to allow a program to be changed safely it consists of making small changes that don t alter the observable behavior of the software by combining lots of small changes developers can revise the software s structure supporting significant modifications that weren t planned when the system was first conceived software that runs only on a developer s machine isn t providing value to the customers of the software traditionally releasing software has been a long and complicated process one that hinders the need to evolve software quickly continuous delivery uses automation and collaborative workflows to remove this bottleneck allowing teams to release software as often as the customers demand for continuous delivery to be possible we need to build in a solid foundation of testing with a range of automated tests that can give us confidence that our changes haven t introduced any bugs this leads us to integrate testing into programming which can act to improve our architecture photostream san francisco data management there are many kinds of software out there the kind i m primarily engaged is enterprise applications one of the enduring problems we need to tackle in this world is data management the aspects of data managment i ve focused on here are how to migrate data stores as their applications respond to changing needs coping with different contexts across a large enterprise the role of nosql databases and the broader issues of coping with data that is both big and messy domain specific languages a common problem in complex software systems is how to capture complicated domain logic in a way that programmers can both easily manipulate and also easily communicate to domain experts domain specific languages dsls create a custom language for a particular problem either with custom parsers or by conventions within a host language books i ve written seven books on software development including refactoring patterns of enterprise application architecture and uml distilled i m also the editor of a signature series for addison wesley that includes five jolt award winners my books page conference talks i m often asked to give talks at conferences from which i ve inferred that i m a pretty good speaker which is ironic since i really hate giving talks you can form your own opinion of my talks by watching videos of some my conference talks my videos page board games i ve long been a fan of board games i enjoy a game that fully occupies my mind clearing out all the serious thoughts for a bit while enjoying the company of good friends modern board games saw dramatic improvement in the 1990 s with the rise of eurogames and i expect many people would be surprised if they haven t tried any of this new generation i also appear regularly on heavy cardboard my board games page tags api design agile agile adoption analysis patterns application architecture application integration bad things board games build scripting certification collaboration computer history conference panels conferences continuous delivery covid 19 data analytics data mesh database design dictionary distributed computing magazine diversions diversity documentation domain driven design domain specific language domestic encapsulation enterprise architecture estimation event architectures evolutionary design experience reports expositional architectures extreme programming front end gadgets generative ai ieeesoftware infodecks internet culture interviews language feature language workbench lean legacy modernization legal metrics microservices mobile nosql object collaboration design parser generators photography platforms podcast presentation technique privacy process theory productivity programming environments programming style project planning recruiting refactoring refactoring boundary requirements analysis ruby security talk videos team environment team organization technical debt technical leadership test categories testing thoughtworks tools travel uml version control web development web services website writing 2026 2025 2024 2023 2022 2021 2020 2019 2018 2017 2016 2015 2014 2013 2012 2011 2010 2009 2008 2007 2006 2005 2004 2003 2002 2001 2000 1999 1998 1997 1996 all content recent changes if you d like to be notified when i post new material subscribe to my rss feed i also post announcements of new material to fediverse mastodon bluesky linkedin and x twitter i also have a page dedicated to recent changes fragments august 4 tue 04 aug 2026 08 08 edt responsibility for rogue agents indicators of a bubble bursting dread of ai praise for gov uk getting data out of closed packages eyes on clacton more the conductor developer fri 31 jul 2026 09 48 edt why i think software development is starting to feel a little more like conducting an orchestra more the economic benefit of refactoring thu 30 jul 2026 09 04 edt giles edwards alexander does an experiment to see if decomposing a large function helps reduce token costs suggesting that is may now be possible to measure the economic benefit of refactoring more the orchestrator s tax tue 28 jul 2026 09 10 edt subagents get justified by time saved and parallel execution but rahul garg explains that s not what matters most every token in the orchestrator s context is competing for its attention and the real value of a subagent is what it keeps out of that context subagents should be treated as a tool for protecting the orchestrator s working memory offloading reasoning it doesn t need to hold onto doing this well means giving the orchestrator explicit ground rules for when and how to delegate more why i m writing rachel s ramblings tue 28 jul 2026 08 32 edt i have ideas i haven t been writing them that s about to change i promise myself more fragments july 21 tue 21 jul 2026 06 13 mismatched views of ai between engineering and c suite comparing dotcom and ai bubbles llms build it we run it law professors prefer llm answers using dsls with llms the stench of llm speak more the archaeologist s copilot thu 16 jul 2026 09 25 edt when people think of legacy modernization most folks aren t imagining the target environment will be java 8 but this was the challenge facing nik malykhin when he needed to run a java 1 5 codebase on today s hardware his early use of llms gave plausible answers that did not hold up in the codebase progress came when he grounded the process in evidence using ai to support analysis validation in a stable docker environment and gradual refactoring protected by tests the main takeaway is practical ai was most useful when constrained by evidence clear roles and a step by step modernization strategy more dsls enable reliable use of llms tue 14 jul 2026 08 51 edt llms generate code incredibly fast but to ensure they generate exactly what is intended they need clear boundaries abstractions and domain specific languages dsls provide a strong harness that guides llms right from the start unmesh joshi describes how the example of tickloom a domain model and dsl for illustrating distributed system behavior shows how we can use an llm as a partner to iteratively build a dsl and as a natural language interface to use it such a dsl can act as the key source of truth for software systems in the world of llms more experiences with local models for coding wed 08 jul 2026 07 57 edt birgitta böckeler now reports on her recent experiences trying local llms for coding she compares them using two standard tasks and tries out the most promising model for day to day use more viability of local models for coding tue 07 jul 2026 08 34 edt birgitta böckeler recently spent some time trying out running local llms for some programming tasks in this memo she outlines the factors that influence how viable they are for the job more topics architecture refactoring agile delivery microservices data testing dsl about me about books faq content videos content index fragments board games photography thoughtworks home insights careers radar engineering follow rss mastodon linkedin bluesky x bgg martin fowler disclosures
|