What is XGH (Extreme Go Horse)?

Asked

Viewed 38,157 times

79

I see some people in the middle of programming referring to this term whenever a code appears with a strange solution or medium "entwined".

By doing a quick Google search, I’ve come to the conclusion that this really is it.

I found the terms Go Horse Process and Extreme Go Horse.

What I found strange is that in some articles they talk about Go Horse Process, also appeared several topics of "how to do" (22 items) and was even called "methodology".

But what this is really about?

It’s really a methodology, or a joke, or a hilarious way of listing what should be avoided in programming?

  • 1

    Related? The link points to an external website...

  • 12

    It’s basically a joke. In the form usually publicized it doesn’t serve for much, they could do it in a useful and humorous way. I’m not going to answer that, and we’re going to see if the community takes the question well or treats it as something useless. A fool asked a close question in the SE.SE: http://softwareengineering.stackexchange.com/q/7217/389

  • 3

    I believe that way of working already existed, but there was no name yet. After this became more common in the programming world due to various reasons, this way of working got a name: Extreme Go Horse. It became a widely used methodology, in several areas. It seems funny, but it’s true. Like the joke they make with Palmeiras not have worldwide. Is it a joke? Yes. But it’s true.

  • 1

    @bigown don’t know if it’s useless. All the time I see someone in the chat saying they "did an XGH" :p

  • 2

    It’s a joke. The Internet is full of these things, example Programming Motherf*Uck*r and Gambi Design Patterns.

  • 4

    All I’ve seen so far is a joke on the website. I’m leaving, I’m waiting for others to manifest, but for me it’s the same thing or worse than http://stackoverflow.com/q/84556/221800

  • 6

    I’m voting to close this question as out of scope because I think it’s a question nonconstructive, makes room for responses based on opinions and unnecessary discussions.

  • 24

    It’s definitely a real methodology. I see fans all the time, including here on the site.

  • 3

    If it is useful for the site is something quite debatable, but at least it makes you think and have a good laugh, that is not in any doubt. By the attention that this type of question receives, I believe it should be maintained. By the way, I already eagerly await the answer of @Onosendai.

  • 1

    Don’t close the question, the programming master wants to give an answer :p

  • 17

    I am against closing this question and I warn you that if it is closed, I will vote to reopen.

  • At this point, perhaps it would be nice to have the position of those who are voting negative, since there are positive votes in both the answers and the question. It would be interesting to have a backup so that we can understand what is wrong with the question. "Don’t like it" doesn’t seem like a reason for it (not that I’m saying the votes went in that direction, but in all cases, feedback is welcome)

  • 2

    In my view, the question is valid. XGH is a term related to programming. If this question is not constructive, I think that the one I made of 'Brainfuck' should also fall into that same point.

  • 14

    That question is asking "What is XGH?", and not "give me examples of XGH" and neither "what is the best/worst case of XGH you have ever seen?" - So she is not an opinionated question, not too broad and not one Poll Question. It is in fact an objective question, specific, clear and within the scope of the site, and therefore should be kept open.

  • 2

    The question just appeared on analysis queue, I voted to leave it open, it’s an interesting question and I’ve given star and +1. I like the XGH methodology and the site is with several examples where this pattern is applied in questions and answers (not all of course). Let’s all be true! P

  • It would be nice who passed giving -1 in all the answers also justified. With such a radical sequence, it seems that the answers are all wrong :p

  • 3

    I agree with Victor, the question is not opinionated, Gohorse is something that "exists", and despite being a critic of methodologies and "working environments", it is still something well described and has no opinion A or B, if someone explain that it is not a satire (joke, critique, joke, etc.) is because it did not understand what is in fact Gohorse and this is not case of opinion but rather lack of knowledge.

  • 2

    This question is being debated at the goal: http://meta.pt.stackoverflow.com/q/5447/132

  • 1

    A little song that explains the process: https://www.youtube.com/watch?v=htqIhjhtDBM

Show 15 more comments

4 answers

89


The Go Horse or Go Horse Process is a criticism shown in a way to satirize the misuse of certain "methodologies", as well as the "agile methodologies", or no use of them. It is actually a criticism of what many developers often do. Even some with more experience have moments of:

  • Laziness/relaxation.
  • Do not worry about future corrections or improvements, because they believe that it is definitive.
  • Worry about timing, but not about functioning or safety.
  • All this usually accompanied by gambiarras.

