Tuesday, August 14, 2012

Java SE - could it be more pointless?

Back in 2007 I gave a presentation on Java whose theme was that Java had won.


On slide 12 I put forward a proposal that I'd talked about here before as well in that Java needs to be professional and critically reduce to having a small core on which people can innovate and develop whether that be in smartphones, desktops, servers, virtual machines, smart cards or anything else that people dream up.  Simply put Java SE has no point in today's IT landscape as the 'primary' release on top of which everything else is done.

When I look at how SAP are pumping new life back into ABAP and how other languages are exploding, not because they make things better but because they address specific niche concerns.  High-performance computing still reverts to the assembly languages, in part because Java's bloat means it can't be tuned down to the core that they need.

The question is whether anyone has the guts to make the change or just continue on the road to obscurity.

Java needs a revolution, not another poor attempt at intelligent design.

Thursday, August 02, 2012

How to weed out bluffers....

Following up from the concept of thinking being dead I'd like to talk now about one of the biggest challenges in IT.
How do you spot those people who are bluffing?
And here I mean people who don't really think they are bluffing because they are rubbish, or those that are bluffing because they think you are rubbish, its related to the challenge of Terry Pratchett Architects (PArchitects?) where how do you tell someone who distaines technology through knowledge v one who distaines through ignorance? The point is this:
95% of people interviewing senior IT people don't understand enough to weed out bluffers
This means that regularly I come across people who have a senior position based on a level of buzzword knowledge and general ignorance of reality that causes me to step back in amazement at the ability of the person to hold down a job. Normally of course these people are in jobs 12-24 months and often are contractors where such variability is almost seen as a benefit rather than an indication of being found out. So here are the top tips on weeding out the bluffers, and I'm assuming here we are at the Architect level and you can weed out bad developers...:
  1. Don't do it in a phase 1 Tech, phase 2 HR interview process - add in a middle phase which is set up by phase 1. 
  2. In Phase 1 ask the following 
    1. When was the last time you coded into production, what language, what plaform? 
    2. When was the last time you created a conceptual and logical data model? What platform for? 
    3. What is the difference between Regex, Regular Expressions and Perl in string handling? 
The first two are the real set-up questions... the last one is something that stunned me once when someone I was interviewing kept saying "I did Regex" and then later on said 'On that project we used Regular Expressions', I asked him the difference and he said that Regex was a language, Regular Expressions was... a different language. The point here is that you are after an understanding of the languages and platforms for which this person claims some level of expertise.

Lets be clear here, I'm of the opinion that an architect, whether Solution, Enterprise or Business who claims to sit within the IT domain should still know how the platforms work and especially should remember how their last platform worked. In the second interview you should include real deep developers, get them to ask real deep developer questions. You aren't looking for 'this person is a bitch ass programmer in language X' but 'not brilliant, but seems to know his stuff generally'. What you are looking to avoid is 'I don't think this guy has ever used X in his life' or similar statements.

Similar approaches, but more abstract should be used for PMs and BAs where you should get PMs and BAs who have done similar technical projects to ask the questions. I'm stunned at how many times I meet someone who is a 'Functional' SAP BA and then when you introduce them to someone who really is a functional expert in that area they fall to pieces... sometimes not even knowing the acronyms of the SAP modules they claimed to have used ('We did supplier management, not sure what SAP called it') The point here is that you need a first stage to find out where the bluffer claims to have depth and then a second stage to rip the hole if it exists.

Bluffers florish in a world where thinking doesn't exist.

Wednesday, July 04, 2012

Thinking is dead

Anne wrote a reasonable blog a while ago on why SOA was and wasn't dead but I'd like to go a bit further today and say that generally the concept of thinking appears to be dead.  The value of 'thought' and thinking in IT has diminished, in a way that mirrors society at large, to the stage where design, planning, architecture and anything else other than just banging away at a keyboard appear to have been relegated behind opinions and statements as fact.

REST was a good example of this.  It was going to be the revolution, it was going to be the way that everything worked.  Two years ago I called bullshit on that revolution and I still say its bullshit and the reason is simple.
IT values technologies over thought
So people genuinely, and stupidly, think that how you shift packets from A to B will have a massive impact in how successful IT projects are at delivering their objectives.  What impact has this had on the massive spend of ERP packages out there?  Nothing at all.  What has impacted that?  Well folks like SFDC because they've shifted the business proposition and in so doing have moved the way business people think about IT systems.

