Beefy Boxes and Bandwidth Generously Provided by pair Networks
more useful options

Management-speak generator

by gryphon (Abbot)
on Aug 03, 2001 at 02:38 UTC ( #101816=CUFP: print w/replies, xml ) Need Help??

Greetings fellow monks,

I'm unsure whether this has been done before, but I was bored. So here it is: a management-speak generator, just in case you ever need to generate a long and meaningless document that sounds pseudo-impressive. This whole concept was highly influenced by Dack's Web BS Generator, of course.

#!/usr/bin/perl -w use strict; srand; my @pronouns = qw(I we they); my @articles = qw(the your my); my @sub_conjuncs = ( 'after', 'although', 'as', 'as if', 'as long as', 'as though', 'be +cause', 'before', 'even if', 'even though', 'if', 'if only', 'in order tha +t', 'now that', 'once', 'rather than', 'since', 'so that', 'though', ' +unless', 'until', 'when', 'whenever', 'where', 'whereas', 'wherever', 'whil +e' ); my @power_words = qw( accomplished dealt implemented projected achieved debated improved + promoted acquired decided included proofed adjusted defined increa +sed purchased administered delegated indicated qualified advised deliv +ered initiated questioned analyzed demonstrated inspected rated applied + designed instructed received appraised determined insured recogniz +ed arranged developed interpreted recommended assessed devised interv +iewed recorded assisted directed introduced recruited assured discovered + investigated reduced awarded dispensed joined rehabilitated bought + displayed kept related briefed distributed launched renovated brou +ght earned led repaired budgeted edited located reported calculated ed +ucated maintained represented cataloged elected managed researched chaire +d encouraged maximized reviewed changed enlisted measured revised classified ensured mediated selected closed entertained modified s +erved coached established motivated simplified combined evaluated named sketched communicated examined negotiated sold compared excelled o +bserved solved completed executed obtained spearheaded computed exhibited operated specified conceived expanded ordered started concluded ex +pedited organized streamlined conducted explained paid strengthened confro +nted facilitated participated studied constructed financed perceived su +ggested continued forecast performed summarized contracted formulated pers +uaded supervised controlled gained placed targeted convinced gathered pl +anned taught coordinated graded predicted tested corrected greeted prepa +red trained corresponded guided presented translated counseled handle +d processed treated created helped produced updated critiqued identi +fied programmed wrote ); my @verbs = qw( aggregate architect benchmark brand cultivate deliver deploy disintermediate drive e-enable embrace empower enable engage engin +eer enhance envision evolve expedite exploit extend facilitate generat +e grow harness implement incentivize incubate innovate integrate ite +rate leverage maximize mesh monetize morph optimize orchestrate reconte +xtualize reintermediate reinvent repurpose revolutionize scale seize strate +gize streamline syndicate synergize synthesize target transform transit +ion unleash utilize visualize whiteboard ); my @aux_verbs = ( 'will', 'shall', 'may', 'might', 'can', 'could', 'must', 'ought to', 'should', 'would', 'need to' ); my @adjectives = qw( 24/365 24/7 B2B B2C back-end best-of-breed bleeding-edge bricks-and-clicks clicks-and-mortar collaborative compelling cross-platform cross-media customized cutting-edge distributed dot-com dynamic e-business efficient end-to-end enterprise extensible frictionless front-end global granular holistic impactful innovative integrated interacti +ve intuitive killer leading-edge magnetic mission-critical next-gener +ation one-to-one open-source out-of-the-box plug-and-play proactive real +-time revolutionary robust scalable seamless sexy sticky strategic syner +gistic transparent turn-key ubiquitous user-centric value-added vertical viral virtual visionary web-enabled wireless world-class ); my @nouns = qw( action-items applications architectures bandwidth channels communi +ties content convergence deliverables e-business e-commerce e-markets e-services e-tailers experiences eyeballs functionalities infomedi +aries infrastructures initiatives interfaces markets methodologies metri +cs mindshare models networks niches paradigms partnerships platforms portals relationships ROI synergies web-readiness schemas solution +s supply-chains systems technologies users vortals ); my @conj_adverbs = qw(however moreover nevertheless consequently); my @conjuntors = qw(though although notwithstanding yet still); my @sentences; for (my $x=0; $x<100; $x++) { push @sentences, &sentence; } print join ' ', @sentences; exit; sub sentence { my $sentence; my $type = int(rand(5 - 1 + 1)) + 1; if ($type == 1) { $sentence = join ' ', maybe(&conj_adverb,1,4,', ') . &article, + tobe(&noun), &power_word, &sub_conjunc, &pronoun, &power_word, &article, maybe(&adjective,1,2,' ') . &noun . maybe(&phrase,1,2,''); } elsif ($type == 2) { $sentence = join ' ', maybe(&conj_adverb,1,4,', ') . &sub_conj +unc, &pronoun, &power_word, &article, maybe(&adjective,1,2,' ') . &noun . ',', &article, maybe(&adjective,1,2,' ') . &noun, &power_word, &article, maybe(&adjective,1,2,' ') . &noun . maybe(&phrase,1,3,''); } elsif ($type == 3) { $sentence = join ' ', maybe(&conj_adverb,1,4,', ') . &pronoun, + &aux_verb, &verb, &article, maybe(&adjective,1,2,' ') . &n +oun, &sub_conjunc, &article, &adjective, plural(&noun), &aux_ve +rb, &verb, &article, maybe(&adjective,1,2,' ') . &noun . maybe(&phrase,1,4,''); } elsif ($type == 4) { $sentence = join ' ', maybe(&conj_adverb,1,4,', ') . &sub_conj +unc, &pronoun, &verb, &article, maybe(&adjective,1,2,' ') . &noun . + ',', &pronoun, 'can', &verb, &article, maybe(&adjective,1,2,' ') . &noun . maybe(&phrase,1,4,''); } elsif ($type == 5) { $sentence = join ' ', maybe(&conj_adverb,1,4,', ') . &pronoun, + &aux_verb, &verb, &article, maybe(&adjective,1,2,' ') . &n +oun, &sub_conjunc, &pronoun, &verb, &article, maybe(&adjective,1,2,' ') . &noun . maybe(&phrase,1,4,''); } return ucfirst($sentence) . '.'; } sub pronoun { return $pronouns[int(rand($#pronouns+1))]; } sub conjuntor { return $conjuntors[int(rand($#conjuntors+1))]; } sub sub_conjunc { return $sub_conjuncs[int(rand($#sub_conjuncs+1))]; } sub conj_adverb { return $conj_adverbs[int(rand($#conj_adverbs+1))]; } sub power_word { return $power_words[int(rand($#power_words+1))]; } sub verb { return $verbs[int(rand($#verbs+1))]; } sub aux_verb { return $aux_verbs[int(rand($#aux_verbs+1))]; } sub adjective { return $adjectives[int(rand($#adjectives+1))]; } sub noun { return $nouns[int(rand($#nouns+1))]; } sub article { return $articles[int(rand($#articles+1))]; } sub phrase { return join ' ', ',', &conjuntor, &article, tobe(&noun), &power_wo +rd; } sub tobe { return $_[0] . ' is' if ($_[0] =~ /ess$/); return $_[0] . ' are' if ($_[0] =~ /s$/); return $_[0] . ' is'; } sub plural { my $word = $_[0]; if ($word =~ /s$/) { $word =~ s/$/es/; } else { $word =~ s/$/s/; } return $word; } sub adverb { my $verb = &verb; $verb =~ s/e*$/ing/; return $verb; } sub maybe { my $low = $_[1]; my $high = $_[2]; if (int(rand($high - $low + 1)) + $low == $low) { return $_[0] . $_[3]; } else { return ''; } }

The English parsing is extremely incomplete, so often times (say one in five) you'll get slight grammatical errors. I tried to fix that up a bit with &plural and &tobe, but there's certainly much more to do.

code('Perl') || die;

Replies are listed 'Best First'.
Re: Management-speak generator
by larsen (Parson) on Aug 03, 2001 at 15:48 UTC
Re: Management-speak generator
by beretboy (Chaplain) on Aug 03, 2001 at 17:42 UTC
    kudos² gryphon! I can't wait to make a email-bot thingy with this }-)

    "Sanity is the playground of the unimaginative" -Unknown
Re: Management-speak generator
by Mr. Muskrat (Canon) on Aug 22, 2002 at 02:02 UTC
    This is so scary! You have totally replaced one of our contractors as his only function was to report to the boss with technobabble.
Re: Management-speak generator
by ginseng (Pilgrim) on Aug 03, 2001 at 03:00 UTC
    Kudos, gryphon! This has already come in handy.

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: CUFP [id://101816]
Approved by root
[Corion]: Yay. Traditional finance situation averted. Bonds can be quoted in amounts (1_000_000 EUR) or per unit (1 unit). And a traditional error is to trade 2_000_000 piece when you meant to trade 2_000_000 EUR.
[Corion]: (one of my scripts simply catches high amounts and I phone people making that trade, ideally before the payment is due)
[Corion]: The sad thing is that my script sits at the end of the pipeline and can only look at the payments due today or tomorrow basically, while there are many more systems further up in the pipeline

How do I use this? | Other CB clients
Other Users?
Others perusing the Monastery: (13)
As of 2017-03-29 11:29 GMT
Find Nodes?
    Voting Booth?
    Should Pluto Get Its Planethood Back?

    Results (347 votes). Check out past polls.