advocacy advice

L

Larry

I work in a Unix support organization for a Federal agency. Over the
past few months (with the aproval of my division's management) I have
rewritten some legacy shell scripts in Perl, which has given me the
opportunity to improve their functionality in many ways, as well as to
make the operation of the scripts more consistent with each other and
to "factor out" a lot of repeated code into a custom module.

Now, another division in my agency that is involved with the same
project has discovered this rewrite and raised a challenge to my
division's management and has even asked us to revert all the scripts
back to the old shell versions. I'm now being asked to prepare a case
before a review board to defend the use of Perl.

Does anyone have any advice for this situation or can you point me to
some resources for such a presentation?

Thanks!
 
C

Chris Mattern

Larry said:
I work in a Unix support organization for a Federal agency. Over the
past few months (with the aproval of my division's management) I have
rewritten some legacy shell scripts in Perl, which has given me the
opportunity to improve their functionality in many ways, as well as to
make the operation of the scripts more consistent with each other and
to "factor out" a lot of repeated code into a custom module.

Now, another division in my agency that is involved with the same
project has discovered this rewrite and raised a challenge to my
division's management and has even asked us to revert all the scripts
back to the old shell versions. I'm now being asked to prepare a case
before a review board to defend the use of Perl.

Does anyone have any advice for this situation or can you point me to
some resources for such a presentation?

Thanks!

What Unix are you running? It almost certainly came with Perl. Why
can't you use a language that came with the box?

--
Christopher Mattern

"Which one you figure tracked us?"
"The ugly one, sir."
"...Could you be more specific?"
 
E

Eric Schwartz

Larry said:
Now, another division in my agency that is involved with the same
project has discovered this rewrite and raised a challenge to my
division's management and has even asked us to revert all the scripts
back to the old shell versions. I'm now being asked to prepare a case
before a review board to defend the use of Perl.

Does anyone have any advice for this situation or can you point me to
some resources for such a presentation?

The most important thing to consider is /why/ they want you to revert
back to the shell scripts. If you know that, then you know how to
prepare your response.


If they're worried that you have a very complex system, and that your
rewrites might change some subtle third-order effect that people have
been relying upon since 1983 to make sure nuclear missiles don't fall
on Dubuqe, then you want to be very careful in pointing out how your
code does precisely and exactly the same that the shell code did, and
is more readable and maintainable to boot!

If they are worried that you're the only Perl guy, and if you get hit
by a bus, they're screwed, try pointing out the vast number of Perl
consultants available to help them. Also, I don't know how your
agency is, but I know some people that have worked for DoD, and they
were required to take X hours of training every year-- you could
suggest a Perl class for people that might need to understand or
maintain your code.

Another thing to remember is that just because other people know Perl
doesn't mean they know it well enough to pick up after you if you get
hit by a bus. Probably one of the best things you can do to justify
your use of Perl is to point to a number of other people on your team
(or even the other division's team) that know Perl well enough to pick
up after you. Offer to host a brown-bag or more formal presentation
to familiarize anyone who wants to know with how your code works.

You will probably also want to present to them with the required level
of Perl knowledge someone would need to understand your code. I have
run into experienced (I do not say proficient) Perl coders who are
uncomfortable with the use of even basic constructs like map(); I'm
just the opposite, sometimes running to more succinct constructs that
could be expressed in a larger number of more easily understood lines
of code.

Remember, just by using Perl alone, you have set a standard of "you
must be this high to ride this ride"; the constructs you use, be it OO
programming, or even simply breaking code out into modules, raise the
bar incrementally higher. None of this is inherently bad, mind you,
but it is something people who aren't comfortable with Perl will want
to know. Do they need to hire Larry Wall, or will some snot-nosed
teenager with a copy of "Learn Perl in 21 Days" be able to figure out
what you're doing?

If you can, you might even walk them through a shell script mess and
then through the happy sunlit cheery Perl version of it, and contrast
how much simpler and more maintainable the Perl version is compared to
the horribly nasty ugly doom-laden shell script.

Above all else, remember: they're probably not inherently being
assholes. They're objecting to Perl for what they perceive to be
valid reasons. You need to find out what they are, and address them
head-on. Try to talk around it, or snow the review board with
whizziness, and you'll lose for sure.

-=Eric
 
E

Eric Schwartz

Larry said:
Now, another division in my agency that is involved with the same
project has discovered this rewrite and raised a challenge to my
division's management and has even asked us to revert all the scripts
back to the old shell versions. I'm now being asked to prepare a case
before a review board to defend the use of Perl.

Does anyone have any advice for this situation or can you point me to
some resources for such a presentation?

Another thing that just hit me was this snippet from

http://www.wall.org/~larry/natural.html

Multiple ways to say the same thing

This one is more of an anthropological feature. People not only
learn as they go, but come from different backgrounds, and will
learn a different subset of the language first. It's Officially
Okay in the Perl realm to program in the subset of Perl
corresponding to sed, or awk, or C, or shell, or BASIC, or Lisp,
or Python. Or FORTRAN, even. Just because Perl is the melting pot
of computer languages doesn't mean you have to stir.

This may help reassure them somewhat that esoteric Perl knowledge is
not required. Assuming, of course, that that is all or part of their
objection-- again, in any form of communication, be it art, writing,
or God forbid, PowerPoint, if you don't know your audience, you lose.

-=Eric
 
P

Peter Scott

I work in a Unix support organization for a Federal agency. Over the
past few months (with the aproval of my division's management) I have
rewritten some legacy shell scripts in Perl, which has given me the
opportunity to improve their functionality in many ways, as well as to
make the operation of the scripts more consistent with each other and
to "factor out" a lot of repeated code into a custom module.

Now, another division in my agency that is involved with the same
project has discovered this rewrite and raised a challenge to my
division's management and has even asked us to revert all the scripts
back to the old shell versions. I'm now being asked to prepare a case
before a review board to defend the use of Perl.

Does anyone have any advice for this situation or can you point me to
some resources for such a presentation?

I have experience in such environments and situations. It would help
if you posted the objections they are making. It would not surprise me
if they had not told you what their objections are, but finding out
would be extremely useful. Their objections may be oddball and easily
dismissed.

It is also likely that the true reason for the objection is political
(e.g., "We don't know Perl as well as you and so we will lose control and
hence turf") as opposed to technical. If the stated objection is
technical but technical refutations fail to persuade, that would be a big
clue. You can only win this situation by discovering the real objection.

If their concerns are technical, your best counterargument is likely to be
the reduced cost of maintenance due to using Perl. You should have been
able to shrink the line count to a small fraction of what it was.
 
L

Larry

From what I can gather, it is very close to the what you said... "We
don't know Perl as well as you and so we will lose control and hence
turf".

This other group I'm up against is considered a "development" group
(even though they mainly package and tweak COTS software). They
originally provided a set of shell scripts (ksh) about a year ago, when
they handed the project over to my group, which is considered a
"production support" group .

My group ran into problems and limitations of the shell scripts almost
from the beginning. It was obvious that they were hitting the limits
of the complexity that is appropriate for a shell script, and there
were lots of things that they were doing in an overly complicated way,
and not very well, just because it was a shell script.

(Example: to query info from a database and construct commands from it,
the shell scripts were calling a command-line database tool, stripping
out the formatting and messages to extract the data. Instead of using
string concatenation to form commands from the data, the shell scripts
were sticking constant strings into SQL with SQL concatenation
operators. The Perl version uses DBI to connect to the database and
the Perl "." operator to concatenate the data with constant strings to
form the commands).

We originally requested the development group to make the changes to
the shell scripts that we required, but they kept us waiting for 2
months because they didn't have the "resources" at the time to help us.
At that point, we gave up and started modifying the shell scripts on
our own (the other group never did get back to us) and we eventually
started converting them one by one to Perl. Once they were converted
they were a lot easier to modify and tweak the way we wanted them, and
they also worked better and more consistently.

Now suddenly the "development" team has some time on their hands and
has suddenly noticed that we've converted all "their" scripts and are
in a snit about it. I think the underlying problem is they think that
we've done work that really should have been their job, and if using
Perl was a good idea, they should have thought of it.

(As an aside, it seems that group has almost no familiarity with Perl,
because another thing they are doing is adapting their shell scripts to
a Windows project, using a shell script emulator.)
 
L

Larry

Just to clarify my last point ... that the other group has almost no
familiarity with Perl... one of their original objections to Perl was
that it won't run on Windows. As soon as I heard that, I got all of
our scripts running on Windows in about a day. I know for a fact they
spent months getting their shell scripts to run on Windows using the
emulator, with a *whole* lot more "if windows" branches than I have in
my Perl code.
 
L

Larry

From what I can gather, it is very close to the what you said... "We
don't know Perl as well as you and so we will lose control and hence
turf". One of their objections is "we don't have the resources to
train all of our people in Perl".

I think the underlying problem is they think that we've done work that
really should have been their job, and if using Perl was such a great
idea, they should have thought of it / learned it.
 
P

Peter Scott

don't know Perl as well as you and so we will lose control and hence
turf". One of their objections is "we don't have the resources to
train all of our people in Perl".

I think the underlying problem is they think that we've done work that
really should have been their job, and if using Perl was such a great
idea, they should have thought of it / learned it.

Figures. Very common. Your best bet lies with ego stroking: say how it
need not take them very long to get up to speed; they are smart people who
can pick this up in a few hours from the right books. Imply that they can
expand their empire by having this other language under their belt: they
will be able to create and maintain more code. And if there are any other
groups also using Perl then they would be able to understand that too.
And of course there are Perl trainings available if they really want to
become expert very quickly.

They will be able to see that Perl programs are more capable; that ain't
the issue. You have to show how this doesn't result in them losing
control. Offer to go over your code line by line with one of their people
so he/she understands it completely and can take it over. Point out that
they will get their time back and then some in the long run. If any of
that group may quit in the near future, whisper in their ear about how
useful a skill Perl is in the private sector and here is their chance to
get paid for learning it :)
 
X

xhoster

Larry said:
don't know Perl as well as you and so we will lose control and hence
turf". One of their objections is "we don't have the resources to
train all of our people in Perl".

I think the underlying problem is they think that we've done work that
really should have been their job,

It may or may not be a good idea to point out that if they had been
doing their jobs, you wouldn't have had to.
and if using Perl was such a great
idea, they should have thought of it / learned it.

So it sounds like they are admitting that they are incompetent. Again,
that may or may not be the best argument to make in public. Who has more
influence, the head of your group or the head of their group?

Xho
 
L

Larry

So it sounds like they are admitting that they are incompetent

Well, actually, that's what they are trying to avoid admitting. By
blocking the use of Perl, they can show that they are performing a
useful function, by calling attention to technologies that do not
conform to the accepted architecture standards, getting them rejected
by the appropriate board, and ultimately, rolled back and stamped out.

Historically their group has had more influence, but they clearly feel
threatened by our group.
 
L

Larry

I just had a look at the advocacy list... it seems quite inactive. Is
there something I'm missing here? Is advocacy itself on the back
burner or is there some other forum to which it has moved?
 
J

J. Gleixner

Larry said:
Well, actually, that's what they are trying to avoid admitting. By
blocking the use of Perl, they can show that they are performing a
useful function, by calling attention to technologies that do not
conform to the accepted architecture standards, getting them rejected
by the appropriate board, and ultimately, rolled back and stamped out.

Historically their group has had more influence, but they clearly feel
threatened by our group.

Setting a standard and having a company/group try to abide by that
standard does not mean incompetence. To take it to an extreme, what if
every group in the company wrote their software in different programming
languages? The cost of development and maintenance would sky rocket.
Standards are created and modified for many reasons.

The issue is how to affect change in your company's norms. That's
something that's very difficult to answer. Typically, going off and
developing software that doesn't comply to the company's standards, and
then implying another team is inadequate and is threatened by your
non-standard development, isn't the best course of action and is quite
immature. Working with the developers, and with the people who develop
the standards is the way to change things. Find out what needs to be
done to modify the standards and work with those in charge so they can
make a more informed choice and possibly it'll bring about a change.
Regardless of if you're right or wrong, continuing to go against the
company's standards, processes, and bad mouthing other groups is
generally not a good, long term, career choice. :)

Also, although we're only hearing things from your perspective, I feel
you'd be more effective if you don't go down the "us vs them" road,
which seems to be the sentiment in your posts. It sounds like there are
many inner turf battles going on in the company or between various
groups or between you and the other group, and eliminating those bad
feelings and sticking to technical discussions will be the most
productive for the groups involved, and for the company.
 
L

Larry

There is another objection that is being raised, namely support. Some
OS vendors support Perl, and some don't. I know you can buy support
from ActiveState if you use their version of Perl, but is there any
commercial support available for the Perl that are distributed by
vendors (for example IBM).
 
A

A. Sinan Unur

There is another objection that is being raised, namely support. Some
OS vendors support Perl, and some don't. I know you can buy support
from ActiveState if you use their version of Perl, but is there any
commercial support available for the Perl that are distributed by
vendors (for example IBM).

perldoc -q "Where can I buy a commercial version of perl?"

This, by the way, is the kind of question you should be able to get an
answer to from your vendor.

Also, you might want to think about who supports the ksh scripts that your
organization is using now.

In any case, please don't disregard all the discussion in this group about
Google's broken posting interface.

Sinan
 
B

brian d foy

Larry said:
I just had a look at the advocacy list... it seems quite inactive. Is
there something I'm missing here? Is advocacy itself on the back
burner or is there some other forum to which it has moved?

Well, some of us think we're better off advocating Perl than talking
about advocating Perl. The advocacy list is usually populated by
a lot of people who want to say things instead of do things, so those
of us that actually do things don't bother going there. :)
 
L

Larry

perldoc -q "Where can I buy a commercial version of perl?"

This, by the way, is the kind of question you should be able to get an
answer to from your vendor.

Not really, because I know already that my vendor provides support.
The concern that's been raised is what happens if we move to some other
unspecified future vendor which may or may not provide support for
perl.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,755
Messages
2,569,536
Members
45,011
Latest member
AjaUqq1950

Latest Threads

Top