The same goes around with Hadoop and Big Data.  The massive amount of information growth is complemented by an equally large amount of bullshit and a huge absence of critical thinking.  What is the major barrier to things like Hadoop?  "Its lack of real time ability" I hear people cry.  Really?  You don't think its that we have millions of people out there who think in a SQL Relational way and who are really going to struggle thinking in a non relational non-SQL type of way?  You don't think that the major issue is actually in the acquisition and filtering of that information and the construction of the very complex analytics that are required to ensure that people don't go pattern matching in the chaos and find what they are looking for.

We are currently seeing a rush to technology in IT departments that is focused hugely on bells and whistles while the business continues to look at outcomes.  With the business looking at SaaS, BYODand self-service applications the importance of thought and discussion in IT is acute. What I often see however is statements of 'fact' like 'you don't need integration its SaaS' or even worse a statement on a specific piece of API based technology as being important.

Planning, architecture and design are being seen in parts of IT as bad things as a mentality develops around a concept that some how basic fundamentals such as TDD, contract design and doing things that actually proven to work are in some way wrong.  Adoption of unproven technologies is rife as is the surprise when those technologies fail to deliver on the massively over hyped expectation and indeed fail to even come close to delivering at the level of dull old technologies that do the job but don't currently have the twitterati in thrall.

'Experts' in this arena has come to mean 'people who shout loudly' in a similar manner to US politics.  Facts, reason and worst of all experience are considered to be practically a disadvantage when being an expert in this environment.  I was recently in formed that my opinion on a technology was 'tainted' as I'd used multiple other technologies that competed with it and therefore was 'biased against it'.  I'd also used the technology in question and found that it was quite frankly rubbish.  Sure the base coding stuff was ok but when I looked at the tooling, ecosystem and training available from those competitors I just couldn't recommend something that would actually work for the client.  Experience and knowledge are not bias, thinking and being critical of new approaches is not a bad thing, thinking is not dirty.

When I look around IT I see that design is a disappearing skill and that the ability to critically assess technologies is being replaced by a shouty fanaticism that will ensure one thing and one thing only:
IT will no longer be left to IT folks
The focus of shiny technology over business outcomes and the focus of short term coding over long term design will ensure that IT departments get broken up and business folks treat IT as a commodity in an ever growing way.

Thinking, design, planning, architecture and being skeptical on new technologies is the only hope for IT to remain relevant.


Wednesday, May 09, 2012

Carbon Travel Tracker

Okay so now in the iTunes Store is my first attempt at an application that does something actually useful. Its the Carbon Travel Tracker. I travel a lot, not as much as some but quite a lot more than most, two questions always came to mind

1) Just how much do I really travel
2) What is the Carbon impact of that
In the spirit of 'if you don't measure it you can't change it' this really was an application where I wanted it to be really hands off.  I don't want to have to enter all of my travel, I want my phone to stalk me all the time and work out what sort of travel I'm doing and what is the impact of that.

There is much more on the application on the Carbon Travel Tracker support pages but here are a few highlights

  1. Tracks automatically in the background - kick it off and it just runs
  2. Automatically splits travel into sections/journeys and makes an educated guess on the travel type
  3. Allows you to manually override whole sections or sub-sections with the actual travel type
  4. Records your distance traveled in the day, week, month, year and since the app was installed
  5. Records the carbon impact of that travel
  6. Tells you how many times around the world that travel equates to
  7. Tells you how many trees, over the same time period, it would take to make you carbon neutral
The purpose is really to have a map so my kids can see where I've been an it sort of escalated from there.


So the map required points, points gave me distance and speed, speed & distance gave me travel types and finally that gave me the carbon impact.

So I now know that basically I don't have a Carbon Footprint, I have a Carbon Body bag.  Now as it says at the top, this app is now:





Wednesday, May 02, 2012

Why coding isn't a 1 day thing and why the UK view on education has to change

decoded.co have started quite the PR and education puff around the idea that they can teach you to code in a day.  Or to be accurate on their site they say they
To teach anyone code in a day.
Now clearly that sentence doesn't make sense as coding is a task, something you do so it should be 'to code' not simply 'code'.  Its like saying 'To teach anyone run in a day' so first off they clearly need to fire their copywriter.

This is why I wrote a series of posts that came out today

