Wednesday, February 25, 2009

It has been....... busy

Hi All, 

Yes, I know, I haven't blogged in a long time... I have been VERY busy with www.jerrong.com, but more importantly I have taken on a new exciting role as the Solution Architect for Sitecore Australia. Sitecore is a really cool Web Content Management System that I have been watching for some time. I will write a full blog on the company when I have time to catch my breathe (I am writing this from the Airport in Canberra, Australia) but basically they have a product that is sexy, crazy good, and one of the most exciting Content Management Systems I have seen.....well...ever. Check it out!

Last weekend, while I wasn't working on Sitecore stuff I release a new version of Jerrong which added a few bug fixes, a few more features and some CSS fixes (it is getting closer and closer every day). Check it out!

I plan on writing a new part of the Contracting and Optimizing your time blog when I get some spare time, but for right now, I have been head down with learning the sitecore system......just an insider tip...it is awesome! Especially for a .net web developer.

Sleep time....

- Tim

Wednesday, February 11, 2009

Contracting and Optimizing your time Part 7

Hi Guys, 

I have been extremely busy in the past few days, working through bugs, moving house, so I haven't had time to Blog since the 8th. Once again, it is great to get feedback from the people following my blog, as you don't know how much it pushes me to write more and more articles from my experiences. Insert emotional tears here :)

But it is that time again, time to get into the next installment of the series on contracting and optimizing your time. Keeping in the same vein as last week of giving people advice in times of economic crisis, I have decided to talk this week about working on contracting projects that you know will work in times of economic downturn. Ok, so this isn't going to help out a lot of people that don't have contracting work at their fingertips, but then again, every other week has been about that, so I thought it was only fair to offer advice to people who have been very succesful in their contracting work but also face the problems that other contractors will always face. My company has been working on a few projects lately and it is keeping us all very busy (however I don't really do a lot with it anymore, it guides itself). Some of the ideas (that I won't disclose as they are confidential) are the kind of ideas that, as soon as you hear it, you say to yourself..."Yes...I can really see that working". Others, although we still love taking them on as clients, require a lot more research from Jerrong Web Solutions to discover how they could rise above the competition. To be honest, and this is the relationship that we have with our clients, if I run an idea past some of our staff and we all don't think the idea will work, we will definately tell the client. However, our stand is, that no idea is a bad idea, it just needs to be scaled to cater for today's market.