Understand that the Go Horse (and the andXtrembles Gthe HOrse) is not something to be done, is something that if you will read and will serve to understand that the shouldn’t, as I said before is a criticism of what many developers end up doing.

  • Go Horse = going horse
  • Go Horse Process = process "go horse"
  • Extreme Go Horse = extreme going horse

Horsey has no direct meaning, it probably refers to horse racing.

As mentioned in the other answers, the original site was closed. However, there was a group in Portuguese that was updated and are still active.

The authors Ornado and Mário Marolo left a farewell note http://www.gohorseprocess.com.br/adeus-ou-ate-logo-quem-sabe (with a hint of humor).

Link http://www.gohorseprocess.com.br/extreme-go-horse-(xgh) of the complete list:

  1. Thought, it’s not XGH.

    XGH does not think, does the first thing that comes to mind. It does not exist second option, the only option is the fastest.

  2. There are 3 ways to solve a problem, the correct one, the wrong one and the XGH, which is the same as the wrong one, only faster.

    XGH is faster than any methodology of developing software you know (See Axiom 14).

  3. The more XGH you do, the more you need to do.

    For each problem solved using XGH, a further 7 are created. But all of them will be solved in the XGH way. XGH tends to infinity.

  4. XGH is fully reactive.

    Errors only exist when they appear.

  5. XGH is all, just don’t give the ****.

    Solved the problem? Compiled? Commit and that was it.

  6. Commit always before update.

    If shit happens, your part will always be right and your colleagues that if *****.

  7. XGH has no deadline.

    The deadlines passed by your customer are mere details. You ALWAYS will be able to implement EVERYTHING in time (even if this implies in accessing the BD by a crazy script).

  8. Be prepared to jump out when the boat starts to sink... or lay the blame on someone or something.

    For those who use XGH, one day the boat sinks. The more time goes by, the more the system becomes a monster. The day the house falls, its better curriculum be registered at Apinfo, or have something to put the guilt.

  9. Be authentic, XGH does not respect standards.

    Write the code as you see fit, if you solve the problem, commit and that was it.

  10. No Re-factoring, only rework.

    If it sucks, redo a quick XGH that solves the problem. The day that rework entail in rewriting the whole application, jump out, the boat will sink (See Axiom 8).

  11. XGH is totally anarchic.

    The figure of a project manager is totally disposable. There is no owner, each do what you want at the time the problems and requirements arise (See Axiom 4).

  12. Always delude yourself with promises of improvement.

    Putting TODO in the code as a promise of improvement helps the XGH developer to feel no remorse or guilt for ****** he did. It’s of course Re-factoring will never be done (see Axiom 10).

  13. XGH is absolute, not related.

    Term and cost are absolute, quality is totally relative. Never think about the quality and yes in the shortest time that the solution will be implemented, by the way... don’t think, do!

  14. XGH is timeless.

    Scrum, XP... all this is modinha. XGH does not attach to the modinhas of moment, this is ***** * thing. XGH has always been and will always be used by those who despise quality.

  15. XGH is not always POG.

    Many POG’s require very high reasoning, XGH does not reason (See Axiom 1).

  16. Don’t try to row against the tide.

    In case your coworkers use XGH to program and you are a thigh that likes to do things right, forget it! For each Design Pattern that you use correctly, your colleagues will generate 10 times more rotten code using XGH.

  17. The XGH is not dangerous until some order appears.

    This axiom is very complex, but suggests that the design using XGH is in the midst of chaos. Do not try by order in XGH (see Axiom 16), it is useless and you can throw precious time in the trash. This will cause the project sinks even faster (see Axiom 8). Do not try manage the XGH, it is self sufficient (see Axiom 11), as well as the chaos.

  18. The XGH is your brother, but he’s vindictive.

    As long as you want, the XGH will always be on your side. But beware, do not abandon it. If you start a system using XGH and abandon it to use a fashionable methodology, you will be *****. XGH does not allows re-factoring (see axiom 10), and its new system full of frescurites will collapse. And at that time, only XGH can save him.

  19. If it’s working, don’t touch the hand.

    Never change, let alone question a working code. That’s loss of time, even because Re-factoring does not exist (see Axiom 10). Time is the gear that moves the XGH and quality is a detail despicable.

  20. Testing is for the weak.

    If you’ve got your hand on an XGH system, you’d better know what it is making. And if you know what you’re doing, will you test for what? Testing are a waste of time, if the code compiles, it’s enough.

  21. Get used to the feeling of impending failure.

    Failure and success always go hand in hand, and in XGH it is not different. People often find that the chances of the project fail using XGH are always greater than he be well succeeded. But success and failure are a matter of point of view. The project went downhill but you learned something? So for you went a success!

  22. The problem is only yours when your name is in the class Doc.

    Never lay a hand on a class whose author is not you. If a member of Crew die or get sick for a long time, the boat will sink! In this case, use Axiom 8.

  • 7

    Good answer. Someone who really understands the subject :p

  • 9

    In this case, is "someone who really understands the subject" a compliment or an offense? p

  • 2

    @Renan neither of the two hehehe, I mean the problem GHP is not always the fault of the developer, it can be the fault of the entire development team and even the team and the "shareholders", I myself live it, not because I wish, but because of the "needs" of the company, which "force" working like this. I tried to organize in several ways, but without approval from the superiors and excessive charging for shorter deadlines, unwillingness to deliver the requirements and think that we can set deadlines in 5 minutes, we ended up being forced to use the "GHP". So let’s say I understand, but not because I want to.

  • 2

    @Guillhermenascimento 11: XGH is totally anarchic.. If you are on a hierarchical level, you are using it wrong. p

  • 5

    "Go horse probably comes from horse racing" - I interpret it in a similar but slightly different way, I think it comes from the act of hitting with the spur on the back of the horse, that is, to evolve a project at the base of the leaps and ravines, a forced thing, without care.

  • 1

    @Piovezan makes much more sense than I imagined, I will review the reply as soon as possible. Thank you

  • 1

    1 person disliked the "methology" go Horse

  • 1

    I did not understand, because they downvoted my answer, but not the other answer (if the person is against answering this question), I can only assume that the person found some problem in the answer, COULD JUSTIFY commenting here please?

  • And still remembering that with XGH we use a lot of TDD: Test After Deploy ... when tested.

  • PERFECT, another unjustified downvote and only in my answer. There are people who do not know how to vote.

  • 1

    For me, the term "go horse" comes from the teamsters, who whip the horses screaming "Go horse!": The poor animal only sees what is immediately ahead, and all he can do is move on, pulling a huge and unknown weight, not knowing where he is going or how much is missing p/get. It would be an analogy to the programmer who is overloaded with tasks and with deadlines up, being pressured by the manager; unable to follow a decent methodology, does what gives and follows p/next task, always solving the most immediate problem, not knowing where/where you’re going or how much longer to/from.

  • @msb interesting analogy! In horse racing is similar.

  • except that in horse racing, the horse is not overloaded; the wagon usually yes, and the devs XGH tb. And the race ends quickly, unlike the car that spends all day carrying weight on an endless task, as well as the XGH development (see axiom 3). ;) but in the race, the pressure is greater. (y)

  • @msd yes, in the race he has to run like a madman without understanding the motivation, but the main principle is to get to the end, regardless of the horse or rider, the issue is to get to the end no matter how (but it’s just what I understood in the articles I read).

