Advertisement
If you have a new account but are having problems posting or verifying your account, please email us on hello@boards.ie for help. Thanks :)
Hello all! Please ensure that you are posting a new thread or question in the appropriate forum. The Feedback forum is overwhelmed with questions that are having to be moved elsewhere. If you need help to verify your account contact hello@boards.ie
Hi there,
There is an issue with role permissions that is being worked on at the moment.
If you are having trouble with access or permissions on regional forums please post here to get access: https://www.boards.ie/discussion/2058365403/you-do-not-have-permission-for-that#latest

Fed up with development...what next

  • 11-03-2011 5:26pm
    #1
    Registered Users, Registered Users 2 Posts: 113 ✭✭


    Hi there

    I'm a software developer for a small company. I've been working here for about 3.5 years, and it's becoming more and more apparent that this may not be the career for me. I'm reluctant to abandon it though, as I spent 5 years in uni studying computer science, and a job's a job in this economy, right?

    Our codebase is very large - about 900,000 LOC, in mostly C++, though a lot of new projects are being written as .NET DLL plugins and the thing is patched together using COM interop. I say patched because it's a crappy, flimsy way to architect and you spend as much time fixing DLL-hell related issues such as interface registration, multiple side-by-side DLL versions and so on as you do implementing new code.

    We have 7 other full-time developers and two QA staff. So that works out at about 130,000 lines of code per developer.
    I accept that most of the changes that take place are centred around a much smaller subset of that code, but it still seems like a ridiculous ratio. The codebase smacks of mid-90's Windows apps - a mess of C++, COM (seriously?) and ActiveX components and MFC-based UI, and this trend continues, due to the amount of legacy code that new features must interoperate with, and long-time developers being stuck in their ways. To give an example of how old-school these guys are, I was showing one of them Ruby the other day, and they were amazed that they didn't have to wait hours for builds to complete, or qualify variable declarations with types etc. etc - all of the features you get in a modern programming language.
    It was a real eye-opener, but in a way I don't blame them. Constantly learning new platforms/technologies gets old very quick, they probably decided years ago to give up and stick to what they know.

    Our current project was due to be released three weeks ago - we're still here fixing bugs though. Every time we are about to hit RC status, QA find a new showstopper that forces us to perform another build. This I believe is due to a mixture of undirected feature creep/poor project planning, the codebase having reached critical mass, and understaffing. In fairness to QA, they are punching well above their weight in terms of the thoroughness with which they test our code. Given that there are only a handful of them, they apply due diligence at all stages of testing.

    There was no official spec for our current project; each developer was just emailed individually with the details of the features assigned to them. No group meetings between development (the people who know the codebase) and management (the people who don't) to discuss the feasibility and implications of changes needed for new features. Mind you, requirements were not set in stone either - they are big fans of "verbally speccing" new features i.e. just sitting down and firing ideas back and forth and going "yeah, let's change that, that sounds good". I worked late nights for weeks on end, and the process became increasingly annoying as when I got so far, repeatedly mgmt would pull the rug out from underneath my feet and say "hmmmmm, maybe we were on the wrong path here - let's change X to do Y instead." This makes the late nights feel like a waste of time, and it feels like trying to shoot a moving target while blindfolded. Your code is destined to deteriorate too as deadlines loom and you're subjecting it to rewrite after rewrite.

    It's a totally ad-hoc, trial-and-error implementation methodology. I know requirements gathering is hard, but hell we have dedicated sales and support teams, they KNOW what customers want to a degree that a formal spec can be delivered, mgmt don't seem to listen to them enough though.

    A great example was last week, when we were about to go RC, and our engineering head comes over to our development team lead and suggests a new feature - while we're testing to go RC. The mental thing is, they put it in. So we're writing new code while testing what is supposedly a finished product. That flies in the face of everything I know about sound development methodologies. No cut-off point for new code, just fling it in there. Because our codebase is at critical mass, inevitably those changes create more bugs, which may take another couple of build-QA iterations to fix.


    Career wise, software development seems to be a bit a of a dead end too - it's an endless cycle of spec/implement/test/maintain etc etc, and there is a salary and responsibility ceiling for engineers which is circumvented by, well, changing jobs, or moving into management (zzz).

    Has anyone similar experiences,comments, or recommendations that they would like to share? I know I sound like a moanbag and I do realise that having job is rarer than it used to be, but I do think it could be a bit less painful than it is.

    Thanks


Comments

  • Registered Users, Registered Users 2 Posts: 9,579 ✭✭✭Webmonkey


    I am still in a junior position so I can't give very good advice but I feel a similar mindset developing in such a short time.

    About 6 months ago I joined a software development company in a C++ role. I wanted to go with C++ as I find it more exciting. But the code base, is similar to you, old legacy code of probably over million lines.

    While I have fun in the low level (working on a textbox control that is manually drawn with win32 api (few k lines) :rolleyes:), I do feel I'm starting to miss out on other technologies etc.

    However, I only plan spend a few years working to get any sort of experience and then go out on my own and have some sort of freedom and allow me be creative.

    Have you ever thought of starting a business or going contracting? - Might be hard work but your career wouldn't be so dead end then.


  • Registered Users, Registered Users 2 Posts: 93 ✭✭SomeUnusedName


    I am a software developer too, and to me, it sounds like you dont like your current job, development is really interesting and varied , far from what you are doing now. I d say you need to spend some time on spare project and try to figure out what would you like to do next.
    Some inspiration might come from local user groups too.

    Where you ever coding till long in the night, because you wanted to? well find out what type of project gets you that again and move out of that dead end job ( that possibly pays well, but its not making you happy)
    my 2 cents


  • Registered Users, Registered Users 2 Posts: 113 ✭✭lenovoguy


    Webmonkey wrote: »
    Have you ever thought of starting a business or going contracting? - Might be hard work but your career wouldn't be so dead end then.

    I have indeed, if I got some savings together and had a great idea I'd love to go into mobile app development. The desktop world is old and boring, but consumer mobile apps seem like a very exciting and novel domain for app development.
    Where you ever coding till long in the night, because you wanted to? well find out what type of project gets you that again and move out of that dead end job ( that possibly pays well, but its not making you happy)
    my 2 cents

    Yeah again, I did some Android app development, and I've written a few small windows apps for managing ipods and converting file formats. My job pays 31k and I've 3 years experience - I dont think thats great really


  • Registered Users, Registered Users 2 Posts: 93 ✭✭SomeUnusedName


    I d say if you are in dublin, the Dublin Google technologies group meets monthly, might be a good place to learn and maybe meet people you could potentially work with

    if you are used to .net and like it, you have the monodroid option,


  • Registered Users, Registered Users 2 Posts: 9,579 ✭✭✭Webmonkey


    31k with 3 years experience? - I'd be changing job quick.


  • Advertisement
  • Registered Users, Registered Users 2 Posts: 93 ✭✭SomeUnusedName


    Webmonkey is right 31K? that s pretty low


  • Closed Accounts Posts: 4,564 ✭✭✭Naikon


    OP - Do you know anything about UNIX systems administration/Database work? Plenty of money to be made in each if you can get up to scratch. Both benefit from a development background.


  • Banned (with Prison Access) Posts: 3,455 ✭✭✭krd


    900,000 LOC - How many wheels did these guy re-invent?

    Your situation sounds like the reason many people leave coding.
    Webmonkey wrote: »
    While I have fun in the low level (working on a textbox control that is manually drawn with win32 api (few k lines) :rolleyes:),

    Holy ****. Why aren't you just creating it with a resource editor and including the rc file?

    Hard coding GUI elements is not clever.


  • Banned (with Prison Access) Posts: 3,455 ✭✭✭krd


    lenovoguy wrote: »

    Our codebase is very large - about 900,000 LOC, in mostly C++, though a lot of new projects are being written as .NET DLL plugins and the thing is patched together using COM interop. I say patched because it's a crappy, flimsy way to architect and you spend as much time fixing DLL-hell related issues such as interface registration, multiple side-by-side DLL versions and so on as you do implementing new code.
    The codebase smacks of mid-90's Windows apps - a mess of C++, COM (seriously?) and ActiveX components and MFC-based UI, and this trend continues, due to the amount of legacy code that new features must interoperate with.

    Let me guess how it got like this. The app starts somewhere back in the 90s. And they're using some very straightforward C/C++ programming. Then Active X comes along and they say we better use that, it's sexy and will improve our employment prospects. Let's use MFC too - that's hot and sexy right now. Then comes COM, and it's let's use some of that, it's hot and sexy, and will improve out employment prospects. Then .NET, let's use some of that. There could be some C# and Java thrown in for added sexiness - I wouldn't be surprised - let's go nuts and throw in some j#.

    And it's probably a database app. Something that could have been created with a single methodology, over a decade old.

    The whole thing could possibly be re-written in Delphi in a couple of weeks.


  • Registered Users, Registered Users 2 Posts: 5,246 ✭✭✭conor.hogan.2


    With 3 years work experience you could surely move into most of the jobs available at the moment? (in your area / if you know your stuff and can learn quickly with a solid base)

    Ideally a new company as they will most likely not have this mess of technologies.

    I shudder when I here anything MS code related never mind the mish mash mess that you mentioned on top of that. Although it makes me shudder less than any DB related.


  • Advertisement
  • Registered Users, Registered Users 2 Posts: 981 ✭✭✭fasty


    Ugh, MFC. Ugh, mixing .Net and MFC. It leaves a bad taste in my mouth. Overall though, there's nothing wrong with MS code or coding using MS APIs, it's just like anything, it can be abused and the low cost of entry makes it easy for people to just bang out any old crap. Sometimes "It works" isn't enough!

    Oh well, at least you have actual testers rather than "yep, it launches, sent it out!"

    31k though, you should be making 10k - 15k more at your level!


  • Closed Accounts Posts: 191 ✭✭Mozart1986


    I'm gonna stick my big oar in this thread as a lay person.

    If you want to go into business doing web-apps or something like that it is often very valuable to take a few months out to relax and develop hobbies. Being unemployed can be a great time to dream, as it is when you do this that your best ideas come. This was my experience.

    If you think about all of the business ideas that students come up with, they are always geared towards other students and there is not that much innovation there, because like a career, they are not given time to dream and to really figure out what people want in a new service exactly.

    There is no recession online, there are thousands of opportunities out there if you left your current position, it doesn't sound like they appreciate you anyway. But don't be afraid to take some time out and do something outside coding to gain a perspective on what ordinary people want.

    Goodluck OP:)


  • Registered Users, Registered Users 2 Posts: 93 ✭✭SomeUnusedName


    "I shudder when I here anything MS code related never mind the mish mash mess that you mentioned on top of that. Although it makes me shudder less than any DB related."

    Dude, wake up , you can write sh1te code in every platform. You can write very good c#, and terribly ruby ( i ve seen both).
    But its about how much the person writting the code cares about it and not let manager types dictates how to code and what to use.

    Working on an application that is 5+ years old with a few releases and write relatively clean code (..)is not a trivial task, and its rarely only down to the technology in use.


  • Registered Users, Registered Users 2 Posts: 5,246 ✭✭✭conor.hogan.2


    I never said that, of course you can write great code in c# and bad java code or whatever. I was just saying I would be pissed at my job if it was .NET related or anything to do with Databases. Opinion.


  • Registered Users, Registered Users 2 Posts: 93 ✭✭SomeUnusedName


    a bit OT but

    There are things other platforms can do that .net cant, and the same thing applies the other way around, => the right tool for the right job


    I don't bash people for using Flash (even tho It appears to me like a really bad idea) because I dont know it that well, maybe learn first, talk later?
    my 2 cents


  • Moderators, Society & Culture Moderators Posts: 9,689 Mod ✭✭✭✭stevenmu


    It sounds more like you're fed up with the way your current employer does things than with development in general. There's always plenty of C++ or .Net jobs available, why not have a look around at what's out there and see if you can find something you'd enjoy more.


  • Registered Users, Registered Users 2 Posts: 5,246 ✭✭✭conor.hogan.2


    completely off topic and you presume stuff like you know me.

    OP - there is no recession in your line of work. You should look for something that interests you and try to get employed there.


  • Registered Users, Registered Users 2 Posts: 2,719 ✭✭✭ARGINITE


    There is no recession in your line of work. You should look for something that interests you and try to get employed there.

    +1
    Sounds like a fresh start would do you the world of good!


  • Registered Users, Registered Users 2 Posts: 15,065 ✭✭✭✭Malice


    completely off topic and you presume stuff like you know me.

    OP - there is no recession in your line of work. You should look for something that interests you and try to get employed there.
    Could you please use the quote facility when replying to posts? I reread stevenmu's post a couple of times to try to figure out what he'd presumed about you before I realised it was a completely different post you were referring to :o.

    On-topic I would definitely echo the general sentiment of the thread in that if you are fed up with where you are working or what you are working on rather than the actual job that you do then a move is well worth it. I (and I'm sure others) have changed jobs after realising that I was unhappy where I was and it's really only once you've moved that you can appreciate just how unhappy you were.


  • Registered Users, Registered Users 2 Posts: 113 ✭✭lenovoguy


    Hi

    Thanks for all the responses. I think that being here for a while has dulled me to some of the bad habits and practices I see in code, and I'm concerned not only about my salary and prospects, but of also picking up said bad habits, and being stuck coding in Microsoft-ised C++ which from what I'm seeing is becoming less and less relevant. One of the most frustrating aspects of developing here is the long build times - often a minor change to one header like a function signature modification, or adding or removing a class member variable will invoke a full rebuild as every other source module imports it directly or indirectly.

    I suppose I should put my money where my mouth is now and look around. The thing that's keeping me here really is the flexibility and location, and also the FEAR. I had a horrific interview before i started my current job where i went through emails with problems to solve, phone interviews and finally face-to-face interviews where I was grilled on heavily theoretic and algorithmic questions for four hours, and was totally not expecting it. I'm just afraid of going out there and having my confidence knocked by an interview like that.


  • Advertisement
  • Closed Accounts Posts: 18,056 ✭✭✭✭BostonB


    Sounds very much like a lot of places. Only way I've ever found of getting around people who insist on bad practices, is to leave and find somewhere better. That said I'm stuck in somewhere similar at the moment.


  • Registered Users, Registered Users 2 Posts: 5,246 ✭✭✭conor.hogan.2


    Are old/bad practices common in newer companies/startups?


  • Closed Accounts Posts: 18,056 ✭✭✭✭BostonB


    I've seen it everywhere tbh.


  • Registered Users, Registered Users 2 Posts: 981 ✭✭✭fasty


    They can be. It just depends on where the new companies and startups get their developers.

    The thing about a newer company is, it's easier to remove code smell compared to a place that's been coding themselves into a world of pain for over a decade.

    At an interview, it's just a matter of asking about code practices. Stuff like "do you do unit testing?" and "do you have automated builds" will reduce the risks of being stuck somewhere crap by a few orders of magnitude.


  • Registered Users, Registered Users 2 Posts: 5,246 ✭✭✭conor.hogan.2


    Opened a new thread - as not to flood this thread. Its loosely about bad practices.


Advertisement