Software Development

timwalsh300

Recycles dryer sheets
Joined
Nov 7, 2009
Messages
131
I have a question for folks who work(ed) in the software industry.

First some background: I earned my degree in computer science a few years ago. Although my current job is totally unrelated, I remain interested in the subject. This past week I started reading Steven Levy's Hackers: Heroes of the Computer Revolution. One of the pervasive themes is how many of the most innovative pioneers of computing just lived to tackle engineering/programming challenges, and they didn't care about money, or sleep, or anything else. It inspired me to fire up an IDE and write some code again for fun.

I remember the feeling as an undergrad, and it still gets me: when I'm mentally stepping through an algorithm, relentlessly hunting down a deeply buried bug, I feel completely addicted and find it hard to stop for anything; hungry, tired, needing to pee, it doesn't matter. Two nights ago I got out of bed in the middle of the night to change a couple lines of code, thinking I had just found a solution. The feeling of satisfaction, when everything finally makes sense and functions precisely as I desire, is enormous. It makes me think that I would love to do more of this, maybe working on open source projects, when I eventually have more time. Then I think: why do it for free when I could make a career change and get paid for it?

However, I know that this forum is heavily populated with folks who do/did this for a living. So to remind myself that the grass isn't necessarily greener on the other side, I want to hear from you guys. Does the aforementioned feeling wear off at some point? What else about the job drives/drove you to early retirement?

Tim
 
It never wore off for me. Although any problem solving did the same. Developing software as part of a formal group was a challenge at times. I worked with one guy in particular who had just enough formal computer training to be dangerous. His most annoying trait was burying code in many nested subroutines, most of which were only called once in the code anyway. Really tough to trace the code, and it slowed down our simulation. He insisted it was good programming practice and wouldn't change.
 
I am a HW engineer. I could stay all night long debugging my code. But that was before I was married.

Now I still enjoy the intellectual challenge. I am happy I got paid to do what I like.

But after work hours, I like to play with my kids.
 
Never wore off for me. The actual reality of doing software as a job often got in the way of the pure programming rush, but I was lucky to be able to keep some side projects (usually at work, but not my primary job) that kept the love alive. Or at least made it okay to slog through the not so fun stuff in anticipation of a juicy problem to work on occasionally. Some startups are rumored to keep an environment that fosters the crazy creative development of software in all night binges, but even these usually get somewhat corporate after a few years, or a significant setback, or a dreaded management infusion. Still, someone somewhere always needs software, so with a little work you can keep the joy.
 
I've been doing this for about 20 years and the feeling of "flow" did not wear off yet.
As my career progressed though, there is more and more distractions, so flow periods are shorter. I learned to adapt somewhat and mentally break my work into smaller pieces.
Additionally I found that, as the years are passing, I'm gaining a lot of experience, being able to intuitively develop optimal/good enough solutions, but my ability to build elaborate structures in my mind diminishes. I better FIRE, while I'm ahead of the curve :)
I like my job, but I would prefer to be FI and than maybe do some software development at my leisure.
 
It never really wore off. I managed to stay in programming (and out of management) my entire career, but retiring early was always my goal. The lure of doing whatever I want whenever I want was just too strong.
 
The programming and debugging fun never wore off. It's everything else that wore me out.

First, if you do well, they try to promote you out. I turned down management jobs, but did have to take a project lead position, which meant I had to do schedules, track everyone else's progress, present to management, etc, but I was still able to do a lot of coding along with this.

Next came The Process. Some of it makes sense, like reviewing plans, designs and code, but still nobody wakes up in the middle of the night with the urge to review more code or complete all of the required sections of a program plan document.

And then comes the automated tools. A bug slips out into the field, and now that the horse has escaped we have to lock the barn door with an additional test to make sure this never happens again rather than try to anticipate where the next problem may come from. And tools are written to examine code for common problems, which also sounds good, but they too are often written to avoid problems that have already been found and fixed. The biggest problems with all of these is the false positives. The tool detects something, and you have to prove that it's not a real problem, and it would be a bad idea to change working code to satisfy the test tools and possibly break something. And they rerun the tests on the next version and you have to fight the same battle, and sometimes you are forced to change code anyway. Then they start to run the tools on maintenance releases so you have to go through this every few weeks. And sometimes you stop making real fixes that are minor but really would improve the product because all the process and overhead of making a code change make it not worth the effort.

And then they move support of your product overseas, and instead of just fixing the code you have to train someone on technology that you've been building expertise on for most of 25 years. You think maybe they've learned something, and on the next problem you have to start over because they really didn't learn anything. And around the time they finally learn something, their contract is ended or they've jumped to another job, and you start over with someone new.

