{"id":125,"date":"2026-09-20T00:46:33","date_gmt":"2026-09-19T22:46:33","guid":{"rendered":"https:\/\/mesbahi.net\/en\/?p=125"},"modified":"2026-09-20T00:46:34","modified_gmt":"2026-09-19T22:46:34","slug":"ai-readiness-for-software-teams","status":"publish","type":"post","link":"https:\/\/mesbahi.net\/en\/2026\/09\/20\/ai-readiness-for-software-teams\/","title":{"rendered":"AI Readiness for Software Teams"},"content":{"rendered":"\n<h3 class=\"wp-block-heading\"><strong>An Engineering Checklist Before You Add Agents<\/strong><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>There is no universal checklist for becoming \u201cAI-ready.\u201d<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Even practices that feel almost unquestionable today are not universally right. Git dominates source control, but some organizations still have perfectly valid reasons to run SVN, Mercurial, or something more specialized. So don\u2019t treat this as a certification checklist. Treat it as a collection of questions.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Some will be critical for your environment. Some will be irrelevant. The point is not to score 11\/11. The point is to discover what your engineering system assumes a human will quietly figure out. Because before we talk about AI, it helps to temporarily remove AI from the picture.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">The problem is not new. The consumer changed.<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Imagine it is 2021. A developer picks up a ticket. They need to understand the problem, find the relevant code, discover previous decisions, follow the team\u2019s conventions, implement the change, test it, open a pull request, get it reviewed, and eventually see it deployed. Later, someone should ideally be able to trace:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Ticket \u2192 Branch \u2192 Commit \u2192 PR\/MR \u2192 Build \u2192 Release \u2192 Deployment<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">And in the other direction:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Production Deployment \u2192 Release \u2192 Build \u2192 PR \u2192 Commit \u2192 Ticket<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">None of this was invented by ChatGPT.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>When the ticket was unclear, a developer asked the product manager.<\/li>\n\n\n\n<li>When the architecture was undocumented, they asked the senior engineer.<\/li>\n\n\n\n<li>When nobody knew how to run the service locally, someone messaged the one person whose laptop mysteriously worked.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Humans have always compensated for weak engineering systems with questions, experience, tribal knowledge and educated guessing. Now we have a new consumer of that system: <strong>the agent<\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">That is why AI readiness is often less about AI than it is about engineering maturity. And one important caveat: the following items are not equally weighted. If an agent cannot understand the work or the engineering rules, most of the more sophisticated items below will not save you.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">1. Can an agent start from a ticket?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Unclear requirements are not an AI problem. They are one of the oldest problems in software engineering.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ask:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Is the ticket reasonably atomic?<\/li>\n\n\n\n<li>Is the problem clearly stated?<\/li>\n\n\n\n<li>Are the acceptance criteria testable?<\/li>\n\n\n\n<li>Are dependencies explicit?<\/li>\n\n\n\n<li>Are relevant designs, contracts and documentation linked?<\/li>\n\n\n\n<li>Can the agent access those resources?<\/li>\n\n\n\n<li>Is the expected ticket structure defined somewhere reusable and versioned?<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">It does not matter whether the ticket was written by a product manager, generated by AI, or assembled by copy-pasting fragments from five Slack threads.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">What matters is whether another actor can execute it without guessing what the author meant.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Bad:<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\">Fix the login issue.<\/p>\n<\/blockquote>\n\n\n\n<p class=\"wp-block-paragraph\">Better:<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\">Login returns 401 when the email contains uppercase characters. Normalize the email before comparison in <code>AuthService.Login<\/code>. Acceptance: login must succeed regardless of email casing, and a regression test must cover the scenario.<\/p>\n<\/blockquote>\n\n\n\n<p class=\"wp-block-paragraph\">That is not \u201cwriting tickets for AI.\u201d That is writing better tickets.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">2. Does a PR explain the change, not just contain the diff?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">A pull request is not merely a container for changed lines. A title like:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><code>fix stuff<\/code><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">is bad for humans and nearly useless as organizational context for agents.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">A PR or MR should make it easy to answer:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>What changed? Why? Which requirement does it address? How was it tested? What is the risk?<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Check whether:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>titles follow a meaningful convention;<\/li>\n\n\n\n<li>descriptions have a standard structure;<\/li>\n\n\n\n<li>tickets and PRs are linked;<\/li>\n\n\n\n<li>sections such as What, Why, Testing, Risk and Migration are expected where relevant;<\/li>\n\n\n\n<li>commit messages follow a convention;<\/li>\n\n\n\n<li>the agent knows when and how to open a PR;<\/li>\n\n\n\n<li>these rules live in shared, maintained instructions rather than everyone\u2019s private prompt.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">If every developer gives their coding agent a different set of instructions, you have not created an AI development process. You have created several undocumented development processes.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">3. Does the agent understand your source-control model?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">\u201cWe use Git\u201d is not enough.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Do you use GitFlow? GitHub Flow? Trunk-based development? Release branches? Something internal?<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">An agent needs to know:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>where branches start;<\/li>\n\n\n\n<li>branch naming rules;<\/li>\n\n\n\n<li>protected branches;<\/li>\n\n\n\n<li>merge vs. squash vs. rebase expectations;<\/li>\n\n\n\n<li>hotfix procedure;<\/li>\n\n\n\n<li>release strategy;<\/li>\n\n\n\n<li>commit-message conventions;<\/li>\n\n\n\n<li>whether generated artifacts belong in source control.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">These decisions should exist before the first AI-generated pull request.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">4. Have you defined the engineering rules before asking AI to write code?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Give three developers no shared engineering conventions and you will probably get three styles of code. Agents are no different. Before generating code, make sure the system can discover things such as:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>naming conventions;<\/li>\n\n\n\n<li>repository and project structure;<\/li>\n\n\n\n<li>dependency-management rules;<\/li>\n\n\n\n<li>error-handling conventions;<\/li>\n\n\n\n<li>logging standards;<\/li>\n\n\n\n<li>preferred architectural patterns;<\/li>\n\n\n\n<li>prohibited patterns;<\/li>\n\n\n\n<li>testing conventions;<\/li>\n\n\n\n<li>approved and disallowed libraries.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">I do not particularly care whether your coding guidelines came from Microsoft, Google, an internal architecture group, a book, or were written over a weekend by your most opinionated staff engineer.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">I care that they exist, are discoverable, and are consistent.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">If you expose them through Agent Skills or another reusable instruction mechanism, treat those assets as engineering artifacts:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>owner, version, review, distribution and update process.<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">A copy of <code>coding-guidelines.md<\/code> hidden inside five developers\u2019 prompts is not governance.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">5. Can you trace a change end to end?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Pick a random ticket.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Can you navigate:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Ticket \u2192 Branch \u2192 Commit \u2192 PR \u2192 Build \u2192 Release \u2192 Deployment<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Now reverse it.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">If you have to ask someone, \u201cDo you remember what this production change was for?\u201d, the problem is bigger than AI. Ticketing, source control, CI\/CD and documentation should form a connected engineering graph wherever practical. Agents simply make broken traceability more visible.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">6. Can a machine build and verify the software?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Documentation that effectively says:<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\">Ask Sam. His laptop has the right configuration.<\/p>\n<\/blockquote>\n\n\n\n<p class=\"wp-block-paragraph\">is a problem regardless of whether your engineer is human or artificial.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">An agent should be able to discover:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>how to build the project;<\/li>\n\n\n\n<li>how to run tests;<\/li>\n\n\n\n<li>required environment setup;<\/li>\n\n\n\n<li>how dependencies and supporting services are started;<\/li>\n\n\n\n<li>where test data comes from;<\/li>\n\n\n\n<li>how migrations are applied;<\/li>\n\n\n\n<li>which quality gates must pass.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">If an agent can generate code but cannot independently validate it, you have a <strong>code generator<\/strong>, not an engineering agent.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">That distinction matters.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">7. Can the agent find the context it needs?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Experienced engineers are often valuable partly because they know where everything is hidden.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The architecture decision is in Confluence.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The API contract is in another repository.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The business rule is in an old Google Doc.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">And the reason for that strange <code>if<\/code> statement lives exclusively in somebody\u2019s memory.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ask:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Are architectural decisions discoverable?<\/li>\n\n\n\n<li>Are ADRs available?<\/li>\n\n\n\n<li>Is domain terminology documented?<\/li>\n\n\n\n<li>Is service ownership clear?<\/li>\n\n\n\n<li>Are API contracts discoverable?<\/li>\n\n\n\n<li>Can the agent access the required systems?<\/li>\n\n\n\n<li>Are obsolete documents and code clearly marked or removed?<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Having documentation and having <strong>discoverable, trustworthy documentation<\/strong> are two different things.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">8. What exactly is the agent allowed to do?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">An agent that can read a repository is not equivalent to one that can:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>write code;<\/li>\n\n\n\n<li>create branches;<\/li>\n\n\n\n<li>execute commands;<\/li>\n\n\n\n<li>trigger pipelines;<\/li>\n\n\n\n<li>modify infrastructure;<\/li>\n\n\n\n<li>access production data;<\/li>\n\n\n\n<li>deploy software.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Define:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>repository access;<\/li>\n\n\n\n<li>read\/write permissions;<\/li>\n\n\n\n<li>allowed tools and commands;<\/li>\n\n\n\n<li>secret handling;<\/li>\n\n\n\n<li>production-data access;<\/li>\n\n\n\n<li>PII boundaries;<\/li>\n\n\n\n<li>actions requiring human approval;<\/li>\n\n\n\n<li>audit requirements.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Remember that agent-readable content is itself an attack surface. Tickets, documentation, PR comments and external pages can all carry hidden instructions.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Tickets, documentation, PR comments and external content can all become prompt-injection surfaces.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Least privilege is not an optional enterprise feature you add later.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">It should be part of the architecture from day one.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">9. Is AI cost part of your engineering architecture?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Tokens are resources.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">If you do not measure usage, define budgets or establish model-selection rules, your cost strategy can easily become:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Use the expensive model Monday through Wednesday, discover on Thursday that the budget is gone, and finish the feature with whatever is cheapest.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">You should understand:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>usage per team;<\/li>\n\n\n\n<li>usage per repository or workflow;<\/li>\n\n\n\n<li>which tasks justify expensive models;<\/li>\n\n\n\n<li>where cheaper models are sufficient;<\/li>\n\n\n\n<li>budget thresholds and alerts;<\/li>\n\n\n\n<li>cost per task or change;<\/li>\n\n\n\n<li>provider and model fallback policies;<\/li>\n\n\n\n<li>whether changing the model affects quality expectations.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Model routing and token budgets are no longer purely procurement questions.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">They are becoming part of development-system architecture.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">10. Do you know whether AI is actually helping?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Cost per task from the previous section only means something next to outcomes. Otherwise you just know what you spent, not what you got.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Lines of AI-generated code are not a meaningful productivity metric.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Start with outcomes.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Use established engineering metrics such as DORA as a baseline, then add AI-specific measures where they answer useful questions.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">For example:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Has lead time changed?<\/li>\n\n\n\n<li>Has deployment frequency changed?<\/li>\n\n\n\n<li>Has change failure rate changed?<\/li>\n\n\n\n<li>Has recovery time changed?<\/li>\n\n\n\n<li>What happened to PR review time?<\/li>\n\n\n\n<li>Has rework increased?<\/li>\n\n\n\n<li>Are rollbacks becoming more frequent?<\/li>\n\n\n\n<li>How much agent-generated code is substantially rewritten?<\/li>\n\n\n\n<li>What is the AI cost per successful change?<\/li>\n\n\n\n<li>Which classes of task consistently benefit from agents?<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">More generated code does not automatically mean more delivered value.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">If you did not have a baseline before AI adoption, you may simply be adding another unknown variable to an already unmeasured system.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">11. Are your Agent Skills treated like software?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Once agents depend on organizational instructions, those instructions stop being \u201cjust prompts.\u201d<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">If a Skill defines your architecture rules, ticket format, PR conventions or coding standards, ask:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Who owns it?<\/li>\n\n\n\n<li>Which version is active?<\/li>\n\n\n\n<li>Who reviews changes?<\/li>\n\n\n\n<li>How is it distributed?<\/li>\n\n\n\n<li>How do clients receive updates?<\/li>\n\n\n\n<li>Can you roll it back?<\/li>\n\n\n\n<li>Can you test whether a change improves or degrades agent behavior?<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">At that point, the Skill is effectively part of your <strong>engineering platform<\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Treat it accordingly.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">The short version<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Before buying another AI development tool, ask a different question:<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\"><strong>If an extremely fast engineer with zero tribal knowledge joined the team tomorrow, is our engineering system explicit enough for them to work correctly?<\/strong><\/p>\n<\/blockquote>\n\n\n\n<p class=\"wp-block-paragraph\">If the answer is yes, you may already be much further along in AI readiness than you think.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">If the answer is no, AI probably did not create the problem.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">It just made the problem much easier to see.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Quick checklist<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\u2610 Can an agent start from a ticket without guessing?<br>\u2610 Would a PR\/MR make sense to someone outside the immediate team?<br>\u2610 Are branching and commit conventions documented?<br>\u2610 Can the agent discover your engineering and architecture rules?<br>\u2610 Can you trace a ticket all the way to production and back?<br>\u2610 Can build and test run without somebody\u2019s special laptop?<br>\u2610 Can the agent reliably discover the context it needs?<br>\u2610 Do you know exactly what the agent can access and change?<br>\u2610 Are AI usage and cost observable?<br>\u2610 Do you measure outcomes rather than generated code?<br>\u2610 Do your Agent Skills have owners, versions and a release process?<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">I put together an <strong>AI Readiness Checklist for Software Teams<\/strong>, but deliberately avoided making it a checklist of AI tools.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">It covers questions like:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Can an agent start from a ticket without guessing?<\/li>\n\n\n\n<li>Are your coding and architecture conventions explicit and versioned?<\/li>\n\n\n\n<li>Can a change be traced from ticket to deployment and back?<\/li>\n\n\n\n<li>Can build and test run without tribal knowledge?<\/li>\n\n\n\n<li>Does the agent have the right context, and only the right permissions?<\/li>\n\n\n\n<li>Are token usage and model cost observable?<\/li>\n\n\n\n<li>Are you measuring engineering outcomes rather than lines of generated code?<\/li>\n\n\n\n<li>And if Agent Skills define how your team works, are you managing those Skills like software?<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">My main takeaway:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>AI does not necessarily create weaknesses in your engineering system. It often exposes the ones humans have been quietly compensating for.<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n","protected":false},"excerpt":{"rendered":"<p>An Engineering Checklist Before You Add Agents There is no universal checklist for becoming \u201cAI-ready.\u201d Even practices that feel almost unquestionable today are not universally right. Git dominates source control, but some organizations still have perfectly valid reasons to run SVN, Mercurial, or something more specialized. So don\u2019t treat this as a certification checklist. Treat &#8230; <a title=\"AI Readiness for Software Teams\" class=\"read-more\" href=\"https:\/\/mesbahi.net\/en\/2026\/09\/20\/ai-readiness-for-software-teams\/\" aria-label=\"Read more about AI Readiness for Software Teams\">Read more<\/a><\/p>\n","protected":false},"author":2,"featured_media":126,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_uag_custom_page_level_css":"","_import_markdown_pro_load_document_selector":0,"_import_markdown_pro_submit_text_textarea":"","footnotes":""},"categories":[26,6,10],"tags":[13,15,9],"class_list":["post-125","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-ai","category-infrastructure","category-software-development","tag-ai","tag-software-architecture","tag-software-engineering"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.5 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>AI Readiness for Software Teams - Amin Notes<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/mesbahi.net\/en\/2026\/09\/20\/ai-readiness-for-software-teams\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"AI Readiness for Software Teams - Amin Notes\" \/>\n<meta property=\"og:description\" content=\"An Engineering Checklist Before You Add Agents There is no universal checklist for becoming \u201cAI-ready.\u201d Even practices that feel almost unquestionable today are not universally right. Git dominates source control, but some organizations still have perfectly valid reasons to run SVN, Mercurial, or something more specialized. So don\u2019t treat this as a certification checklist. Treat ... Read more\" \/>\n<meta property=\"og:url\" content=\"https:\/\/mesbahi.net\/en\/2026\/09\/20\/ai-readiness-for-software-teams\/\" \/>\n<meta property=\"og:site_name\" content=\"Amin Notes\" \/>\n<meta property=\"article:published_time\" content=\"2026-09-19T22:46:33+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-09-19T22:46:34+00:00\" \/>\n<meta property=\"og:image\" content=\"http:\/\/mesbahi.net\/en\/wp-content\/uploads\/sites\/2\/2026\/09\/ai-readiness-banner.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1672\" \/>\n\t<meta property=\"og:image:height\" content=\"941\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Amin\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Amin\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"9 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/mesbahi.net\\\/en\\\/2026\\\/09\\\/20\\\/ai-readiness-for-software-teams\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/mesbahi.net\\\/en\\\/2026\\\/09\\\/20\\\/ai-readiness-for-software-teams\\\/\"},\"author\":{\"name\":\"Amin\",\"@id\":\"https:\\\/\\\/mesbahi.net\\\/en\\\/#\\\/schema\\\/person\\\/5faefd674257f343bffc4966ab9b8143\"},\"headline\":\"AI Readiness for Software Teams\",\"datePublished\":\"2026-09-19T22:46:33+00:00\",\"dateModified\":\"2026-09-19T22:46:34+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/mesbahi.net\\\/en\\\/2026\\\/09\\\/20\\\/ai-readiness-for-software-teams\\\/\"},\"wordCount\":1870,\"commentCount\":0,\"image\":{\"@id\":\"https:\\\/\\\/mesbahi.net\\\/en\\\/2026\\\/09\\\/20\\\/ai-readiness-for-software-teams\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/mesbahi.net\\\/en\\\/wp-content\\\/uploads\\\/sites\\\/2\\\/2026\\\/09\\\/ai-readiness-banner.png\",\"keywords\":[\"ai\",\"software architecture\",\"software engineering\"],\"articleSection\":[\"AI\",\"Infrastructure\",\"Software Development\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/mesbahi.net\\\/en\\\/2026\\\/09\\\/20\\\/ai-readiness-for-software-teams\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/mesbahi.net\\\/en\\\/2026\\\/09\\\/20\\\/ai-readiness-for-software-teams\\\/\",\"url\":\"https:\\\/\\\/mesbahi.net\\\/en\\\/2026\\\/09\\\/20\\\/ai-readiness-for-software-teams\\\/\",\"name\":\"AI Readiness for Software Teams - Amin Notes\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/mesbahi.net\\\/en\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/mesbahi.net\\\/en\\\/2026\\\/09\\\/20\\\/ai-readiness-for-software-teams\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/mesbahi.net\\\/en\\\/2026\\\/09\\\/20\\\/ai-readiness-for-software-teams\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/mesbahi.net\\\/en\\\/wp-content\\\/uploads\\\/sites\\\/2\\\/2026\\\/09\\\/ai-readiness-banner.png\",\"datePublished\":\"2026-09-19T22:46:33+00:00\",\"dateModified\":\"2026-09-19T22:46:34+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/mesbahi.net\\\/en\\\/#\\\/schema\\\/person\\\/5faefd674257f343bffc4966ab9b8143\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/mesbahi.net\\\/en\\\/2026\\\/09\\\/20\\\/ai-readiness-for-software-teams\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/mesbahi.net\\\/en\\\/2026\\\/09\\\/20\\\/ai-readiness-for-software-teams\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/mesbahi.net\\\/en\\\/2026\\\/09\\\/20\\\/ai-readiness-for-software-teams\\\/#primaryimage\",\"url\":\"https:\\\/\\\/mesbahi.net\\\/en\\\/wp-content\\\/uploads\\\/sites\\\/2\\\/2026\\\/09\\\/ai-readiness-banner.png\",\"contentUrl\":\"https:\\\/\\\/mesbahi.net\\\/en\\\/wp-content\\\/uploads\\\/sites\\\/2\\\/2026\\\/09\\\/ai-readiness-banner.png\",\"width\":1672,\"height\":941},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/mesbahi.net\\\/en\\\/2026\\\/09\\\/20\\\/ai-readiness-for-software-teams\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/mesbahi.net\\\/en\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"AI Readiness for Software Teams\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/mesbahi.net\\\/en\\\/#website\",\"url\":\"https:\\\/\\\/mesbahi.net\\\/en\\\/\",\"name\":\"Amin Notes\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/mesbahi.net\\\/en\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/mesbahi.net\\\/en\\\/#\\\/schema\\\/person\\\/5faefd674257f343bffc4966ab9b8143\",\"name\":\"Amin\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/61f446bd7d862db2d26d17175d1fd98d75d04d12ab658db9af0fb94b837a98d7?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/61f446bd7d862db2d26d17175d1fd98d75d04d12ab658db9af0fb94b837a98d7?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/61f446bd7d862db2d26d17175d1fd98d75d04d12ab658db9af0fb94b837a98d7?s=96&d=mm&r=g\",\"caption\":\"Amin\"},\"url\":\"https:\\\/\\\/mesbahi.net\\\/en\\\/author\\\/en\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"AI Readiness for Software Teams - Amin Notes","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/mesbahi.net\/en\/2026\/09\/20\/ai-readiness-for-software-teams\/","og_locale":"en_US","og_type":"article","og_title":"AI Readiness for Software Teams - Amin Notes","og_description":"An Engineering Checklist Before You Add Agents There is no universal checklist for becoming \u201cAI-ready.\u201d Even practices that feel almost unquestionable today are not universally right. Git dominates source control, but some organizations still have perfectly valid reasons to run SVN, Mercurial, or something more specialized. So don\u2019t treat this as a certification checklist. Treat ... Read more","og_url":"https:\/\/mesbahi.net\/en\/2026\/09\/20\/ai-readiness-for-software-teams\/","og_site_name":"Amin Notes","article_published_time":"2026-09-19T22:46:33+00:00","article_modified_time":"2026-09-19T22:46:34+00:00","og_image":[{"width":1672,"height":941,"url":"http:\/\/mesbahi.net\/en\/wp-content\/uploads\/sites\/2\/2026\/09\/ai-readiness-banner.png","type":"image\/png"}],"author":"Amin","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Amin","Est. reading time":"9 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/mesbahi.net\/en\/2026\/09\/20\/ai-readiness-for-software-teams\/#article","isPartOf":{"@id":"https:\/\/mesbahi.net\/en\/2026\/09\/20\/ai-readiness-for-software-teams\/"},"author":{"name":"Amin","@id":"https:\/\/mesbahi.net\/en\/#\/schema\/person\/5faefd674257f343bffc4966ab9b8143"},"headline":"AI Readiness for Software Teams","datePublished":"2026-09-19T22:46:33+00:00","dateModified":"2026-09-19T22:46:34+00:00","mainEntityOfPage":{"@id":"https:\/\/mesbahi.net\/en\/2026\/09\/20\/ai-readiness-for-software-teams\/"},"wordCount":1870,"commentCount":0,"image":{"@id":"https:\/\/mesbahi.net\/en\/2026\/09\/20\/ai-readiness-for-software-teams\/#primaryimage"},"thumbnailUrl":"https:\/\/mesbahi.net\/en\/wp-content\/uploads\/sites\/2\/2026\/09\/ai-readiness-banner.png","keywords":["ai","software architecture","software engineering"],"articleSection":["AI","Infrastructure","Software Development"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/mesbahi.net\/en\/2026\/09\/20\/ai-readiness-for-software-teams\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/mesbahi.net\/en\/2026\/09\/20\/ai-readiness-for-software-teams\/","url":"https:\/\/mesbahi.net\/en\/2026\/09\/20\/ai-readiness-for-software-teams\/","name":"AI Readiness for Software Teams - Amin Notes","isPartOf":{"@id":"https:\/\/mesbahi.net\/en\/#website"},"primaryImageOfPage":{"@id":"https:\/\/mesbahi.net\/en\/2026\/09\/20\/ai-readiness-for-software-teams\/#primaryimage"},"image":{"@id":"https:\/\/mesbahi.net\/en\/2026\/09\/20\/ai-readiness-for-software-teams\/#primaryimage"},"thumbnailUrl":"https:\/\/mesbahi.net\/en\/wp-content\/uploads\/sites\/2\/2026\/09\/ai-readiness-banner.png","datePublished":"2026-09-19T22:46:33+00:00","dateModified":"2026-09-19T22:46:34+00:00","author":{"@id":"https:\/\/mesbahi.net\/en\/#\/schema\/person\/5faefd674257f343bffc4966ab9b8143"},"breadcrumb":{"@id":"https:\/\/mesbahi.net\/en\/2026\/09\/20\/ai-readiness-for-software-teams\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/mesbahi.net\/en\/2026\/09\/20\/ai-readiness-for-software-teams\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/mesbahi.net\/en\/2026\/09\/20\/ai-readiness-for-software-teams\/#primaryimage","url":"https:\/\/mesbahi.net\/en\/wp-content\/uploads\/sites\/2\/2026\/09\/ai-readiness-banner.png","contentUrl":"https:\/\/mesbahi.net\/en\/wp-content\/uploads\/sites\/2\/2026\/09\/ai-readiness-banner.png","width":1672,"height":941},{"@type":"BreadcrumbList","@id":"https:\/\/mesbahi.net\/en\/2026\/09\/20\/ai-readiness-for-software-teams\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/mesbahi.net\/en\/"},{"@type":"ListItem","position":2,"name":"AI Readiness for Software Teams"}]},{"@type":"WebSite","@id":"https:\/\/mesbahi.net\/en\/#website","url":"https:\/\/mesbahi.net\/en\/","name":"Amin Notes","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/mesbahi.net\/en\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/mesbahi.net\/en\/#\/schema\/person\/5faefd674257f343bffc4966ab9b8143","name":"Amin","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/61f446bd7d862db2d26d17175d1fd98d75d04d12ab658db9af0fb94b837a98d7?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/61f446bd7d862db2d26d17175d1fd98d75d04d12ab658db9af0fb94b837a98d7?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/61f446bd7d862db2d26d17175d1fd98d75d04d12ab658db9af0fb94b837a98d7?s=96&d=mm&r=g","caption":"Amin"},"url":"https:\/\/mesbahi.net\/en\/author\/en\/"}]}},"uagb_featured_image_src":{"full":["https:\/\/mesbahi.net\/en\/wp-content\/uploads\/sites\/2\/2026\/09\/ai-readiness-banner.png",1672,941,false],"thumbnail":["https:\/\/mesbahi.net\/en\/wp-content\/uploads\/sites\/2\/2026\/09\/ai-readiness-banner-150x150.png",150,150,true],"medium":["https:\/\/mesbahi.net\/en\/wp-content\/uploads\/sites\/2\/2026\/09\/ai-readiness-banner-300x169.png",300,169,true],"medium_large":["https:\/\/mesbahi.net\/en\/wp-content\/uploads\/sites\/2\/2026\/09\/ai-readiness-banner-768x432.png",768,432,true],"large":["https:\/\/mesbahi.net\/en\/wp-content\/uploads\/sites\/2\/2026\/09\/ai-readiness-banner-1024x576.png",1024,576,true],"1536x1536":["https:\/\/mesbahi.net\/en\/wp-content\/uploads\/sites\/2\/2026\/09\/ai-readiness-banner-1536x864.png",1536,864,true],"2048x2048":["https:\/\/mesbahi.net\/en\/wp-content\/uploads\/sites\/2\/2026\/09\/ai-readiness-banner.png",1672,941,false]},"uagb_author_info":{"display_name":"Amin","author_link":"https:\/\/mesbahi.net\/en\/author\/en\/"},"uagb_comment_info":0,"uagb_excerpt":"An Engineering Checklist Before You Add Agents There is no universal checklist for becoming \u201cAI-ready.\u201d Even practices that feel almost unquestionable today are not universally right. Git dominates source control, but some organizations still have perfectly valid reasons to run SVN, Mercurial, or something more specialized. So don\u2019t treat this as a certification checklist. Treat&hellip;","_links":{"self":[{"href":"https:\/\/mesbahi.net\/en\/wp-json\/wp\/v2\/posts\/125","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mesbahi.net\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/mesbahi.net\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/mesbahi.net\/en\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/mesbahi.net\/en\/wp-json\/wp\/v2\/comments?post=125"}],"version-history":[{"count":1,"href":"https:\/\/mesbahi.net\/en\/wp-json\/wp\/v2\/posts\/125\/revisions"}],"predecessor-version":[{"id":127,"href":"https:\/\/mesbahi.net\/en\/wp-json\/wp\/v2\/posts\/125\/revisions\/127"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/mesbahi.net\/en\/wp-json\/wp\/v2\/media\/126"}],"wp:attachment":[{"href":"https:\/\/mesbahi.net\/en\/wp-json\/wp\/v2\/media?parent=125"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/mesbahi.net\/en\/wp-json\/wp\/v2\/categories?post=125"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/mesbahi.net\/en\/wp-json\/wp\/v2\/tags?post=125"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}