Social networking for corporate climbers

The only reason that IT professionals hate Facebook is because they didn’t think of it first! Don’t get me wrong because whilst I don’t have a Facebook account, I don’t hate Facebook; it certainly has it’s place for keeping you in touch with friends and sharing your experiences with each other, but like most tools, it needs to be used for the right purpose.

Just like using a chisel to turn a screw is a disaster waiting to happen, collaborating or networking with future employers on Facebook is not the right way to go about selling yourself to a prospective employer. A future employer does not need to know that you loved last nights casserole or that you Lindsey Lohan and Justin Beiber should hook up. They especially don’t want to see pictures of you from last Friday night at a sleazy nightclub slobbering all over some guy/girl and/or passed out drunk on the curb.

LinkedIn is the screwdriver you need – the tool you need to sell yourself online to prospective employers and employment agencies alike without all the extra personal baggage of who you hang out and what you did last Saturday or how many credits you have on farm-ville.

If you approach LinkedIn as your online CV and keep it up to date with as much detail as possible about what your roles and responsibilities were in each role, the calls will come. You even get to build a network of associates that can vouch for your skills and provide recommendations.

More and more these days, recruiters are relying heavily on tools like LinkedIn and the associated recommendations and connections to headhunt suitable candidates that match their clients requirements.

Additionally, tools like twitter and WordPress blogs are also valuable tools in selling your skills online. You don’t need to be looking for a job with every blog you write – just share your knowledge and hopefully someone will see that the knowledge you possess is worth paying for. Twitter is a great way to tell people about your new blogs, or share small tidbits of information as you come across them. This highlights that you are well read and keep up with current affairs, technology, etc.

Ultimately, its not always a build it and they will come scenario. Gradually as you build up your profile, and add more and more connections – typically past and present work colleagues, your network will grow. Be sure to give as much detail as you are comfortable with (and legally permitted) regarding your roles and responsibilities. Remember your employment contract may not permit you to publish or talk about the particulars of projects that you might be working on. Take for instance the HP executive who recently inadvertently announced the company’s new cloud strategy.

Keywords will help recruiters narrow down you as the candidate they are looking for. In IT, terms like SDLC, delivery, governance, service management, risks, performance testing, if applicable, will highlight you as experiences in operational service management and skills in governing risk and performance. you get the what are you waiting for?


Connecting with Museum Visitors Online and on Site with Technology

I am a relative new comer to the Maritime Museum circle, not because of my age, but because I only recently became a member of a maritime museum. My involvement in maritime museums and writing this paper has allowed me to share two of my greatest passions – Boats and Technology. I am qualified as a Naval Architect having a Bachelors Degree in Engineering (Naval Architecture), but sadly I now work in IT building and managing large corporate web and software projects. I have been working in IT for nearly 14 years now and have been using the web since it first came out back in 1996. I’ve finally found an outlet where I can give something back to the Maritime community and I am currently working on re-designing several Maritime Museum websites.

So, I am here today to talk to you about connecting with visitors – both on-site and on-line. I’m going to briefly look at why we need to connect with people and then I will go onto various ways we can use our technology and history to make these connections.

Read more of this post

Hibernate makes Developers Lazy-er

The beauty of Object Relational Mapping or ORM tools like Hibernate is that it allows developers  to write less code by focusing on an object oriented approach to programming rather than a more intensive data table centric approach.  This consequently reduces the amount of SQL coding performed by the developer and this experience, over time,  can negatively influence the developer when modelling the database structure.

Database skills are essential for almost all developers these days with enterprise solutions being designed with data at their core. I believe that whilst the developer remains ‘abstracted’ from the data, they become more complacent in the data model which is likely to result later in poor performance and capacity bottlenecks.

There are plenty of articles and opinions on where business logic should reside within a multi-tiered architecture – in the User Interface, the Middle Tier, the back end or even in the database. There is a case for each of these and all of them as well. Hibernate, or ORM tools suggest the Data Layer should be simply that – data only, and any business logic should be further up in the architecture.

