<Edit on 2/3/2011> This rant is mainly targeting 'from scratch apps'--which take an immense amount of work and is not easily estimable. <end edit>
I think software estimates are an exercise in futility. No matter how good or bad an estimate is, a project is going to take however long it takes to finish.
I have shipped many real-world projects and they never taken longer than 3-6 months to reach v1.0. And I've never had any luck estimating down to the week when they would be finished. Estimating certainly didn't help the project finish any quicker. Estimates are very good at placing unnecessary pressure on the programmer--but not much else.
I understand that people hiring programmers needs estimates. But I don't understand that they expect a programmer to realistically stick to one like it is some kind of plan set in stone.
On past projects I've estimated by agreeing that: "yes, this project can be completed by one person in 1-3 months or 3-6 months or whatever the scope of the project requires. "
What about these horror stories of projects that go on endlessly? A problem like this has nothing to do with the estimate--but rather the programmer (or team of programmers) or the problem being solved.
How can you trust me on a project when I think so lowly of estimates? I believe actions speak louder than words. Look at my past history. Talk to people I've worked with. Do your best to get to know me and your gut feelings will take care of the rest.
I'm an honest hard working programmer. I make terrible software estimates. But your project will always get done in somewhere around 1-3 months or 3-6 months if it's big.
Any bigger than that, please hire a team.
Two nice git GUI's are available for OSX: Gitbox and Git-Tower. The plethora of open-source and beta git GUI's out there are definitely worth trying, but I think top contenders are these two.
Gitbox is my favorite. It's simple to use and still has the most important features. Branching, merging, diffs, and history-of-a-single-file (awesome!!) are the things I use over and over. Just try it out, it's free to use for 3 repositories and the full version costs $49 dollars.
The other app is Git-Tower, which has more features but also more UI to get in your way. I used the beta version but decided not to purchase 1.0 because it's missing the one feature I can't live without: ability to view the history of a single file.
I can't live without source control and git is a tool I use daily. If you're like me: lazy and hate the git command line, give one of these a try.
Wordpress is great! Tumbler is pretty neat too. I'd even use blogger if I had to. But I decided to write my own blog engine in django. It gives me an excuse to use python, and it also keeps my toe in the web programming world. And I love having ultimate control over my site.
It's not all roses though. My site is pretty ugly and the blog has no features. I really thought long and hard about dumping my entire site and going with something fancy like squarespace or a nice hosted wordpress blog. I even tried them out and was duly impressed. Squarespace was so great I signed up and started converting things over. But alas, I cancelled that idea in the end.
Keeping my django blog seems like a silly decision. I have no time to play around with a web framework I only partially know. But I can't give up on the things I want to be good at. I love the web and although hand typing HTML makes me feel sick inside, it's something I will never give up.
Django really hits home with me. It's powerful, written in python, and the built-in admin panel is the cat's meow. Building my own blog engine keeps my web skills alive. The more I focus on non web projects, the less I remember about my good pal the web.
It's about the journey not the destination. So I'll continue poking along with my half-assed blog engine. And I am going to start blogging again, so things may improve a bit around here.