Beefy Boxes and Bandwidth Generously Provided by pair Networks
There's more than one way to do things

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
Domain Nodelet?
Node Status?
node history
Node Type: CUFP [id://101816]
Approved by root
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others romping around the Monastery: (1)
As of 2023-06-02 05:08 GMT
Find Nodes?
    Voting Booth?

    No recent polls found