As a consequence,  and from my own experience, I have seen web solutions that make thousands of database calls to load a single web page due to a lack of appreciation of the data model, and a reliance on ORM tools to do the grunt work and gather the required data. For example, row by row iterative queries might perform adequately for a single user in a development or test environment, but what happens when you go live and there are now thousands more records and hundreds of users?

When does the developer stop to continue production data volumes and performance? In many of these cases, and again from my own experience, a simple database index is all that is required to resolve performance issues, but why aren’t developers thinking about the data? because Hibernate is abstracting them too much from the data and developers are losing touch.

It is amazing how many developers know SQL but not Transact SQL (i.e.  how to write Stored procedures).  Cursors used to be “de rigueur” but were not as efficient as hash-tables or temporary tables for iterative data processes. Now the whole process seems to be migrating into the code with technologies like JPA in JAVA and LINQ in Microsoft languages.

Now it is important to highlight that laziness can be seen as a positive attribute in developers. A lazy developer does not want to do things twice and write more code than is necessary so they look for smarter solutions and tools to help get the job done faster. It is just my opinion that some of those tools and techniques are moving developers away from some of the core fundamentals of software development to the detriment of performance.

Non Functional Requirements

All too often software development projects focus solely on the functional requirements, after all, upon delivery, our clients simply want to see an attractive functional solution. But what do our clients know of performance, scalability, capacity, security and availability? These non-functional requirements are typically implied, assumed, or the client is simply not aware that need to be specifically catered for. Instead the need to be driven from an IT perspective, but how do we (IT) go about putting measures on performance, capacity & availability and how we can ensure we deliver on these?

Any measurements of an object need a base unit of measurement, or at least a yardstick to measure against. It is not possible to measure performance without a yardstick since there is no unit of measurement. So what do we consider performance? Is it simply the ability to manage with whatever levels of usage are thrown at our solution? Is it a total number of users, or user requests per second? for web applications we normally measure page response times, but for most applications it should be based on the response time from an event (a click, or keystroke ) to a final rest state. If we base our ideas of performance on previous experiences, we need to have specific measures. E.g. If an existing website took 2.5 seconds to load for a single request, but slowed to 7 seconds for 100 simultaneous requests, then what do we consider acceptable performance if our new website takes the same amount of time to load? We can consider factors such as file size, bandwidth, the hardware (CPU & RAM), or Application Server. Fundamentally, we might assume the same performance as existing experiences is acceptable, but for how long?

An effective tool to ascertain current usage levels in terms of peak usage times, days & no of users/requests throughout is a Business Usage Model. This BUM defines the expected no of users now and in the future; the expected peak periods of use – for business or financial systems, this typically shows peak usage between 9am and 5pm Monday to Friday with peak usage typically earlier on. Over time, a trend can be determined to help predict future peaks and volume of users. Additionally the business may have some specific plans on how many customers or clients they are targeting to acquire over a given period. Tie these figures together and you should be able to predict your worst case scenario – how many users making requests at the peak time on your peak day. Test your site with that volume and measure how long it takes to load your site (specific pages that provide the most functionality). Now the figures you record will depend on what you have decided is acceptable. For financial transaction sites e.g. Banking and Trading, anything more than 1 second is unacceptable, and for anything with online bookings, you need scalability. Read more of this post

Philanthropy starts at Home

We all have certain charities, causes and not-for-profit organisations that we go out of our way to support and there are others that we graciously decline. For me, given my background in Naval Architecture, its Maritime History, and late last year I became a volunteer of the Sydney Heritage Fleet otherwise known as the Sydney Maritime Museum.

As a volunteer I can offer services in all manner of areas including deckhands, tour guides, hospitality, shipwrights, carpenters, general labourers, rigging, painting, welding, riveting, restoration and clerical roles as well. Given I have a full day-time job and a young family at home, sparing time to assist in any of these roles is quite difficult, so I’ve turned to doing what I do best – Website design & development.