Show 9 more comments

60

Ensō, o símbolo da iluminação, força, elegância, o universo e o vazio

So said the Master Programmer: When a program is in the testing phase, it is too late to make scope changes.


Legend has it that in a remote province there was a monastery where the Master Programmer shared his teachings. One of his dialogues was about the practices of the infamous court engineer Xingh, and the events surrounding the construction of the Two Bridges.


'Master', discussed one of the architects of the Tang court, 'We begin the work of the North Bridge of the Yellow River following its venerable precepts KISS, YAGNI and DRY, which are the true pillars that support our structure.

But recently the Emperor has been quite impressed with the efficiency of Master Xingh’s team, which apparently ignores all the precepts of the ancient Masters in building the South Bridge - he does not care about balance and harmony, instead reinforcing the structures with whatever is at hand.

Your workers are also treated like slaves - waves of novices come and go, exhausted and disgusted. But still its bridge rises, chaotic to the point where the structure is covered, and its appearance improved. Do you think we’re wasting too much time? We should embrace chaos?'

'Your heart is weak, and your resolve fades with the first breeze,', said the Master Programmer. 'Always seek balance, and always use the pillars of the ancient Masters. Chaos attracts chaos; Harmony attracts harmony.'

The Engineer, embarrassed by the hard but true words, withdrew in silence to the field where the construction team met.


