Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • Home
  • SEARCH
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 125547
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 11, 20262026-05-11T05:10:34+00:00 2026-05-11T05:10:34+00:00

The YAGNI principle states that you shouldn’t focus on providing functionality before you needed

  • 0

The YAGNI ‘principle’ states that you shouldn’t focus on providing functionality before you needed as ‘you ain’t gonna need it’ anyway.

I usually tend to use common sense above any rule, no matter what but there are some times when I feel it is useful to over design or future proof something if you have good reasons, even if it’s possible you’ll never use it.

The actual case I have in my hands right now is more or less like this:

I’ve got an application that has to run over a simple proprietary communication protocol (OSI level 4). This protocol has a desirable set of characteristics (such as following NORM specification) which provide robustness to the application but which are not strictly required (UDP multicast could perform acceptable).

There’s also the fact that the application is probably (but not surely) be used by other clients in the future which will not have access to the proprietary solution and, therefore, will need another solution. I know for a fact the probability of another client for the application is high.

So, what’s your thinking? Should I just design for the proprietary protocol and leave the refactoring, interface extraction and so on to when I really need it or should I design now thinking for the (not so far) future?

Note: Just to be clear, I’m interested in hearing all kind of opinions to the general question (when to violate YAGNI) but I’d really like some advice or thoughts on my current dilemma 🙂

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. 2026-05-11T05:10:35+00:00Added an answer on May 11, 2026 at 5:10 am

    IMHO

    • I’d say go YAGNI first. Get it working without the NORM specification using ‘the simplest thing that would work‘.
    • Next compare if the cost of making the ‘design changes’ in the future is significantly greater than making the change now. Is your current solution reversible ? If you can easily make the change tomorrow or after a couple of months don’t do it now. If you don’t need to make an irreversible design decision now.. delay till the last responsible moment (so that you have more information to make a better decision)

    To close if you know with a considerable degree of certainity that something is on the horizon and adding it later is going to be a pain, don’t be an ostrich.. design for it.
    e.g. I know that diagnostic logs would be needed before the product ships. Adding logging code after a month would be much more effort than adding it in today as I write each function… so this would be a case where I’d override YAGNI even though I dont need logs right now.

    See-also: T. & M. Poppendieck’s Lean books are better at explaining the dilemma of bullet#2 above.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Ask A Question

Stats

  • Questions 239k
  • Answers 239k
  • Best Answers 0
  • User 1
  • Popular
  • Answers
  • Editorial Team

    How to approach applying for a job at a company ...

    • 7 Answers
  • Editorial Team

    How to handle personal stress caused by utterly incompetent and ...

    • 5 Answers
  • Editorial Team

    What is a programmer’s life like?

    • 5 Answers
  • Editorial Team
    Editorial Team added an answer You can index on any column - the question is… May 13, 2026 at 6:57 am
  • Editorial Team
    Editorial Team added an answer Q: Does? A: No - Clear does not dispose the… May 13, 2026 at 6:57 am
  • Editorial Team
    Editorial Team added an answer lock incl llvm_cbe_tmp__29 However, because the operand is specified abstractly,… May 13, 2026 at 6:57 am

Related Questions

The YAGNI principle states that you shouldn't focus on providing functionality before you needed
While certain guidelines state that you should use an interface when you want to
Steve Yegge's wisdom notwithstanding, most developers are faced with requirements which were gathered from
I'm looking for schemes for application version or milestone naming . I'd like to
I find myself breaking this pattern all the time. YAGNI - You Ain't Gonna

Trending Tags

analytics british company computer developers django employee employer english facebook french google interview javascript language life php programmer programs salary

Top Members

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.