John Haro’s Blahg

posts from a technologist and ne'er-do-well

Developer Days: Autonomy, Mastery, and Purpose

From Dan Pink's talk at the RSA, animated.  Like Attlassian, and on the topic of autonomy and motivating smart people, we recently started 'Developer Days' where we encourage all engineers to work on any technology related project they choose during the 2 days and then present it to the larger team at the end. Very casual, very fun.  

Unfortunately nobody wanted to pair with me on writing a program in Scala that generates objectiveless meeting agendas and powerpoints filled with 3x3 diagrams. 

Filed under  //   software development  

Strange Tales of Software Development: Version Control

Many moons ago, in the days when "client-server programming" on Windows 3.1 was what the cool kids did, I had "some success" on my regular project and so would often get to jump in on other project teams to coach and even do some coding.  Since I always wanted to learn and do everything, this was a huge reward for me as a developer.  One team I got to jump in on was having a lot of trouble with their version control system.  They were using Visual Source Safe (at this time, it was a pretty hot, if you can believe it).  

They HATED VSS.  Despised it.  Could not stop complaining about it.  They were constantly losing code changes, accidentally deploying bugs that one developer or another would have SWORN they had fixed.  Some of the developers started to suggest that they go back to the old way of version control, which was more or less like this:
"Hey, I'm about to edit that file on the file server... Don't do anything until I tell you I'm done". And the ever popular "Who deleted my file!!".  
I knew full well, that was NOT the answer.  I had coached others on the use of version control and had not seen the types of problems this team were having.  So, I decided to sit down with one of the developers and talk to him about how he worked, and how he used VSS.  He seemed to get the mechanics of it just fine.  He understood check-in and check-out, getting the latest version and so on.  So I asked him to show me what he was currently working on and he opened up the file explorer to show me. I immediately saw where all the problems were coming from.  He had a large number of folders labeled "Copy of BlahBlah" where he would check out a file, copy it, make changes to the copy, make another copy, make changes to that copy, and so on until he was satisfied that he was done.  At that point he would check out the files again and copy his changed files over the check-out version and then do the check-in.   Turned out, in many cases he would even work on files for several days beofre 'checking it in'.  During which, any number of other developers had worked on the same file or files and he would then effectively erase their work, re-introducing 'fixed' bugs, removing new features and so on.  Once I made sure he and the rest of the team (just in case) understood not just the mechanics, but the whole POINT of version control, problems abruptly ended (or were replaced with the other well known problems VSS had, mechanically).
This person, who was a really nice guy, had his PHD in Mechanical Engineering.  See the theme here?  You can learn, or even get your doctorate, in the mechanics of anything, but real software development is about creativity and common sense.  Its hard to coach common sense, but if you happen to have an ounce of it you should do your best to share.

 

Filed under  //   software development  

What Is Your IDE Coding Font of Choice?

These days I've been spending a chunk of my spare time in XCODE, which offerers a lot more configuration options than most IDE's I've used before.  I've been able to make it look just like my favorite TextMate theme, more or less.  When I used to spend most waking hours a day actually coding, I never had the opportunity to use an IDE with a black background (except VI and a terminal), and now I find that I need the contrast so I can stare blankly at the screen trying to remember a fraction of what I've forgotten without going snow blind.
I'm curious, what is your current font of choice?  I'll thoughtfully consider the value of all comments except for anyone that says Times New Roman, which is the devil's font.

Below

Here are the details...  everything is Monaco 11 but i use Courier New for comments to make them stand out a bit more...

Filed under  //   software development   technology  

Programming an Exercise in Being Wrong

Programming is an exercise in overcoming how wrong you’ve been in the past. At first you’ll overcome the syntax errors, then you’ll overcome the structural errors, and then you’ll come to align your code with the standards of a greater community and you’ll feel safe and like you’ve made it. You haven’t – you’re still wrong because you’re always wrong. You are playing a game you cannot win. And let’s face it – if it was a game you could win you’d not be playing at all.

I like this quote - and maybe just this time, he is right.

Filed under  //   software development  

Quick Screencast of 'Briefs' Out Of The Box


View on screencast.com »

I just created a quick and dirty screencast of Briefs code in action after pulling it from Github and just running it. We develop iPhone apps for clients at iCrossing and I just think this is a simple (read: elegant) way to demo work without putting in too much up front time (which I'm told equals money).
I don't work on the consulting side anymore but did for a very long time. We always tried to think of useful ways for our creative to show their stuff without having to us in (us = software engineers).

code here: http://github.com/capttaco/Briefs

Filed under  //   iphone   software development   technology  

Briefs: A Cocoa Touch Framework for Live Wireframes

Test & Validate Your Designs on the iPhone

Briefs is a framework for packaging concept screens & control schemes that run live on the iPhone and iPod Touch. This allows you to experience the feel of your concept without the expense of development.

Each brief is simply a .plist that references images, in formats such as PNG, GIF and JPEG. Since they are image based, it allows anything from scanned paper sketches, to the full blown mockups you created in your favorite image editor. These briefs are loaded into the Briefs application and can be run directly on the device. Briefs can be loaded manually onto the device or pulled dynamically from a briefcast.

Other Uses

There are several creative uses for Briefs. Elevator pitches, notes, and interactive books can all take advantage of the technology in the framework. And using briefcasts, there is a simple avenue for distributing your content to other Briefs users.

Beta source code available today on Github

Great idea and a lot easier for designers to mock up UI for touch apps without having to learning Interface Builder or having to ask a developer to mock up for you.

Filed under  //   iphone   software development   technology  

When not to release

But development has come in fits and starts. Mr. Jobs killed the project twice in recent years, the first time because the battery life was too short, and the second time because there was insufficient memory, said one of the people familiar with the matter.

Knowing when to apply the brakes is probably as important as knowing when to step on the gas.

Filed under  //   software development   technology