The Imperial Court met for the inauguration of the Bridges eight months later.

The North Bridge stood beautiful and delicate; the pride of its artisans, its graceful forms mirrored in the river. Nothing was missing, nothing exceeded it.

The South Bridge, however, had been completed four months earlier - and already had expansions that made it several times wider. Upon meeting the Architect of the North Bridge with the Emperor, Master Xingh could not contain his slender smirk.

The Emperor, a man of numbers, gold and wars, gave tearful praise to Master Xingh for his efficiency. The Crown Prince, an admirer of the Great Masters, thanked the Architect profusely for the new jewel that adorned the city.

The Emperor rode in Jíduān qù mǎ, his favorite horse, and headed for the South Bridge - at the same time that the Crown Prince headed for the North Bridge, mounted on Wěn.

They were all surprised when a roaring noise from the South Bridge, accompanied by a gigantic cloud of dust and wooden barbs, indicated the moment when both the bridge and the Emperor made their way to the river.

"Someone tested if the bridge held horses?" whispered in shock one of the discredited workers of the South Bridge. They looked at each other in silence.

The Prince, who had already crossed the North Bridge, rode fast to the crash site, his tears becoming part of the river upon finding the Emperor’s broken body. At this time the Master Programmer approached the now Prince Regent, and uttered these words:

"May the pain of your loss diminish with time, but never forget the lesson learned here: May KISS, YAGNI and DRY be the pillars of a long and harmonious reign."


From that time much is gone and there is no more.

From the South Bridge, only the infamous term 'as a Xingh bridge' remains - and many are unaware of its origin. Nature has taken back the banks of the river, and even its foundation stone has been lost.

But to this day visitors to the Imperial City are welcomed by the North Bridge; countless generations of Emperors have passed under its elegant arches, to which time only added dignity. As haughty as the day of its inauguration, its delicate mirrored forms on the river.

  • 8

    Poetic... That’s how it happens nowadays,,,And easier to understand... Issa ae gives a short film...

  • 1

    I would like to be a disciple of this Master :p

  • 1

    Okay, but what is XGH?

  • 8

    The Emperor’s horse. ;)

  • 3

    Master Xingh! Very good!

20

Go Horse is a satire on software development that is basically the joining of people running roles and processes.

The Extreme Go Horse is the methodology that suggests which processes should be executed to achieve the project goals, where practically the only quality metric is "it’s working?".

It is a joke with truth background. Some situations or recommendations even seem strips of Dilbert. It shows that, even with a chaotic environment, no organization, performing equal tasks (repetition) with different results, incompetent people and generation of artifacts that do not add any value. Yes, it is possible to build software that works, meets customer needs and is cost effective.

More acid details in: gohorseprocess

14

Explaining better. I removed from the Helium site this example.

XGH is one of the most brilliant things that has emerged in recent times, describing the stupidity that applies in agile methods, but that reflects well the corporate environment.

1- Thought, it’s not XGH. XGH does not think, does the first thing that comes to mind. There is no second option, the only option is the fastest.

2- There are 3 ways to solve a problem, the correct one, the wrong one and the XGH, which is the same as the wrong one, only faster. XGH is faster than any software development methodology you know (See Axiom 14).

3- The more XGH you do, the more you need to do. For each problem solved using XGH, a further 7 are created. But all of them will be solved in the XGH way. XGH tends to infinity.

So XGH is a "method" that is widely used today and always. A joke directed at bad methods (POG).

See more in Extreme Go Horse - XGH

Browser other questions tagged

You are not signed in. Login or sign up in order to post.