The purpose behind these posts is to point out the idiocy of the idea and the lack of respect that science and engineering really have in the UK.  No one would dream of claiming that you could be an artist in a day (despite the fact that at 13 my bed was WAY messier than Tracy Emin's) but its acceptable to claim that coding is somehow less challenging and requires only a day to learn.

Lets be clear here, I am a massive supporter of getting decent technical IT education into schools and of raising the profile of technology and getting more people involved in coding.  I regularly suggest to people that they should give it a crack and suggest using existing examples as the starting point for learning.  If the intention was to introduce people into coding and open their eyes to the possibilities then I'd be okay, but this course doesn't aim to do that it aims to make people think they are actually coding after a day.

I'm sure some people would read this and think 'ooooh he would say that because he has a vested interest', well I'd like to put people like that in the same group as those who believe in horoscopes and homeopathy and refer to astro-physicists and doctors as 'vested interests'.  I do this for a living, I did a degree in this subject and I'll tell you two things
  1. Natural Talent matters in code the same way it matters in art, some folks are just better at thinking like a computer and bending it to their will.  Give me one of those with some basic training over the learn and code by rote developer with 20 years experience
  2. Grasping the basics isn't that hard
The latter point is the one I'd like to say.  I reckon I could teach anyone to ACTUALLY code and ACTUALLY understand what it was doing in a couple of weeks.  At the end of that they'd know about pointers, memory, algorithms, OO basics etc and be able to write themselves a small program from scratch.  If they turn out to be in the natural group then the program could be quite complex, if not then it will be a directed view of a specific solution.

That is why decoded's idea is so rubbish, not because code really does take 10,000 hours to really do well but because it doesn't.  By reducing it to a day of cut and paste you actually miss the creativity and the real sense of achievement you get from well crafted and working code. But in the UK this isn't surprising to be honest as science and engineering have for a long time been very much the 'dirty' parts of education, areas where its okay to look down on because they aren't as 'pure' as Art.

The UK is a country where people value a degree in Classics... Latin and Greek.  Its seen as the 'top' degree from Oxford and Cambridge in many circles.  How mental is that in 2012?  How mental would that have been in 1950 in fact?  Despite this ridiculous concept of art subjects and Classics been 'valuable' and the active steering of kids away from Science, Maths and Engineering from a young age its amazing how many world leading engineers the country has produced and the number of Nobel prizes that come from this little shore.  The talent is there but the support most clearly is not.

Coding in day is typical of the lightweight way that British Education, Media and Society treats Science and Engineering, its something for 'geeks', its dirty, its complex and its completely ok to disagree with it from a position of total ignorance as this gives us 'balance'.  It is perfectly okay for people to hold views from ignorance on Maths, Science or Engineering and indeed the set up of British Education is designed to do just that, most especially to ensure that as few women as possible do those subjects.  Much of this dates back to the 'Arts and Crafts' movement of Victorian times which looked to portray science and engineering in a negative light when compared with the 'purity' of hand-crafted art.

The reality is that Science, Engineering and Maths are what the UK does really well, Newton changed the world through the use of Mathematics, in the 18th and 19th Century Britain changed the world through Science and Engineering and in the 20th century it was Brits who invented many of the things we take for granted today as well as providing the theoretical basis for modern computing (and the first computer).  

Despite all of this it is still not supported or promoted in the way that it should be.  When I travel to Germany, Netherlands, France or the US I see a different perspective.  Even in the US where the concept of jocks and geeks is ingrained into the school system there is still clarity at Universities over what achievement is about.  

Getting people interested in coding is absolutely something that should be applauded and encouraged but it needs to be done in the same sort of way that people would be taught how to paint, how to write, how to postulate on the foundations of the universe: as a building block, a building block on a long and potentially wondrous journey.

It also needs to be treated with the seriousness that an industry which has revolutionised the planet deserves.  This is the economic powerhouse of the world, it has bigger impacts than any other single industry in the world today.  Ultimately isn't that something that deserves real government focus and real media focus rather than receiving coverage more superficial than that dedicated to horoscopes and homeopathy?

Learn to be French in one day

Ever listened to a French Art house film and thought 'I wish I could do that'?  Ever walked through the streets of Paris listening to people and thought 'How do they do that?'.  For too long being French has been thought of as something that you need education for, something that requires rigour, experience and actual learning to achieve.  But no longer.

I am now offering people the chance to learn to be French in a single day.  As part of this course you will
  1. Wear a stripy jumper and put onions around your neck - and you will be French
  2. Shrug and point at things - and you will be French
  3. Refuse to go on with the course and burn a sheep(*) - and you will be French
  4. Use words such as "Bonjour", "Zoot alors" and "Bricolage" - and you will be French
At the end of this one day course you will be a fully fledged French person and understand all the principles behind France and be able to declare yourself French(**).  I firmly believe being French is not just for people who were born there or who have lived there and achieved nationality, its for anyone who pays me money to do basic tasks where I can wrap enough crap around it to convince them they've actually achieved something.

At the end of just one day you will understand what it takes to be Fnrehc, you will realise that being French is something that is actually fundamentally easy and all French people are actually just over complicating it.  There is nothing else that you need to learn to be able to say that you understand what it takes to be French.  YOU will be able to look at the French nation and say 'I know exactly what it takes to be French'.

* additional fee applies
** not legally binding, does not include passport


(in homage to decoded)