I was just busting your chops. One of my first jobs involved cold calling. It sucks balls so I feel you.
And, while that may very well be true, when the customer [me] comes to you and says “Hey, my customers are having a problem finding their way from the homepage to the store front, can you make the link bigger or revamp the homepage to make it easier to read or something?” The best way to respond is “Sure, no problem” (cuz your page was a trainwreck) not “Well your customers are stupid”
The second or third time he said that he got an email requesting him to give permission to change the DNS information so our web address would point to the servers at our new web programmers office instead of his.
Minefield.
I was a programmer a few decades back and I once equated it to being a carpenter building a house based on a crayon blueprint drawn by a 1st grader.
Who continues to draw on it while you’re trying to build.
Moving targets suck.
Without commenting on you being a salesmonkey: I suspect the companies involved really don’t care that terribly much if you can’t contact them, or if you fail to sell them things. Yes, I’m sure it’s inconvenient, but frankly, anyone calling me at work better fucking have a damn good reason, and the slimness of their wallet really isn’t my problem.
Yeah, but a surprising number (more than zero) have said they were happy I called and it was NOT so they could yell at me about our customer service. Most businesses can’t sit back and wait for sales to waft into their corporate lap. They have to ask for them, and some people like to be asked because it makes them feel important.
But again, this thread isn’t about my failures as a human being. We’ve trod that path several times. It isn’t even about my failures as a parent–my daughter starts there in two weeks. :eek: It’s about the failures of other people to write good software. Let’s try to stay on-task, people!
Did you try calling them and selling them skills?
You can do that, right?
Bro, I’m a blowhard who took some software design and programming classes. I can’t actually DO any of this stuff.
No, I mean, like “skills” are a physical thing you keep in a warehouse and can just give to them, right? Your manager is just being stingy and not buying enough skills for them?
This may be the single biggest failure factor in any human endeavour - omitting to properly decide in advance what it is you’re trying to achieve - it’s vitally important in any kind of project, in negotiations, in anything that needs to have an end result, and yet, it seems terribly easy for people just to forget to do it.
It’s as if people jump in a car and say “Let’s drive to the place where we want to go. We’ll decide where that place is when we get close”
Sometimes you get to throw things into the user’s lap. I don’t remember now what they asked me to do but I ended up writing a program to write other programs for them. It was essentially a report generator but they had to enter all of the parameters. Once they did, it wrote a program to create the report they wanted with all the the breaks, sub totals, etc they had chosen.
Don’t know what you want? Hey, no problem. Try something, see what it looks like, try something else.
… I’ve done it.
Another problem in software development environments is that there is a lot of handwaving to create an appearance of a sophisticated, well-tracked, well-planned, and well-managed team when the opposite is true.
Take timesheets, for example. In theory, you’re supposed to record how long it took you to do various stuff so they can plan for the future. In practice, everyone is expected to report 8 hours a day, every weekday no matter what happens. At least twice in my career I have tried to operate under the “I’m a professional, I get the job done” mentality rather than the “I’m a corporate drone who arrives at 9, takes a 1 hour lunch, leaves at 6 for Happy Hour” mentality. If I recorded so much as one hour less on my timesheet than was planned, my manager would go apeshit about You Are A FULL-TIME Employee you have to work FORTY Hours, not 39, not 38, FORTY goddammit, and you’re gonna have to fudge it because we can’t process this kind of timesheet. If I recorded more hours, I would get a nasty, huffy note saying THESE HOURS WERE UNAUTHORIZED, TIMESHEET REJECTED. Dammit managers, what the hell?
If you asked a manager behind closed doors, they would whisper that it was ok to just put down 8 hours if you were getting your work done, but then every few months an All-Hands email would come out from HR saying “It has come to our attention that some salaried employees are assuming that because they are salaried, they may report 8 hours on their timesheet as long as they are getting their work done. This is incorrect, you must record the actual number of hours worked, WHATEVER THAT MIGHT BE.” Of course, as soon as you started doing this, you would be confronted by your manager about why you are not reporting 40 hours like everyone else because not working 40 was unacceptable. You just gotta work 40 AND get your work done, figure it out <wink wink>. By doing this, you destroy the utility of timesheets for actually helping you plan stuff and can even give management false confidence because they don’t know that the TQR team is working frantic 15 hour days because they are overworked while the BBE team is leaving after 3 because they are bored of watching cat videos while waiting for work to come down the pipeline. Since they don’t know, they don’t do anything.
“Programmers?” “Systems Analysts?”
You’re old, aren’t you?
What’s amazing about software is that the house that you’re building drawn in crayon by a first grader actually stands up. And sometimes has working plumbing and electricity.
Driving in a car toward something, and figuring out more precise directions when you get closer to the destination, is a well-established metaphor for agile development. Developers have tried for fifty years to get good specs that didn’t change. It never happened and it’s never going to happen.
typed **friedo **on the internet.
I’ve completed projects on the basis of a well established spec, with a contract written based on that spec. So it can be done, but you still need to put the inflated hourly rate into the contract for the changes they will want even though they’ve been advised against them. Just another way to make money though. Agile development is just a way to get 9 women to have 1 baby in 1 month. It works, but it’s expensive. It is needed by many companies that work in a competitive environments where the customers want the next version available before you can deliver the last one. Ah! Good times.
Why yes, I am. I assume there are no more system analysts because it doesn’t look like anybody is analyzing systems.
Ah, fudging time cards! Had a job where we had a customer I’ve come to call Mr Mogul, though the company I’d be protecting went belly up five years ago. Anyway, he was always building new homes and thus paid most of my wages for eight years. Since my time was billable and the accounting had grown too complex to follow it got that my boss had me bill my unbillable maintenance time to one of the Mogul jobs, usually his place in Hawaii which had paid most of my bills from late 2000 to some time in 2007. I vass chust followink orders.
When the company died [del]Dell[/del] Mogol hired our main programmer to keep all of his systems running and running the same way Mrs Mogul had grown used to, though the wireless tablets are probably [del]Latitudes[/del] Moguls instead of AMX.
…never mind
I’ve been fortunate. Software I’ve used mainly comprises Unix and its elegant utilities, Mathematica, LaTeX and its components, gcc, etc. – all of which are very well-behaved. But, during my “jack of all applications” programmer phase, I was witness to an unusually horrible design once; I don’t think I’ve ever told this story before.
I was brought in to consult for a “Manufacturing Information System” after a dozen man-years or more had already been invested in it. The function of the software was so trivial, you’ll think I’m joking: It counted switch clicks on a (Bored Motor Company) factory floor. Or rather clicks were counted by little custom workstations, each serving several machines; the little workstations were polled periodically by larger custom workstations, which kept aggregate counts; they in turn were similarly polled by a VAX mainframe running Unix. (This extra level complexity IIUC arose because Bored had put the system out for bid, got two very different proposals and, instead of choosing between them, hired both. :smack: ) Essentially the whole project was to present these click counts, summarized by hour, shift, part, etc. (The software did a tiny bit of extra stuff, e.g. presenting “Mount Die #87229165 on Machine #3971” messages to the floor, but acted only as a go-between for these messages.)
Most everything was done via relational database, even when appending to log-files would make more sense. The incoming counts did not update existing records, they just appended new “lines” to the “tables.” When the system was finally operational, the factory couldn’t start a third shift because the Summary Processing took most of 24 hours of time just to process summaries for two 8-hour shifts. (I sped the summarizer up considerably by piping it the information it needed as available, rather than letting it run humongous queries on the over-complicated over-large database.)
The whole thing seemed like a comedy of errors; I’ll just mention one peculiar design: The system needed to be controlled with something like a bash script. But instead of just documenting a bash script and assuming Bored would hire a Unix-capable guy, a ridiculously complex JCL-like language was designed in lieu of using a bash script. (Most Dopers may have never heard of JCL – lucky you. The guy who worked on that part of the project was, if I understood correctly, one of IBM’s original JCL designers. :smack: )
Just when the system was finally delivered and functioning, IBM made Bored an offer they couldn’t refuse: The VAX mainframe was to be replaced with a (discount-price) IBM mainframe, also running Unix. The manager proposed $1 million as “porting” cost for the “Manufacturing Information (i.e. click-counting) System” (:smack:) and asked me what I thought about that estimate. By then I was too flabbergasted by the whole project to say much; in hindsight I wish I’d offered to do the whole thing for a mere quarter-million!
JCL stands for job control language and is only used for batch processing. CICS is used for live online processing.
Thanks for the insight.
The JCL-like language I mentioned was just for startup scripts. Detailing the entire repertoire of user interfaces in that bewilderingly complex system was beyond the scope of my paragraph.
Never thought JCL was all that complicated. You could do a lot of shit and if you were bright enough to read the fucking manual as you were putting it together, it worked pretty slick.
I remember when I first came on board at the last company I worked as a programmer at in 1999 and wasn’t being given any work because jealous in-house trained programmer thought she was the lead and didn’t want me stomping on her crap. I started looking over her JCL and was able to cut down a large number of unnecessary steps. Of course, the moment I presented these changes to our manager, JIHTP went into a screaming, frothing rage and insisted none of it would work and (vague other threats) that got manager to table them. :rolleyes: The other Sr. Programmer on the team did his own stuff and would go into VERY LOUD SCREAMING RAGES if you dared Dared! to ask the same question twice. Even if the second time was a full three months after you asked the last time. I had to run a process for him while he was on vacation. A couple of months later, he went on another vacation and, not having touched the process in those months, I wanted a refresher. Hooo boy! He went on such a huge tantrum that he ended up being demoted and put on probation for it. (ok, it was more like ‘the last straw’ in ongoing behavior, but still)
Got off that team in a hurry the moment i was eligible for an in-house transfer.
Anyone remember when pie-in-the-sky open meetings with users where ‘no request is off the table’ became the rage in the mid to late 80’s? I cannot recall what exactly they were called. I had a user who had previously asked me to make his PC (and remember, this was 1986-1988 era PCs) make a completely different sound for each key typed, so he could type by sound. I had briefly looked into it and said NO. It took too many resources on the PC, would slow it down too much and for that matter, he’s the ONLY PERSON ON EARTH who would not take a sledgehammer to their PC within 30 seconds if it did that.
Well, a month or three later my manager decided to have one of those open meetings. Of course, wiz-kid had to bring it up. I dismissed it out of hand. After the meeting my manager yelled at me for doing so, saying these were open meetings where we were not supposed to criticize or dismiss any idea, no matter how wild or impractical. We were to accept it respectfully, write it down, investigate it and then give only positive reasons why could or could not do it. (huh? As I asked, how do we say, in a positive manner; ‘your idea is fucking stupid’?) She yelled at me more and threatened to give me a warning if I did it again.
We had one more meeting, in which I bit my tongue and forced myself to remain completely silent. Afterwards I asked how much time she expected me to spend researching and giving time estimates on all of the impractical ideas. My co-worker who was present finally broke down and was willing to step past the threats to ask if we had gotten a single worthwhile idea out of either one of the meetings. Our manager had to admit that we had not. I think one of the other managers in the meeting made the same complaint and suggested she had better things to do
We didn’t have any more of those meetings.