- Feature Articles
- CodeSOD
- Error'd
- Forums
-
Other Articles
- Random Article
- Other Series
- Alex's Soapbox
- Announcements
- Best of…
- Best of Email
- Best of the Sidebar
- Bring Your Own Code
- Coded Smorgasbord
- Mandatory Fun Day
- Off Topic
- Representative Line
- News Roundup
- Editor's Soapbox
- Software on the Rocks
- Souvenir Potpourri
- Sponsor Post
- Tales from the Interview
- The Daily WTF: Live
- Virtudyne
Admin
Cool - In my experience they fire the dinosaurs anyway and hire a new set of "rock stars" to do version 3.
Admin
And that my friends, is The Real WTF. The rock stars weren't rock stars at all, they were fresh grads with no experience. First WTF was moving the experiance out and letting the new guys try to build a full system with no guidance. The second WTF was giving up on all advancement because the first try failed so poorly. Nothing like refusing to learn from your mistakes huh?
The only real solution was to let the old guys lead and help design while the new guys coded and helped update the old guys. yeah some of the old ones would leave and you won't have as many new guys, but you end up with a good diverse team that mixes experience with new technology.
Admin
dibolical...
Admin
Admin
Mod parent up... uh wait... oh, nevermind...
Admin
The dinosaurs might also want to learn that lesson about evolution. It's amazing what wonders you can do with a copy of "Teach Yourself VB.NET in 20 Minutes" or a similar book.
Admin
Wait... .NET, XML, and the Web weren't the magic fix for everything?
The mind reels.
Admin
No, that's FRAMES
Admin
I love how the "Non-WTF Jobs" are currently saying "You are a rock star, not a rock"
I don't want to be a "rock star" after this story!!
Admin
I just LOVE the way you're using my photo. I can't take my eyes off of it...
Admin
Shouldn't this topic be titled, "Jurbuttic Programmers"?
I guess, when it's dinosaurs versus rock stars, it's a case of "jurass or mine".
Admin
I'm always amazed when companies think that changing the eye candy (interface) also means dumping a good back-end. Couldn't they first start with webifying the old app's interfaces (interacting with data through green screen proxies if necessary, but more likely through a form of RPC) and keep the experienced devs in the loop to oversee the pups ?
Admin
It's not the technology, it's what you do with it that matters. You just can't magically gain decades of knowledge about the business domain and how to build stable systems; without it you are just guessing. A fancy new technology, even if it works, is useless if it isn't deployed properly.
Paul. http://theprogrammersparadox.blogspot.com
Admin
Admin
Damn, I wish this comment was mine.
Admin
Literally lol'd. Thanks for making my day a little nicer.
CAPTCHA: consequat
Admin
What Paul said.
"I need someone to build a house. Does anyone know how?" "Easy - use uPVC double-glazed windows!" "Great! You've got the job."
Admin
This is scarily close to my company. "Obsolete" product running on VMS (except we don't do Dibol), new "equivalent" (or "better") product on Windows and *nix. The VMS product is over 30 years old now, running strong, reliable and scalable, almost unstoppable. Cash cow. The new products continue to struggle and barely break even. Although we don't consider the staff who work on the new products to be "rock stars", we have the same problem of hiring fresh new people and giving them free reign without any training on what the product is supposed to do.
On the reverse side of the coin, the major problem with the old VMS product? We can't hire any programmers to work on it, so it's supported by a gradually shrinking team of a handful of Cobol/Assembler programmers. An interesting case study of a rock-solid software application that eventually dies a natural death.
Admin
If this is a Windows Vista parable, when do we customer get our downgrading? And when do they fire the dev team?
Admin
Correction:
DIBOL is not extinct. I work for the company that still maintains the language and continues to update it and release new versions. The language is now called Synergy, and you'll find that many of the big companies that have these old DIBOL systems now use our product and support so they don't have to develop completely new source bases.
As of version 9 of Synergy, DIBOL now has OOP support.
Admin
Definition of "legacy system:" the one that works.
Admin
The error here is obvious: they weren't using enough Ruby AJAX Service Oriented Architecture.
Admin
When they say they want a rock star, that means they want you to:
work late nights and weekends, since that's what rock stars do!
keep yourself going by taking lots of stimulants, since that's what rock stars do!
make money between now and Wednesday, longevity be damned, since that's what one-hit-wonder rock stars do!
pretend that your whole life revolves around this job, since that's the rock-and-roll lifestyle. Hobbies are for amateur musicians.
Nobody remembers that most rock stars either fail, end up doing kids shows, die at an early age, or end up on "where are they now?" shows.
When you think about it, the whole industry is based on hiring people who can't figure out that x / 60 is less than x / 40. (Where x is salary paid by week.)
Admin
In my company, it's the dinosaurs who produce much of the WTFs. They might know the business domain and the COBOL backend inside out, but their programming practices stem from the 1970s as well. A feature request? Let's just patch the production system and not tell the frontend people about the interface changes. Regression testing? Who needs that? Unit Tests? Yeah, I'd like to test my unit on that cute new secretary, hur, hur.
Admin
The thing that kills me is, the story would have been quite different if they had had one or two of the dinosaurs as the "business domain expert" and a team of good "rock stars" who had proven experience with the platform they were supposed to be developing for. The problem isn't that they kicked out the dinosaurs, it's that they used green coders and treated them like they knew what they were doing.
We've got the same situation here, except we're doing it the right way. PL1 software (!) running on MVS (!) is simply not a proposition you can maintain, so we're building a replacement from the ground up, but we're using coders who know what they're doing. Gather requirements the right way, document your design and review to make sure you've got it right. We have the dinosaurs look at our designs from time to time to make sure we're not hitting any obvious pitfalls, but by and large it's not so much "Version 2" as a new product that can be seen as a competitor to the previous product.
Like a previous commenter said, you wouldn't hire a whole team of people who graduated from DeVry last week to build you a house, and you shouldn't hire a whole team who graduated last month to design your software, whether it's a replacement for an old system or not.
Admin
Admin
The lesson I garnered from the metaphor is that dinosaurs aren't extinct. They're just waiting for us to screw up badly enough and they'll retake the Earth.
Admin
Admin
I consume two rock stars every morning for breakfast.
Admin
I would like to know how old is the boss ?
Has he encountered one single young guy that would have wondered WTF was going on ? Would I have done so ? =/
Admin
It seems to me like a lot of people have something against the "fresh blood." I graduated from college last year. That doesn't mean that I don't know anything about data structures, or that I can't reliably test things, or design a system. Currently I'm just a lowly Associate IT Analyst, but I know that if I were asked to redesign the application I work on from the ground up, I could do a good job of it. TRWTF in my eyes is that there are so many people graduating with degrees in Computer Science, Information Technology, Information Systems, and what-have-you who don't really have a passion for Computer Science. That means there are going to be tons of young go-getters out there who have resumes and interview skills freshly beefed up by University Career Services who really have absolutely no interest or skill in what they're being hired to do. They just want to be hot-shots and make a lot of money. By the same token, though, there are many young people who are really driven to achieve in this field, whether it be in industry, academia, or on their own. I think the article, in this case, portrays young people in general as unqualified for important design work. I'd like to see some focus on the problem of the riff-raff making it through the (fairly poor) litmus test of undergraduate school.
As far as the treatment of the "old-timers" goes, I think that's really rather unfortunate. I agree with the comments that development teams should be a mix of experienced and fresh talent. Both have something to learn from each other. Young people can be too willing to jump into new things with reckless abandon, and can benefit from the patience, caution, and discretion of more experienced professionals. At the same time, the experienced professionals can benefit from the fresh knowledge of the young talent; coming straight from college, their foundation is built on modern techniques, and they are still in an academic problem-solving state of mind (at least for a while). This can mean plenty of new ideas and new perspectives on existing technologies and systems.
Admin
As the late Paul Raymond said, "Sex. Sex. Sex. Sex will always sell."
Weirdly, this also applies to VB.Net; which is probably why we see so many glossy magazines devoted to the topic on the top shelves, these days.
Oh, and did somebody mention XML? Obviously the perfect glue language for a system such as this. I honestly can't imagine why an architecture of "green-screen proxies" wouldn't have been a better idea.
Admin
Just because they don't speak your language doesn't mean that they are not the shiznit.
Admin
Man... I used DIBOL in the 1970s. It was COBOL with all the intelligence removed.
And now OOP? O... M... F'ing... G!
Admin
As one junior programmer to another, no you couldn't.
Admin
Admin
Personally, it's not fresh blood that I have an aversion to its the common view that "fresh blood developers" == "rock star developers" that is commonly associated (buttociated) with them. This causes unfortunate evens like this WTF. It's a view that is commonly perpetuated by trade magazines and the like.
You're obviously not on this foul wavelength but it's everywhere, elevating the fresh blood to an unreasonable status and responsibility. Which oftentimes ends up making prima donas of them thinking that they deserve this new found status and that the old timers just don't get it and are out of step with the times, etc. So yeah the new blood can be easy targets but I don't think it's really their fault in the end.
It's really painful to see a new person accepted as a rock star with great fanfare, as someone who will make great changes for us all. They are being setup for a great fall which will probably hurt them and everyone around them.
Admin
Admin
Actually you probably could not do it. I'm not saying you definitely can't, I'm just saying the odds are really stacked against you. You are currently suffering from what you claim a lot of your peers are suffering from, without the experience you believe you know all you need to in order to tackle a system of this size. Recognize that you do not have the ability to do this on your own and things will be much better for everyone.
With that said, most experienced programmers could not do this all on their own either. Most large systems take a team for a reason. There are so many small puzzles and problems to work out that eventually you find a few your experience has not prepared you for, in these times you go to the rest of the team and discuss different solutions to collectively find the best.
This is why a mix of abilities is important in a project of any significant size. The "younger ones" get exposure to things they previously haven't and the "older ones" get exposure to the new technology that has improved beyond their current learning.
Admin
Well, it's a commercial enterprise in the U.S., so we're not allowed to know each other's salaries, or even the ranges. So I have no idea if the old-timers make more than the fresh new guys, but I doubt it.
We do have another serious problem that tends to go under the radar: the small group of old-timers is very burnt out and bored with doing the same ole same ole. So the quality of support is slipping. I get the feeling that management feels caught in a catch-22 with them: can't discipline them because they might leave, and if they leave we can't replace them. On the other side of the coin, they can't allow them to have training to update their skills and keep them motivated because then they might leave....
(OF course by "allow them to have training" I mean education assistance or reimbursement or training on company time. There's certainly nothing stopping them from getting training on their personal time and paid out of pocket.)
Admin
Which leads to the next natural question - how come no-one is learning this tech? (My company works on an AS/400 system, and everytime I google for training material, all I get is loads of "help wanted" ads). Seems a shame that no-one is learning established systems anymore...
Admin
Huh. I know plenty of smart folks who vote Repub, Dem, and Libertarian. Political positions are correlated with value systems, not intelligence. People who don't understand that fundamental premise have a pretty shallow understanding of human decision making and motivation.
Admin
I do the majority of my studying on my own. Lately my focus has been on WCF, Ajax, Generics, Visual Studio 2008, SQL Server Reporting Services, and Team Foundation System. Of those, my company provided a week's worth of training about this time last year on WCF and assorted topics relating to .Net 2.0 and VS2005, which kind of bled over into what we use now (.Net 3.5 and VS2008 Team Suite).
It's about time for some more training. A couple of our guys are spending last week and this week over at Microsoft, learning something advanced about Sharepoint, which they'll pass on to us when they get back. When my time comes, I'll have a range of choices for classes to take. Likely, LINQ will be part of it, since I haven't gotten to that yet in my free-time study.
Admin
You make a good point here. The one major thing I see as an obstacle for doing such a thing is time constraints. Given ample time to consider all points of the design, I am certain I could come up with a better design than what already exists. That's not to say that the people who have worked on this system are not good developers; the problem is that due to time constraints good design principles are often abandoned in favor of quick fixes. I had the good fortune of studying not only Computer Science in school but also Electrical & Computer Engineering. I took a variety of design classes that were specifically tailored to instill good design practices, including several courses on software engineering. I think the tripping block of many young developers is the tendency to rush into work without first considering a full design. There is plenty of room for coding-to-prototype, but I don't believe for a moment that a good application can be built without first carefully considering all of the data structures and algorithms that will be required as well as the architecture that will tie them together. This may seem obvious, but from my experience so far, it seems like these considerations are the ones that are most often skipped over during initial development.
So, could I implement the whole system in a good way? Yes, given an appropriate time frame and proper documentation of our business workflow and services. I have actually thought about giving it a try as a diversion on my free time (then I remembered I have more interesting projects I want to work on).
Would I run into problems? Almost certainly. This is what QA is for. I recognize that it's very difficult for one maverick programmer to create something and have it be completely bulletproof. Adequate testing and peer code reviews are important and powerful tools.
Would I rush headlong into a project, only to find that I had bitten off way more than I could chew once it was already too late? Perhaps I would have a year ago. Now, though, I don't think so. I still feel like "fresh blood" around here, but maybe I've matured enough already not to fall into that category. I've only been employed in The Real World since June, but my approach to things is already different. Come to think of it, I have received a lot of great advice from people who have been here for 10, 20, 25 years. I've also butted heads a few times over what I considered to be obsolete practices or poor implementation. I've come out on top once or twice, and I think it's probably for the better... my ideas have been received well.
Had I been given the development responsibilities I have now when I first started, though, maybe I wouldn't have lasted two months... :)
Admin
Admin
@A Gould: Why is nobody learning this tech? Let's say I see a few ads out of hundreds of programming job ads looking for AS/400 programmers, or people with VMS knowledge. To learn either I need to find at least some reference books and probably also some people to help me learn. Or find a good class on the subject. Possible on the Internet but harder than with more popular systems of today. Then I'd want to get a system I can practice on; in the case of VMS this is a thousand bucks on eBay; for AS/400 I don't even know. I'm the only person I know that's ever even installed Plan 9 on a spare computer to play around with, and that runs on standard PC hardware, so good luck finding people willing to do that! That gets me to the point of knowing the tech with no specific experience, which eliminates me from most job offers, which require "5 years experience in x technology...". Then if I do get my foot in the door somewhere I'm gaining experience that will continue to depreciate rapidly. On the other hand, I could spend my time learning heavily-used systems or systems on the rise and see better prospects all around.
If your company needs programmers for obscure and dying systems, but wants to keep them around for the long term, maybe it should hire good programmers and teach them the technology. If you just need people that can keep a system up until you migrate off it... well, don't expect to find a legion of young talent jumping at that role.
Admin
I have 10 years - I could do it, but that's because I'd start by talking to the guys who built v1 and getting an architecture planned out (again, talking to the old guard). Widgets are for after we make the base bits work.
Admin
Admin
I used to think I was a hotshot programmer 5 years ago when I graduated from college. Sure, I was better than average, but seriously kid, you really don't know much right now! I'm not saying you don't know anything, but wait 5 years time and you'll see the difference that can make.
Admin
What if we train them and they leave? What if you don't and they stay?
Truisms aside, why not offer them training and the opportunity to build v3? Like someone upthread said, hire some new guys who know the new tech and let them be a resource to the old guard - the old guys stick around and can support the system while doing something new that is actually interesting, or at least different.