IWETHEY v. 0.3.0 | TODO
1,095 registered users | 0 active users | 0 LpH | Statistics
Login | Create New User
IWETHEY Banner

Welcome to IWETHEY!

New I've recently signed up for a deathmarch.
Customer wants some additional reporting.

System has been in place over 10 years.

It is written in a mixture of JCL, QuikJob,
COBOL, and 3rd party mainframe applications.

We don't track the data the customer wants
reported on.

So either EVERY piece of the system needs to
be modified, or a large portion need to be
rewritten.

I found the cleanest separation point, where
the reformats end and the 3rd part apps start,
so I'm trying to rewrite everything before that
point.

Which means I need to understand what was written
already.

Docs? What are those? This system was hacked
together, and then modified as per daily customer
phone calls. For 10 years.

QuikJob is horrible. Think mainframe AWK, but
then dumbed down to be assembler with default
file access taken care off for you.

The only flow constructs are "if" and "goto".
There is no "endif" or "else", so the standard
way of coding in it is to test for thing you
don't want, goto past the current bit of code.
So then the default case gets executed, which then
need to do a goto past the non-default case code.

Writing in it (or reading it) feels like coding
by skipping interleaving rocks on a lake.

If course, the QuikJob code is a blessing as compared
to the COBOL. 10,000 lines'o'crap. 10 years of special
case exception code. 10 years of a dozen different
mediocre or crappy programmers hacking at it. In our
company, the tape monkeys become print operators who become
computer "production" people, who become "programmers",
with no training or aptitude, they merely fall into place
and cut&paste the crap the previous person did. 10 years
of blind alleys, coded once, and then needed to be maintained
forever. This is because the data that can trigger these
special cases may show up anythime in the future (or NEVER),
and I have no know old data to run through it, so I'll have
no way of knowing if I got it right until some production
blows up.


Whine whine whine bitch bitch bitch.

While this is "reports", is also means altered workflow
on the shop floor, with additional barcode tracking, which
means I have a lot of people pissed off at me as I add
to their work load and increase accountability.

The reports have been promised.

They WILL get done.

On time, DAMMIT!!!

My boss thinks the 10,000 lines of COBOL will end up to be
500 lines of Perl, TOPS! He's hallucinating, of course, but
he's allowed. After all, he DOES have a brain tumor.

Doesn't matter how many lines it ends up being, what matters
is understanding the current code.
New Luck! I think you'll need it. :-(
New reverse engineer
take current customer input, current output to customer, new report functions and see how to get from a to be without touching all the soft spots.
thanx,
bill
Any opinions expressed by me are mine alone, posted from my home computer, on my own time as a free american and do not reflect the opinions of any person or company that I have had professional relations with in the past 48 years. meep
questions, help? [link|mailto:pappas@catholic.org|email pappas at catholic.org]
New HEHEHEH
Daily feed is a file of approx 60,000 lines.
This contains self-referential lookups, lookups
into 1/2 a dozen varying VSAM tables,
lookups into our daily changing BOM master,
lookups into our daily changing inventory,
with multiple stopping points as people scramble
to modify one of those files when they find
a lookup doesn't match, either overriding the
lookup with a hack of the data, or overriding
to point to a different entry in one of
our files, or a combination.

Every single one of these files must match
for a successful run, and they are never the
same from day to day. No way in hell to pull
any historical data more than 7 days old, which
means a miniscule amount of code can be tested
since the input is wildly varying based on the
campaign of the moment.
New I know you like pain
So enjoy. :-P

Cheers,
Ben
I have come to believe that idealism without discipline is a quick road to disaster, while discipline without idealism is pointless. -- Aaron Ward (my brother)
New Been there
Only it was ancient Fortran - computed goto's - oh yeah.

I ended up wallpapering my office and most of a hallway with the listing and using hilighters to draw call chains. The original author used the copy and paste method of reuse so I did aggressive refactoring, eliminating about a third of the code and then applied my modifications to some well chosen bottlenecks.

Lots o' luck with that.



"Whenever you find you are on the side of the majority, it is time to pause and reflect"   --Mark Twain

"The significant problems we face cannot be solved at the same level of thinking we were at when we created them."   --Albert Einstein

"This is still a dangerous world. It's a world of madmen and uncertainty and potential mental losses."   --George W. Bush
Expand Edited by tuberculosis Aug. 21, 2007, 05:44:44 AM EDT
New I did that once.
It was *extremely* cut-n-paste. The proggy was not that hard - it loaded crypto keys into a pinpad so it merely did a dozen or so send data, receive data cycles. Thing was, one cycle was 15 lines of Fortran. And that was cut-n-pasted everywhere it was needed.... *NGNHG*

After I rewrote it in C on a PC, the development guy who got to maintain it discovered he didn't know C anywhere near as well as he thought he did. Pointers to functions? Arrays of structures? Finite state machines? It was all new to him.

Wade.

Is it enough to love
Is it enough to breathe
Somebody rip my heart out
And leave me here to bleed
 
Is it enough to die
Somebody save my life
I'd rather be Anything but Ordinary
Please

-- "Anything but Ordinary" by Avril Lavigne.

