Thursday, 30 September 2010

My Top Ten reasons to be a software developer.

  1. It’s now cool to be a geek. Don’t believe me? Well, ask Mark Zuckerburg, Steve jobs and the Google guys.
  2. You get to work with the latest and best tech out there. Well most of the time, if you are unfortunate enough to get stuck maintaining legacy software (been there), then this point does not apply to you.
  3. You can work anywhere. Because these days pretty much every company uses the internet and computers, and where there’s internet and computers, there’s software, and where there’s software there are.....? Yep, you guessed it, software developers.
  4. The pay is not bad, could actually be really really good depending on your experience and smarts, don’t believe me? Well, ask Mark Zuckerburg, Ste.....
  5. Low entry barrier.  Anybody can do it, though the more qualifications you get, the more your pay is likely to increase
  6. ts fun and challenging. Or should I say, it CAN be fun and challenging, can get pretty dull and unchallenging at times (testing and debugging)
  7. All the resources you need are easy to get and cheap as dirt (it rhymes). You don’t need an expensive stethoscope or defibrillator to work (what’s a defibrillator you say? those things doctors use in movies to bring people that just died back to life, you know the electric voltage just Google the word) , all you need is a computer, an internet connection and you are in business.
  8. People will think you are clever. For real think about it, what (apart from women) is more complicated than computers, if you can understand computers you can understand anything.
  9. Potentially relaxed hours. In most software development houses, it’s not how many hours you put it, but how much you get done that really matters, so it’s quite normal to work on something late into the night, send it to the office in the morning via email and come into work later.
  10. Not physically tasking.  You get paid to sit down in front of a computer on comfortable chair typing on the keyboard, now isn’t that just paradise on earth

    Tuesday, 28 September 2010

    My Top 10 reasons NOT to be a software developer

    • Pressure – A major client needs an update installed, they can’t conduct any business without it, your technical director is close to tears, you are the only developer around, you need to churn out code which you know absolutely nothing about, and asap! OMG OMG OMG!  Welcome to the wonderful world of software dev.
    • Stress – Imagine the scenario painted above happening every week, I dare you not to be stressed out
    • Brain fatigue – software dev is akin to seating at a desk trying to solve the geometrical meaning of the central extension of the algebra of diffeomorphisms of the circle (just in case you are wondering, I got that from googling “most difficult math problem”) every single working day of the week, what do u get? brain fatigue.
    • Your social life, relationship, sex life might suffer – why? Because you are busy trying to debug the damned code that you broke and finish off what you were working on in the first place before you broke the damned code. 
    • Its not a job, its way a life –  ever seen a doctor stare lustily at a new ultra powerful high tech stethoscope? Nope. Seen a plumber saying sweet nothings into the holes of a new super strength carbon fibre pipe? Nope. Seen a software developer professing his love for his computer? Yep! Why? Software developers live for tech.
    • Work hours are not fixed - software developers only rest when the client is happy, and everybody know clients are never happy. Do the maths
    • Pay is.. not so good – with all I’ve mentioned above you‘d think the pay is super, WRONG!!!  Because software developers come a dime a dozen these days, the pay is terrible.
    • You become everybody’s tech support –when dad can’t print his document because the paper is jammed in the printer, guess who they’ll call from wherever the hell he is on the country? Yep you guessed it, the guy who practically lives with computers, the software developer. 
    • You might get a bad back – if you r unlucky enough to get a bad chair then the long sitting hours will almost inevitably mean a bad back.
    • You might get fat - forget the might, you will get fat, it’s simple, sit on your ass for 8 hours a day, get home and do the same, what do u get? A very rotund, socially dead, sexually inept, lifeless, soulless individual sitting in front of computers.

      Ok ok, it’s not all bad, there are some perks to a life dedicated to software dev,  in my next blog post I will highlight some of the VERY FEW advantages.

      Tuesday, 21 September 2010

      The App state of Mind: A software developer must

      I have noticed a trend in I.T, the need to develop and release well tested products very quickly, call it “the smart phone app state of mind” or simply “the App state of mind”.

      Why call it this? I’ll explain;  according to Apple Uk, the app store currently has over 200,000 apps, this means massive competition,  more importantly it means for any app to succeed i.e. achieve significant sales, it has  to be really good (in the first place), fully tested, marketed and released very quickly, the same applies to the larger I.T world, in the today’s fast paced, highly networked,  innovation driven environment companies have found that in order to survive they need to speed up their product dev and sale process or risk facing a bottom up disruptive overtake in the market place, Nokia readily comes to mind.

      This App mentality can be clearly seen in the software dev world as well, as more and more companies are shifting from traditional software dev methodologies e.g Watefall, EUP etc, to more agile ones e.g. Agile Scrum/XP, DSDM Atern, Agile unified process (AUP) etc. In response to this more coding methods (TDD, MVC), platforms (Azure) and tools (nunit, mbunit) are being developed to cope with the challenge.
      In the same vein, any software developer intending to stay competitive in the software dev world needs to adopt the App state of mind, it’s no longer enough to be a good coder, they must be able to develop fully tested and functional software very quickly, for instance they need to be able to use TDD in concert with Agile methodologies to develop production ready code within the shortest of times. The ability to switch to more traditional approaches when needed would be is a major plus.