Look for educated buyers
When you are looking at jobs on RentACoder, look for intelligent buyers. You want to find someone that knows what they need. If they can write a detailed specification of what they need and if they can discuss the technical details with you then you are much more likely to have a successful project. With a detailed spec you can decide whether you can actually build what they want.
If they buyer just posts vague descriptions and clearly is not technically knowledgeable then resist the temptation to think it will be easy to please them or to dupe them. If they are not an educated buyer then the project will just be a mess.
Comments (0)The goal is to finish the project
The goal of working on a project is to finish the software. The software is not a never-ending, ever-growing pile. The goal is to have it finished. Then the software can serve it’s purpose to it’s users and you can take on the next programming challenge.
Keep this in mind as you develop. Take care to implement features in a way that will not require future intervention from a developer. Make the software self-sustaining for the users.
Comments (0)Succeed or face the wolves
The only way to survive is for your system to run well in production. As soon as you have production problems you make yourself vulnerable. If it is a momentary production issue then it’s ok. But, if you can’t quickly solve the problem or if the problem recurs then prepare to face the wolves.
The wolves sense you are weak and they will circle around you. Once they engage they will tear your system to pieces. They will criticize the architecture, the coding, the implementation, the design. They will take some performance measurements and roll their eyes and say it obviously could never work. Regardless of the fact that they have no baseline for their measurements.
Consultants will be called in. They will interview the team and study the data. They will look quite serious. They will write reports. You will tell them what the problem is and they will write it down. They will criticize everything you have done.
The only way to avoid the wolves is to make a system that works. The only way to prove that you know what you are doing is for your system to work. If it runs well in production then they will pass you by looking for easier prey.
Comments (0)Judo: 37signals style
I had a chance to hear the 37signal guys talk about how they work their magic. One of the “mantras” they described they use is “judo”. The idea is that there are no hard problems. When a hard problem appears they keep chopping on it until it becomes an easy problem. This doesn’t mean they break the problem down into small parts. What it means is they find a way to redefine the problem so it is not hard.
By avoiding getting bogged down in hard problems, they stay nimble and keep their code short and maintainable.
Comments (0)Becoming an expert: first-hand account
Speaking of being an expert, check out James Bach’s video on becoming an expert. He talks about how it happened to him. Among other things, he shows his startling lack of expected credentials. This is part of his approach of providing first-hand insights that both demystify the notion of an expert and raise a high bar for attaining expert status.
One of the most memorable ideas is his notion of “courage in confusion” (if that is not the phrase he used, it does capture the idea). He suggests that an expert takes courage from their own sense of confusion. They learn to recognize their own sense of confusion about a situation as useful information that can guide them to a solution. So personal confusion is something to be embraced and discussed, not hidden.
His presentation approach is quite non-traditional, but don’t let that put you off. Hang in there for the second part and you are guaranteed to come away with a new perspective on being an expert and plenty of food for thought.
Comments (0)Time differences
There are two powerful techniques for dealing with the time zone difference when working with someone on the other side of the world.
- Adjust to the sponsor’s timezone so that you are online when they are. Doing this is powerful because you can be available for “live” communication with the sponsor. This works out particularly well with developers in Eastern Europe and sponsor’s in the US for instance. If the developer is eight hours ahead of the sponsor then they can work 5:00 pm to midnight and be online during the sponsors work day. Being online at the same time as the sponsor makes you much more visible and valuable to the team.
- Magically deliver each morning. Like the elves in the fairy tale, work during the night and have the results sitting there waiting for the sponsor when they awake. This is most powerful when a sponsor expresses a need at the end of their day, sleeps overnight, and awakens to find the work done. The delight this produces is beyond measure. However, this approach is hard to execute because it limits the opportunities for interaction with the sponsor.
Advertise for work
Here is a way to use the web to find a job. Joe Gregario is an expert on REST and has contributed many useful resources to the web. By doing that he created a platform from which to speak. Now he is looking for a new job and he can use the platform he created to find one.
Comments (0)You are an expert
I have seen many people who are nagged by self doubt. They are embarrased that they don’t know more. They feel like they should have had a formal education, or they should have paid more attention during their education, or they should remember more. Or they have never built an “enterprise” class system. The list goes on. They live under an illusion that the rest of the world has it all figured out.
This attitiude is damaging. It causes you to not communicate openly because you are afraid of revealing your ignorance. It causes you to not act confidently. Others detect your lack of confidence and decide that if you don’t trust yourself why should they trust you.
A technique for breaking out of this mindset is to consider yourself. You are working as a professional in your industry. You have successfully delivered many good systems. You do your job well. You are a data point that defines what it means to be a “professional developer”, or whatever you do. Whatever you know is by definition what a professional developer should know.
Comments (0)Throw out your contract
You have been working on a project for a long time. You have a well established routine. You have carved out an area that you are responsible for. More importantly to you, you know what areas you are not responsible for.
You have a well established “contract” that defines what you do and what you don’t do.
You need to throw that contract out.
Projects change. You need to be adaptable to the changing environment. Periodically, mostly when you feel very comfortable, you need to consciously consider yourself as starting the project anew.
Consider that you just came in. Look around, see what needs to be done. Listen to the project sponsors to determine what they are looking for. Create a new contract, with new terms that define what you are now responsible for.
This is something very valuable that new developers bring to a project. As an old developer, if you adopt this attitude you will increase your value to the team.
Comments (0)
Click to view