So through this philanthropic gesture, Mammoth Technology has been engaged to provide an update site for the International Maritime Museum Congress – a not-for-profit self-supporting international organisation for maritime museums all over the world to come together and share mutually beneficial research and standards for maritime preservation.

Additionally, in March I will be travelling to Mannum South Australia for the 2011 Australian Maritime Museum Conference where I will be presenting a paper on how Museums can connect with Visitors online and on-site with a focus on how technology can assist. I’ll be talking about a few new technologies and some old ones – e.g. Free Online CMS solutions, QR and RFID tags, Augmented Reality Applications, Interactive “Surface” like interfaces, and the “real thing”. I’ve spoken to some staff from some of the top Museums in Sydney and there is definitely a trend towards these sorts of technologies, however the real obstacle to adoption of these technologies will be the limited funding to many of the smaller not-for-profit museums that dot the country.

It really is up to each and everyone of us to commit time and support to our “special interests”. Wether it be a Museum, a charity or even the local school canteen, these organisations cannot sustain their existence let alone technological advancement without the thousands of volunteer that help to keep them running.

Use the following links for more information on how you can volunteer at the Sydney Heritage Fleet or your local organisation. Every little bit helps.

Standing on the Shoulders of Giants

We are “standing on the shoulders of Giants”.

No matter who you attribute this famous quote to,  we are still thankful to all those that came before us and provided us with lessons learnt so that we can contribute to and build on their ideas.

Ten years ago, almost all of the web solutions I provided were bespoke solutions that I tailored to every client. I did reuse existing code from previous jobs, due to retaining copyright and passing on a perpetual royalty free license to my clients to make whatever changes they see fit, howevever it was only ever limited to core functionality and almost every other web page was developed as static html using a common header and footer that contained the site’s look & feel or “theme”.

Nowadays, the same sites can be built in less than a day using tools that are freely available to anyone that wants an online presence. That’s right. I’m talking about WordPress. Over the years I’ve seen quite a few attempts at online site builders that let you customise and create a collection of webpages, but they were always compromised in some way – lacked theme support, CSS edit-ability, cost too much or were functionally limited in some way. and has all the features I ever thought were needed, yet it has so much more. WordPress – where were you 10 years ago?

Sure as a web developer, the longer it takes to build a site, the more you get paid, but with clients looking to pay as little as possible and competition in a growing market, the faster you could knock up a site and get it out, the sooner you could move onto your next job. Add to that a lack of respect for true experience, which meant you were competing with 14 year old kids who were pretty cluey at putting together a functional page but had no idea about usability and performance, and it becomes all too easy to become very disenchanted with the whole industry.

So now, as I sit here and write this blog using WordPress, it becomes so much clearer that the next website I build will be using WordPress. With the vast number of free and commercial themes available and widgets and plugins, I no longer need to do Photoshop layouts or write any code. Imagine that! As a web developer, I’m back on an equal footing with my clients who are equally as capable of performing the (WordPress) famous 5 minute install and getting online. Have I become redundant? Well, No. that’s probably being a bit extreme. Web Developers will alway be required to customise, configure and update sites and themes.

I’ve come of age considering my last site was built using Joomla – an open source PHP-based CMS similar to WordPress. I managed to get by building an entire site with image galleries, news articles, and of course the admin system to create , update & delete articles, pages and anything else – all without writing a single line of code.

Does this make me a lazy developer? I don’t think so.

Does this make me a dumber developer? Quite possibly, but that’s another story. (Read The Shallows by Nicholas Carr for more about what the internet is doing to our brains).

Does this make me a better developer? I think so. The client gets what they want (in fact so much more if you consider just how extensible WordPress is) and for much less that it would have cost to provide a bespoke solution.

I  believe that when using tools like WordPress and Joomla, we are “Standing on the Shoulders of Giants” and this allows us to go so much further in what we can do and deliver for our customers. Anyone that’s not looking to leverage existing solutions to deliver is not looking far enough. Granted not everything that can be invented has, but we can always do with a bit of a boost!

A few of my favourite things…