New volunteered for this?
ugh.
put a stake in it.
Have fun,
Carl Forde
New Not exactly
The project started off with a MUCH larger scope, but a lot more interview / gather specs.

As it progressed, I realized how insanely large a total rewrite would be, including the 3rd party app integration, so I scaled it down to the absolute bare minimum that satisfied the requirements. Then I found out the customer really has no idea what the daily processing does, other than having the ability to review the final result (printed pages, things from inventory gathered, packaged, and shipped).

So rather than interview / gather spec, it became read old code, reengineer.

Note: The total rewrite WILL happen anyway, since as a corp goal, we are trying to get off the mainframe and all the apps that run the tail-end of this process, but not as part of this project.
New Parse Error
I thought you said "Deathmatch" and thought "cool!".


Peter
[link|http://www.ubuntulinux.org|Ubuntu Linux]
[link|http://www.kuro5hin.org|There is no K5 Cabal]
[link|http://guildenstern.dyndns.org|Home]
Use P2P for legitimate purposes!
New Deathmatch?
I'd volunteer for that if it was against the original author of the code.

I'll be meeting him next week for an hour or so.
Last time he looked at this code was about 4 years ago.
Fragile little old man.
He works 2 days a week.
He didn't want to talk to me about it.
New Oh, man.
I feel for you. I hate COBOL. It was designed so that it can be easily read by non-programmers, maybe, but only if it's well written.

Damn.
[link|http://forfree.sytes.net|
]
Imric's Tips for Living
  • Paranoia Is a Survival Trait
  • Pessimists are never disappointed - but sometimes, if they are very lucky, they can be pleasantly surprised...
  • Even though everyone is out to get you, it doesn't matter unless you let them win.


Nothing is as simple as it seems in the beginning,
As hopeless as it seems in the middle,
Or as finished as it seems in the end.
 
 
New No it wasn't.
Imagine hundreds of special cases like this:

\n090396* JJW SKIP RECORDS PER MEMO OF 08-21\n           IF IN-RECORD-TYPE = '40' AND\n              IN-ITEM-NAME = 'TRVGENNOPHPH' AND\n             (IN-MEMBER-NUMBER = '81313973  ' OR '81127887  ' OR\n                                 '81127817  ' OR '81127815  ' OR\n                                 '81127789  ' OR '81127888  ' OR\n                                 '81127462  ' OR '81127101  ' OR\n                                 '81127100  ' OR '81127017  ' OR\n                                 '81127016  ' OR '81127015  ' OR\n                                 '81126833  ' OR '80831411  ' OR\n                                 '80831410  ' OR '80831409  ' OR\n                                 '80831408  ' OR '80831407  ' OR\n                                 '79605765  ' OR '71823026  ' OR\n                                 '70313054  ' OR '69262548  ' OR\n                                 '78644991  ')\n                 ADD 1                 TO WS-SKIPA-COUNT\n                 GO TO 220-READ-NEXT.\n\n
New Again, I hate COBOL.
[link|http://forfree.sytes.net|
]
Imric's Tips for Living
  • Paranoia Is a Survival Trait
  • Pessimists are never disappointed - but sometimes, if they are very lucky, they can be pleasantly surprised...
  • Even though everyone is out to get you, it doesn't matter unless you let them win.


Nothing is as simple as it seems in the beginning,
As hopeless as it seems in the middle,
Or as finished as it seems in the end.
 
 
New Oh, that's not COBOL. I can write that kind of code in Java.
Would you like fries with that?
--


And what are we doing when the two most powerful nations on earth -- America and Israel -- stomp on the elementary rights of human beings?

-- letter to the editor from W. Ostermeier, Liechtenstein

New That KIND of code, sure.
It was still written in COBOL. I can tell, it sent a shiver down my spine.
[link|http://forfree.sytes.net|
]
Imric's Tips for Living
  • Paranoia Is a Survival Trait
  • Pessimists are never disappointed - but sometimes, if they are very lucky, they can be pleasantly surprised...
  • Even though everyone is out to get you, it doesn't matter unless you let them win.


Nothing is as simple as it seems in the beginning,
As hopeless as it seems in the middle,
Or as finished as it seems in the end.
 
 
New That looks like some of my QuickBASIC code. :-/
New Now I see why it's a bear to maintain....
Hardcoded values in programs.
New Now???
Does that mean you've been coding stuff like that, just not quite as bad?
New No.. I stopped coding like that 10 years ago....
when I had to maintain someone's crap that was written like that.

But you're right, you have to go through it carefully, analyzing all the pieces and figuring out what you can "safely" extract. It takes months (or years if it's big). But the last time I did one like that was 1997, before Internet time.
New Need some help?
been there, done that.

Once was mgr at a company where everything (order entry, inventory, BOM, Invoicing, pricing, shipping labels, pick lists, and don't recall what else) was done in ONE huge cobol program. Thing was so fragile, changing a flag in on spot could cause the program to abend in a completely different area. Had to carry a copy of the program with me at all times, even on vacation (once had to perform fix during a convention I was attending) in case of problems.

Send me the program, I'd love to be "productive" again. Producing Disaster Recovery plans that can never be used is getting tiring.
A good friend will come and bail you out of jail ... but, a true friend will be sitting next to you saying, "Damn...that was fun!"
New *Can* never be, or *hopefully* will never be?
Just curious if it's a total boondoggle, or the general problem that you hope you never use your work.
===

Purveyor of Doc Hope's [link|http://DocHope.com|fresh-baked dog biscuits and pet treats].
[link|http://DocHope.com|http://DocHope.com]
New I'll keep it simple
Realized that the info is possibly restricted. I must be careful about what I say.

Still stands, if a disaster occurs here, the contingency plans would have to work for months (instead of the planned days) until normal operations could be stored.

Now you know why I get so frustrated at times.
Expand Edited by jbrabeck March 3, 2005, 05:10:42 PM EST
New bbb ... b ... b .. bb ... bbbbb ...
Excuse me for a second while I push my eyes back into my head. Wow. Just, wow. One of your steps is, "Here, a miracle happens." Isn't it?
===

Purveyor of Doc Hope's [link|http://DocHope.com|fresh-baked dog biscuits and pet treats].
[link|http://DocHope.com|http://DocHope.com]
New It is like this:
  1. Primary site has <insert disaster>
  2. Open a Retail Box marked "6 steps to a Miracle, in 10 minutes"©
  3. Sprinkle new and improved "Fairy Dust"™ throughout primary site...
  4. Open can marked "Miracle in a Can"™ spray around on dust from previous step.
  5. Goto nearest major body of water, Part it, for vendor train of goods
  6. Stack all hardware in the primary site
  7. Push the silvery button on "Miracle in a Can"™
  8. Wait ten minutes, open door.
  9. Everything is restored and functional


The only thing you have to worry about is getting your Vendors the same Kit you bought, so they can produce your needed items quickly.
--
[link|mailto:greg@gregfolkert.net|greg],
[link|http://www.iwethey.org/ed_curry|REMEMBER ED CURRY!] @ iwethey

[link|http://it.slashdot.org/comments.pl?sid=134485&cid=11233230|"Microsoft Security" is an even better oxymoron than "Military Intelligence"]
No matter how much Microsoft supporters whine about how Linux and other operating systems have just as many bugs as their operating systems do, the bottom line is that the serious, gut-wrenching problems happen on Windows, not on Linux, not on Mac OS. -- [link|http://www.eweek.com/article2/0,1759,1622086,00.asp|source]
New That's plural... Miracles. Greg got it in his post.
A good friend will come and bail you out of jail ... but, a true friend will be sitting next to you saying, "Damn...that was fun!"
New Send an email to the admin
Beg removal. Edit history is here forever.
New Disaster Recovery
I have you beat. A SAN storage vendor has arrived at my company promising "DR in a box". Our legacy EDI system isn't on "that storage", but a shared adapter storage. They advised us that we would be running our EDI on "NFS mounted drives". Our hardware is "too old" to put on the SAN.

We were laughing in Oct/Nov as the vendor interviewed us and proposed plans.

They were approved by our board, so now we're crying. Our clustered file storage solution is on the "wrong vendor". In Oct/Nov advised them that the testing alone would grow our dept by 4 people. We're losing 1 person.

Add to that SarbOx, Production Support for Legacy system, developing the replacement system for Legacy, and the No More Pain project and we're over the top.
Expand Edited by gdaustin March 12, 2005, 12:07:57 PM EST
     I've recently signed up for a deathmarch. - (broomberg) - (27)
         Luck! I think you'll need it. :-( -NT - (Another Scott)
         reverse engineer - (boxley) - (1)
             HEHEHEH - (broomberg)
         I know you like pain - (ben_tilly)
         Been there - (tuberculosis) - (1)
             I did that once. - (static)
         volunteered for this? - (cforde) - (1)
             Not exactly - (broomberg)
         Parse Error - (pwhysall) - (1)
             Deathmatch? - (broomberg)
         Oh, man. - (imric) - (8)
             No it wasn't. - (broomberg) - (7)
                 Again, I hate COBOL. -NT - (imric) - (2)
                     Oh, that's not COBOL. I can write that kind of code in Java. - (Arkadiy) - (1)
                         That KIND of code, sure. - (imric)
                 That looks like some of my QuickBASIC code. :-/ -NT - (Another Scott)
                 Now I see why it's a bear to maintain.... - (gdaustin) - (2)
                     Now??? - (broomberg) - (1)
                         No.. I stopped coding like that 10 years ago.... - (gdaustin)
         Need some help? - (jbrabeck) - (7)
             *Can* never be, or *hopefully* will never be? - (drewk) - (5)
                 I'll keep it simple - (jbrabeck) - (4)
                     bbb ... b ... b .. bb ... bbbbb ... - (drewk) - (2)
                         It is like this: - (folkert)
                         That's plural... Miracles. Greg got it in his post. -NT - (jbrabeck)
                     Send an email to the admin - (broomberg)
             Disaster Recovery - (gdaustin)

The Elvis Presley Dambusters Clock-Plate Of Tutankhamen
146 ms