ER starts looking awfully nice by then. Part of the problem is that the place I worked went from maybe 2000 people with still a strong start-up mentality to a mega corp with over 50,000 and the CEO fell in love with having processes.

I did think about working on open source software in ER but in the last few years I locked into legacy software so that I could work part-time and telecommute, so my skills weren't really up to date for a lot of new work. But probably more than that, I had decided not to do anything like that right away, and I just never got the motivation to look into doing any open source work. I do some web work for our nature foundation, and feel stupid enough trying to figure out how to get some javascript stuff working on different browsers that I doubt my abilities to do anything more than that.
 
Getting 'in the zone', a sort of flow of consciousness state, was always fun, and that never wore off.

What did fade away over the years were the opportunities to get that engaged, that in depth immersion in a problem to be solved.
 
What wore off for me was the tolerance for recurrent futility: The work is good, but more often than not, these days, I'm blocked from doing the good work because my doing the good work would incur onto the company excessive costs in terms of verification and validation, deployment and support. Also, I often find my work penned-in by the constraints and limitations tying us to platform software last redesigned in 1999. Furthermore, I know a lot of younger developers (including a couple that work with me) are sometimes frustrated by the fact that the paying-of-the-dues means that the scarce instances of really good work goes to seasoned experts (like me), while they're often saddled with the scut. (Sorry guys.) I've seen the discipline change over the years - the competition (with developers in literally dozens of countries) has seriously degraded the experience of being a developer here.

Sorry to be a downer.
 
Does the aforementioned feeling wear off at some point? What else about the job drives/drove you to early retirement?
It didn't wear off for me. Working under all the constraints others have already discussed meant fewer opportunities for such feelings.

The job(s) didn't drive me to retirement. In the worst cases, when working under somebody who knew far less than his team, on a project that had no reason for being other than some suit read an article, with people of varying degrees of talent and motivation using imposed practices that were at variance with best practices - I was being well paid to do something I enjoyed so much I knew I'd still do it as a hobby after retiring.
 
The problem solving/detective work/innovation all remain a rush to me, but that had succumbed to a more routinized almost production line process imposed by mega IT department. Once the innovation and cooperation was stripped away the desire was also taken. Now in ER perhaps I can get fire’d up again and solve some looming problems I have come across which might be helped through the creative use of technology. Plus it’s cool to create something which can solve a problem and make other people’s lives easier or better, which is what technology was supposed to do.

I still wear my propeller hat and was still coding in ID-10-T errors every opportunity I had...just for fun.
 
I was not a 'coder' in the same sense as a typical Software Engineer, but I did a fair amount of instrumentation control programming and some in-house utilities (mostly in Rocky Mountain Basic, which will probably ring bells with a few on this forum), and managed some SW programs for in-house use as part of my responsibilities.

As others have said, the challenge/puzzle aspect can be intoxicating for geeks. Yes, I've woken up in the middle of the night and jotted down ideas for sub-routines. For most, the 'job' aspect is going to get in the way of that a lot of the time. But it's fun when it pops up.

Software is special in this way, IMO. I remember thinking - it's just me and the machine. The machine generally didn't make mistakes, it rarely 'broke', so you had no excuses if your routine didn't work as you expected. It was all up to you. It was a kind of pure mental 'game'. And unless the system required long compile times, or the routine controlled some process that took a long time to get results, it was almost immediate response. And with long external processes, you would usually 'fake' those responses to test your routine, so you got 90% of the verification pretty quickly. The 'instant gratification' (or 'instant DOH!') was a part of it. << Boy, does that spell 'geek'?

Compared to a hardware assignment - I'd need to get the parts made, and/or order other parts and that was a long delay. There might be a mistake in the parts, or a supply glitch. It took time to assemble, then more time for any changes. No instant gratification.

Most of the drive to ER was to be independent, I didn't want to be reliant on the whims of megacorp, and the odds of similar employment/salary/benefits in my 50's were not great. And the work environment had gone downhill - but as I mentioned in another thread, that seemed to be pretty common whether you were a HW or SW engineer, a production sup, a buyer, or in finance, etc. It wasn't all that related to job title.

-ERD50
 