So without further jibberish talk (I am well known for this), what questions do we ask ourselves at Jerrong Web Solutions that make us believe that a product will either work or not? 
  1. The first important step is to have multiple people analyse the project from different perspectives. We usually get a technical perspective, a marketing perspective and a third party perspective.
  2. Who are the competitors in the market and why are they the best at what they do? 
  3. Is the idea simple? Will it take a long time to get up and running?
  4. How enthusiastic is the client about his/her product? (I kid you not, sometimes I have worked with customers that really don't know what they want. Sometimes these are fun, because it gives the team a lot more flexibility to be creative.)
  5. What growth is there in the business idea? Is it the kind of business model where if they don't get 1000's of users, then the product doesn't work?
  6. What financial backing does the client have?
These aren't the kind of questions that are YES or NO answers. There are a lot more indepth than that. Without going into a lot od detail and boring you, here are two sample answers to these questions, one that gets the "thumbs up" from us, and the other that gets the "this needs work".

EXAMPLE 1: A Project that Jerrong Web Solutions gives the "thumbs up" to
  1. Who are the competitors in the market and why are they the best at what they do? 
Company A has 5 huge advantages over the rest of the competition. Most importantly, the company
has a charity aspect, credit card integration and a client that is well networked in the area of the product.
 
2. Is the idea simple? Will it take a long time to get up and running?
The project will take the Web 2.0 approach of simplicity. One page, with the intention of getting the user in and out (bouncing) within 1 minute. 

3.How enthusiastic is the client about his/her product? (I kid you not, sometimes I have worked with customers that really don't know what they want. Sometimes these are fun, because it gives the team a lot more flexibility to be creative.)
The client is the product. They have great ideas of how to enable the business and have ambition to dirve all the marketing and advertising themselves.

4.What growth is there in the business idea? Is it the kind of business model where if they don't get 1000's of users, then the product doesn't work?
The business has a great model, as it will scale the business to meet the demand. The area of work would be interesting and fun, so finding employees would not be difficult. Product will work if the client has 10 clients or 1000 clients. There is no rush to make this product large, straight away.

5. What financial backing does the client have?
The client is self funded as well as having a lot of support from the community and financial sectors.
The startup cost to the business is small and in the event of the business not working, the losses would be minimal.


EXAMPLE 2: A Project that Jerrong Web Solutions would say to the client that they need work on either their idea, their business model or other factors.
  1. Who are the competitors in the market and why are they the best at what they do? 
Company A is getting into a market that already has a lot of other large and well established players. Although the company has
great ideas, it is the kind of market that, the project would have to offer a lot to entice other users to stray from their other product.
 
2. Is the idea simple? Will it take a long time to get up and running?
Site has a complex structure as well as a lot of functionality. Estimated time or completion is 6 months.

     3. How enthusiastic is the client about his/her product? (I kid you not, sometimes I have  
worked with customers that really don't know what they want. Sometimes these are         fun, because it gives the team a lot more flexibility to be creative.)
The client has seen another product and bascially wants to replicate it but with a slight spin. Therefor the clients research is only off the back of other companies research. The client is not very open to other ideas. 

4.What growth is there in the business idea? Is it the kind of business model where if they don't get 1000's of users, then the product doesn't work?
The business has a great model, as it will scale the business to meet the demand. The area of work would be interesting and fun, so finding employees would not be difficult. Product will work if the client has 10 clients or 1000 clients. There is no rush to make this product large, straight away.

5. What financial backing does the client have?
Although having a large financial backing, the client wants the product built as cheap as possible. This is
obviously understandable, but if for example, the specs change, the client would still want the project
to cost as much. The client is not willing to invest in advertising and marketing.

I thought that showing an example would be much better than just stating the obvious. Feel free to comment or send me feedback on experiences you have had.

Hope this helps, 

 - Tim

Sunday, February 8, 2009

Obscure AJAX error htmlfile: Unknown runtime error

Hi All, 

Just a quick post to let you know of a sneaky little problem that only occurs in Internet Explorer. If you ever receive this error :

htmlfile: Unknown runtime error

The problem seems to be that you have multiple form tags within your one page. I stumbled across it because I
had created a user control in the past and didn't remember that it had a form tag in it.

Ok so that is the solution, but to be honest my work around won't work for everyone because I worked out
how to get rid of the form tags, the same might not go for everyone else.

BUT, remember, form tags!!!

Hope this helps,

- Tim

Contracting and Optimizing your time Part 6

Hi All, 

First of all, I would like to thank everyone for their comments and feedback, it seems that the advice that I am giving is helping some people out. Before I dive into this weeks installment, it is imperative to mention that there have been a lot of these "How to find work in a recessoin?", "How to keep your job?" etc tutorials and blogs going around in the blogging community today. Sites like http://webworkerdaily.com/ are generating a lot more guides on working, subcontracting and load balancing side projects. Hence, from what was initially going to be a 6 part series of self-help guides, I decided to keep ongoing as it seems to be helping others out in times when job security is at the forefront of society.

This weeks installment is therefor going to dicuss a part of contracting that relates directly to the topics described above. How to keep your contracting job when times are tough? The definition of a contract usually entails a short stint of work that has two main factors, high pay and professional output. The contractor is being paid above normal rate because they are basically thrown in the deep end and required to digg themselves out. 50% of contracts will always go over schedule and I don't mean "working for yourself" contracts, I mean, contracts where you are required to attend a persons workplace and work within their office. Why 50%? Because contract work is unpredictable, unless you have someone that has done a similar project many times before and is well aware of exactly what needs to be done. There are also other factors such as :

 - Lack of investment in money
 - Lack of investment in staff
 - Lack of documentation
 - Lack of vision

So of these 50% of onsite contracting, there is always a target on any contractors head reading - 

"If at any point, my employeer loses vision, can't afford the project anymore, or doesn't like the progress that is happening.......I will be the first to go...and promptly".

Translation, no person in their right mind would keep a contractor on, when a project is not going to schedule or plan, it is just too expensive.

We have now come to the end of the segway (stalling) in this weeks installment of contracting anf optimizing your time. How do we turn this target into a nice shinning halo? Here are some fundamental factors that can help in the removal of the idea that, "as a contractor, you will be the first to go".

 - Gain key knowledge about the business. Know something about the business that know one else either knows or has time to learn e.g. the API to web services that you are using within the project you are building.
 - Be a player in the design and decisions of the creation of the system you are working on e.g. suggest using technology that you are adept at, and perhaps others are not as much. Obviously, don't do this to the detriment of the project but e.g. if you are hired as the developer for building the business logic, controller and model of a project then opt to do it in Windows Workflow instead of building your own state machines. The idea behind this, is when employers are given the tricky job of having to cut staff because of funding, they will definately ponder questions such as 

 - "We can't get rid of Person A, because they have written all the business logic is something that no-one else here could easily pick up. However, Person B who built the database, we can easily get others to see how it was design. In addition, Person C, who worked on the front end is only using CSS and HTML, and Person A has had experience with that."
 - "If we get rid of Person A, we lose the felxibility to add functionality to the system. If we lose person C, it just means that the site won't look as good".

Now, don't get me wrong, you definately don't want to blackmail any employer, that is totally wrong. However, there is nothing wrong with showing to your employer that you are an integral part of the team and not easily expendable. 

Before I go for this week, let's just mention a couple of other small but important aspects for keeping your contract position.

 - Show up promptly and professionally presented to work.
 - Be the one in the team to always put up your hand for overtime (this pays off really well)
 - Be the one in the team that keeps your management uptodate with project progress i.e. send email reports, send daily tasks completed.

Little things go a long way.

Hope this helps, 

 - Tim

Thursday, February 5, 2009

Contracting and Optimizing your time Part 5

Hi All, 

Welcome back to the 5th installment in working in a contracting position, and discovering the bes ways to optimise your time. This weeks section is on interacting with other people in the workplace and what they expect of you. What does this entail? You have been given the contract position, you have been given a pay rate and you have been asked to come into an office to work. What happens the first day? Before I delve into what usually happens on the first day, let's look at some examples that I have personally experienced :

1. Given a specification document, given a computer and told "Ok, Finish It".
2. Not given any specification document, NOT given a computer and not given any direction. (Be wary of these).
3. Team meeting to discuss the project and my role within it.

These situations are typical, but predominantly, the later will be the most common of them all. Within the first day I have usually been given/done the following :

 - Specification Document
 - Introduced to the team and their specific roles
 - Given a computer and told to install my own environment (Visual Studios, SQL Server Client Tools - and don't forget your 3rd Party Tools)
 - Asked to read through the specification document and spot flaws and problems etc.

Then there are the things you just don't think about.....

 - Wearing the right attire to work. Believe it or not, your first impression is not judged a lot on your skills on the first day...it is your attire. Now, if you are like me, I have always worked in positions where there has been a very casual take on dress code. However, for the odd contract that I have done that has required business attire, man, you better make sure you dress right.
 - Organising your paper work. If you are like me, you have an ABN that pays PAYG, GST etc, and liability insurance, so if you ever really screw something up, you are covered. Don't forget, that on the first day, they will expect you to have it. Not only does it make you get paid sooner, it looks disorganised and lazy if you don't have the expected paper trail.

In summary, expect the first day to be a little laid back, work-wise, but pretty full on, organisation-wise. Don't expect people to come down on your XXXX skills, because to be honest, they haven't seen anything yet. As a side note, there is what I would like to think of as a myth, that full time workers don't really like contractors. Sometimes you will get people who will start quizzing you on things they know but think that you might not. Bottom line, if you know what you are doing, you will be able to respond promptly which will inturn, hopefully, earn you the respect of your fellow workers. On the other hand, if you are not totally confident with the "quiz" then simply act enthuisiastic and ask them questions like "oh...that sounds great, can you show me?"

Hope this helps, 

 - Tim

Wednesday, February 4, 2009

Contracting and Optimizing your Time Part 4

Hi All, 

Welcome back to part 4 of the series on contracting and optimising your time. In this part of the series I will talk about a topic that will potentially be the maker or breaker of whether you will be successful in the contracting business. This being, doing a good job when you score a contract. One of the fundamental and important aspects of working in the industry is the personal and professional satisfaction of delivering the solution that is required in a contracting role. Before we delve into an in-depth analysis of this aspect, let's get the obvious statements out of the way.

If you do a great job you will most likely get more contract work or more likely the offer for a fulltime position from the company.

 

·         The IT industry is all about networking. You do something well for someone, 10 people hear about it. I have lost track of the number of times I have done a prolject for someone, and through "6 degrees of seperation" I later get feedback from another person in the industry saying "oh, I heard you made the XXXXXX website".

·         You are not doing yourself any favours by treating a contract position like a fulltime position.

 

·         Doing a bad job won't necessarily destroy your reputation, but as mentioned before...it is all about network...you do a good job..people hear about it...you do a bad job....people definitely hear about it.

 

 

Now that is out of the way, let's discuss what is expected from you when you are given a contract position/contract project. In my experience in working for a company, at the company, for a contract role, I have had many different environments that I have had to cater for. Some include :

·         You are here for a reason, we pay you big dollars and hence you don't get the benefits of a full time position.

·         You are told not to make friends, talk to or associate with anyone in the workplace.

·         You are placed with other developers etc in full time positions but don't work as many hours. You are however, expected to produce more work than the full time developers.

·         You are on your own. No team members. No help. This usually happens when you are given a contract that has been made available because another person has left the position and hasn't finished the product.

 

So then how do we give a summary detail of what is expected of you while working in a contracting position? Easy.....the answer is the same for all. Work hard, work real hard. That is why you are paid the big dollars. What do you get for this hard work? Well...

 

·         You get the realisation that whatever happens, you probably won't be there for long.

·         You might ware yourself out, but for short term contractors, they usually will take extended breaks after every contract to counteract this. (This s usually 4-6 weeks a year).


So yes, I am beating around the bush...I haven't yet described how you do a good job when in a contracting role. So here are a couple, and I will post more in future blogs.

 

1.    Have a repertoire of tools that you bring in with you on your first day. Depending on the role, I bring in different tools, but as an example if I was going for an ASP.net developer role, I have a folder on my home computer tailored just for that. It includes :

 

·         Firefox

·         Google Chrome

·         Ghost Doc

·         nUnit

·         FxCop

·         ReSharper

·         Reflector

·         LinqPad

 

2.    To add to this I will always install plugins such as FireBug, Web Developer and UserAgent Switcher.

 

So why do this? If your employer sees this he/she will say to themselves “great, this guy knows what he is doing, he will hit the ground running…this is off to a great start.”

 

3.    This one is a tricky one, and to be honest, sounds silly, but boy it can go a long way. Make sure you know more about what you are doing than your manager/leader/employer. When it comes down to it, your employer is relying on you to produce the results, but also make judgements on best practices. As long as you know more about say “asp.net” than your superior, then you can be confident that you will be held in a good light.

4.    Work really hard for the first 2 weeks. By this I mean, long hours (including unpaid hours in research). Within the first 2 weeks of a contract, it is always the fresh and exciting part. Make use of the fact that for 2 weeks you will not only love what you are doing, but also show to your employer that you progress well and are what you say....a good developer.

 

Next time I will be talking about interacting with other people in the workplace and what they expect of you. Until next time…

 

Hope this helps,

 

-       Tim

Monday, February 2, 2009

Contracting and Optimizing your Time Part 3

This is part 3 of my blog on contracting and making sure you are doing it right. This week I will go into detail on the importance of work load balancing. Let's face it, it feels good to know that you are good at your work and hence it is even better to know that you are getting a lot of clients into your business. It is because of this, that it is human nature to take on every project at your fingertips. If you can take one thing away from this week's section on contracting, it is that this is the worst thing you can do. You are one person (or even a couple of people in a company), and this doesn't mean you are en expert in every field. Even if you are, it may not be your niche...something that you do in your sleep....something that you can turn around in a short amount of time.

For example, I was offered to build an Iphone application that would sync with a system and update it whenever possible. "Great", I thought.  I have done some Iphone applications before and this although the process seemed straight forward, when do some short analysis, I realised I would have to do a lot of (unpaid) ground work to get up to speed on building the application. In the meantime, I have a small company wanting to build a web site that would take half the time, I would be much more confident with doing, and would be a quick and easy "tick" on the list of web sites I have built through Jerrong. So what did I do? Well seeing that I know someone who spends a lot more time working with Iphone applications, I decided to give them the job. 

  • Was it a loss?
  • Should I have done it to get more work in the Future from that source?
  • Have I just diverted all my business to a college for free?

The answer is NO.

Flip these questions on their bum and see what is produced :

  • Have I just done a bad job for a client that could potentially want more work out of me?
  • Have I just spent 2 days learning about the Iphone SDK, when I could have been much more efficient on other projects?
  • Have I just opened the oppurtunity to hire subcontractor for work?
The answer is a potential YES.

The bottom line is, if you are good at what you do and have built up a reputation, then their will always be work...and most importantly...work in your niche role.

I have forgotten to talk about one aspect that has definately effected me in ways in the past few days. An aspect that is by far the most important of them all. EVERYONE NEEDS TO TAKE IT EASY NOW AND THEN. You can't over-exhaust yourself or you will burn out. It is not smart. It is not productive. It is not healthy. So, in contridicting myself, even if you have been given a project to do that you would feel quite comfortable doing....you don't HAVE to do it. Sure, some other contractor/company might get to do it, but hey, when it comes down to it...you still have your sanity, a clear head and your loved ones. (It only took me 4 years to realise that!!! :) with a little help from another TW.)

Hope this helps, 

 -Tim