The part of the work that you describe is/was very much what I love to do. If that was the only part of the job (as many others have said) that would be fine. The politics, management, and all of the issues that can wear you down in just about any other job are there as well. I notice also that a lot of people take their work very personally and will do anything to protect "their" code and bash "your" code. That's a good reason for ER in of itself.
My other issue is that I have so many other things in life that I love. There are many in the industry that live and breathe the work and that's just not me. I like it a lot and have made a great living doing software but it just doesn't turn my crank like a lot of other things.
My dream situation would be to continue to maintain some code base independent of all the other stuff. Otherwise, I'll probably have to find a smaller part time situation that works for my situation.
 
Great job for most of my career. No the thrill never went away. What did change was my tolerance for nonsense. At the end a 2 minute change took several hours of CC paperwork, and if the change missed the projected window, look out.

If you had been working on a problem for 24 hours straight, and got it fixed great, but missing something on the CC form was unacceptable at 4:00AM. Could have gone somewhere else but when I realized I could RE, I was done.

MRG
 
I wrote my first program in 10th grade in 1975. Not in BASIC, but in FORTRAN. By age 18 I'd used five different "real" computers.

Over the 31 years I w*rked, the programming went down and the management went up, until I ended up in HR for the last 3 years. But I still found ways to write some code from time to time. Today, I tweaked half a dozen lines of complex PHP/Javascript interaction, and I may have to debug a couple of lines of Lua later this evening.

I'm thinking of training as a existential psychotherapist. Maybe I should specialise in the problems-with-living of geeks like myself. :)
 
Additionally I found that, as the years are passing, I'm gaining a lot of experience, being able to intuitively develop optimal/good enough solutions, but my ability to build elaborate structures in my mind diminishes. I better FIRE, while I'm ahead of the curve :)
I like my job, but I would prefer to be FI and than maybe do some software development at my leisure.

Yeah, I should have mentioned that too. I can no longer hold large portions of the code structure in memory. Plus I was in some danger of being caught totally blank-minded in a meeting unless I worked at tracking the conversations (and not, for example, the portfolio). That concentration just isn't there any more.
 
Not to burst anybody's bubble, as I'm sure there are a lot of folks who still get a kick out of software development.

But I guess I'll be one of the few (if not only) folks here to say the bloom fell off the rose a long time ago for me.

I've been doing IT work for almost 30 years, a large part of it developing systems and writing code. While I used to get a kick out of it early on, I've really grown to dislike the field in the last 10 years or so. I just don't find it challenging or rewarding anymore.

All the politics and BS aside that exists in any career, just from the technology standpoint of it...I've grown to realize that all software systems do the same three things. Take input, crunch it, and provide output. No matter how many systems I've worked on (batch, online, mainframe, open systems, reporting, integrations, etc) they all do these same three things.

Also, I've gotten demoralized (for lack of a better word) over the realization that what I work on, and the systems I create, don't mean anything in the bigger scheme of things. In a couple years from now, whatever I've created will be obsolete, thrown out, and replaced with the next shiny thing. It has no lasting permanence or meaning.

Perhaps if I had ever worked on something that really changed the landscape, such as helping to develop Windows, or iOS, or something along those lines, I'd feel more excited over what I do. But to develop yet another reporting application that crunches numbers and spits out a graph...doesn't do it for me anymore.

Again, don't want to burst anybody's bubble, and more power to folks who can stay challenged and excited in the IT field. But wanted to provide a different perspective from somebody who's been doing it a long time...the grass is definitely not greener.

Good luck!
 
I still like the challange. I now have a part time gig programming with my previous employer who called me back out of retirement to do a project which I just finished.

It is a small company and I am the only one doing their programming. I don't have to deal with users or deadlines, as I have a coworker who does all of that. It is a nice way to end my career and make a few dollars. I can work from home or in their office with totally flex hours.
 
Software is special in this way, IMO. I remember thinking - it's just me and the machine. The machine generally didn't make mistakes, it rarely 'broke', so you had no excuses if your routine didn't work as you expected. It was all up to you. It was a kind of pure mental 'game'. And unless the system required long compile times, or the routine controlled some process that took a long time to get results, it was almost immediate response. And with long external processes, you would usually 'fake' those responses to test your routine, so you got 90% of the verification pretty quickly. The 'instant gratification' (or 'instant DOH!') was a part of it. << Boy, does that spell 'geek'?

I think this articulates the joy of programming really well. I definitely agree that the interactive nature of it, with constant feedback, is a huge component. The problems that I deal with in my current job are nothing like that. They are highly ambiguous, I only get one shot at them, and I never really know if I made a good decision since someone is always upset and the impacts are difficult to measure.

I'm fascinated by all the responses. I knew everyone would complain about the management-coworkers-meetings-politics stuff, but I also thought more people would say that "the rush" (as someone put it) actually does go away after a while.

Also, I've gotten demoralized (for lack of a better word) over the realization that what I work on, and the systems I create, don't mean anything in the bigger scheme of things. In a couple years from now, whatever I've created will be obsolete, thrown out, and replaced with the next shiny thing. It has no lasting permanence or meaning... Perhaps if I had ever worked on something that really changed the landscape, such as helping to develop Windows, or iOS, or something along those lines, I'd feel more excited over what I do...

This was an interesting comment too. Something I was seeking in my career choice was an opportunity to be a part of something with real historical significance. Working on revolutionary projects like the earlier versions of Windows, or the iPhone, or Google search would fit the bill. Building some of the crap software that we use in our office, on the other hand, would probably leave me feeling empty after a couple decades.

Tim
 
I didn't FIRE because of being sick of the challenge of coding and problem solving but because of all the other stuff that happens at w*rk such as spending all the time on emails to CYA (no fun).

I sometimes to miss the challenge of software development. But to roll up my sleeves while retired and write for fun... I can't say I miss coding that much :LOL:
 
New technology/toolkits/livraries are sooo interesting. Managing people to share your possibly informed view of a thread of low risk activities to meet a desired business objective is a burdensome task.
 
I didn't FIRE because of being sick of the challenge of coding and problem solving but because of all the other stuff that happens at w*rk such as spending all the time on emails to CYA (no fun).

I sometimes to miss the challenge of software development. But to roll up my sleeves while retired and write for fun... I can't say I miss coding that much :LOL:

+1
Exactly.
I miss it sometimes but I have been very busy since I retired 2 years ago. Before I retired, I thought I would be bored so I procured a Sample Development Kit and IDE and even a scope. I have not touched any of these and are just gathering dust.

Nowadays, I find enough challenge trying to model different different financial scenarios on the spreadsheet.
 
...
Also, I've gotten demoralized (for lack of a better word) over the realization that what I work on, and the systems I create, don't mean anything in the bigger scheme of things. In a couple years from now, whatever I've created will be obsolete, thrown out, and replaced with the next shiny thing. It has no lasting permanence or meaning. ...

Well, other than the people like the ones who built the pyramids, you have lots of company!

Honestly, why is 'permanence' any measure? Even medical researchers, who develop new procedures or medicines, will have someone come along in a few years with something new, and their work will be put aside.

I do feel fortunate that the products I worked on can be seen as overall doing some good, but even if they were neutral in that regard, it would not have been for naught. One of the more 'purposeful' feelings I got was, realizing that if we all did a good job, we would help grow the company. That meant decent paying jobs, with decent benefits, for a lot of people. Sometimes I'd look out at all the people on the production line, the people working in the cafeteria, the development staff, the marketing people, distribution, and on and on - all with decent, safe jobs, and mostly that salary was going to support a family. Even if the product didn't have any great significance, that would still be important.


Perhaps if I had ever worked on something that really changed the landscape, such as helping to develop Windows, or iOS, or something along those lines, I'd feel more excited over what I do. But to develop yet another reporting application that crunches numbers and spits out a graph...doesn't do it for me anymore.

Windows :eek: (just kiddin' --ummmm not really!)

But those graphs must have some importance to the company?

-ERD50
 
I have always enjoyed coding and problem solving logic, and since college have continued to learn and teach myself additional programming languages. But I could not do it as a full time job, I need variety. One of the reasons I started with Megacorp is because the job had a "problem solving" flavor where the ability to program was a benefit but gave me the freedom to do much more. Part of my current job is design technology integration, which gets me involved in a lot of API work across different languages on different operating system and networking platforms. I have published white papers with code samples, which gets me some recognition and speaking engagements at conferences.

I also have a talent for figuring out code that others have written. My first award at Megacorp was for figuring out a coding error in a client banking system that allowed it to be migrated to a newer platform for both cost savings and additional revenue generation. several of of the projects I'm consulting on now are from testing integration software and not just finding errors, but identifying where the errors where and providing recommendations on what should be coded.

When I FIRE it is something I'll probably keep doing as a hobby and to keep my mind sharp. With the prevalence of IDEs, free code on the internet, and the move towards crowdsourcing for software development there is not as much money to be made as in the past, but I figure if I want to I can make enough to pay for my greens fees. :)
 
Never wore off for me. I'm retired a few years now, but volunteer to run the websites for a couple of non-profit orgs. It's nothing too complicated but I love tinkering with the underlying software and always trying to improve things. And I like to imagine that it helps keep my brain sharp.
 
Back
Top Bottom