ChatGPT as a programming assistant for infrequent coders

I haven’t written code every day for many years but every now and then, a project emerges that requires a little bit of coding. This tends to happen about once a year. In the past, the cost of revving up the coding engine could be pretty high:

  • I would have to re-learn the basics of Git. I keep a private repository of my few coding projects on Github but don’t code often enough for even basic Git commands to be committed to memory.
  • I like working on the command line so inevitably I would have a new computer and have to generate new ssh keys so I wouldn’t have to enter a password when I’m working with the remote Github repository. (I have been using password-less ssh for close to 30 years now and I have never been able to remember the process!)
  • If I’m working with a 3rd party API, I need to read through the documentation to figure out how to do whatever it is that I want to do. Sometimes there is sample code for the language I’m using and sometimes there isn’t.
  • For some projects, credentials are required. I try to handle those responsibly so I have to re-learn Amazon Secrets Manager. . . and that means I have to re-learn the interface for whatever language I’m using to Amazon Secrets Manager.
  • With all that in place, I can now focus on the task at hand.

None of the above is “hard” in a technical sense but it’s all kind of a pain if you don’t code frequently and your environment hasn’t been tended to for a while. My life is also busy so all the grunt work of setting up and maintaining a programming environment is very far down my list of important things to do. For all of the above, I usually figure it all out by using Google but that usually involves digging through documentation (sometimes contradictory or just out-of-date). In the past, I’ve usually reached a point of fatigue with the whole process at this point and then question whether I should be coding again at all.

I have a project in mind that I won’t describe in great detail here but the gist of it is that I want to take bookmarks from Pinboard and make a set of web pages with the data. I decided to use ChatGPT to rev up the coding engine this time and it was so much easier and more immediately productive than other times I’ve been down this path. I’m including my ChatGPT prompts and responses below so you can see what I mean.

It remains to be seen just how deeply ChatGPT penetrates knowledge work and I’m skeptical in many ways — but for this kind of work, it feels pretty magical, especially for a rusty programmer who just wants to get something done.


ChatGPT prompt: Describe basic git commands typically used when working with a remote repository on Github

Here are some basic git commands that are typically used when working with a remote repository on Github:

  1. git clone: This command is used to create a local copy of a remote repository. For example, if you want to clone a repository from Github, you can run the command git clone <repository-url>.
  2. git add: This command is used to stage changes made to a local repository before committing them. For example, if you have made changes to a file in your local repository, you can stage those changes by running the command git add <file-name>.
  3. git commit: This command is used to commit staged changes to a local repository. For example, if you have staged changes to a file in your local repository, you can commit those changes by running the command git commit -m "commit message".
  4. git push: This command is used to push committed changes from a local repository to a remote repository. For example, if you have committed changes to a file in your local repository and want to push those changes to Github, you can run the command git push.
  5. git pull: This command is used to fetch and merge changes from a remote repository to a local repository. For example, if someone else has made changes to a file in the remote repository, you can fetch and merge those changes into your local repository by running the command git pull.
  6. git branch: This command is used to list, create, or delete branches in a local repository. For example, if you want to list all the branches in your local repository, you can run the command git branch.
  7. git merge: This command is used to merge changes from one branch to another in a local repository. For example, if you want to merge changes from the feature-branch to the master branch in your local repository, you can run the command git merge feature-branch.

These are just some of the basic git commands that are commonly used when working with a remote repository on Github. There are many other git commands that can be used to perform more advanced tasks, such as resolving conflicts, rebasing branches, and more.

ChatGPT prompt: using the command line, how do I set up a git client to work with a remote repository including setup of keys so I can work without a password

To set up a Git client to work with a remote repository and configure SSH keys for passwordless access, you can follow these steps:

  1. Install Git on your machine, if it is not already installed.
  2. Generate an SSH key pair using the ssh-keygen command: ssh-keygen -t rsa -b 4096 -C "your_email@example.com" This command will generate a new SSH key pair using RSA encryption and a bit length of 4096. Replace “your_email@example.com” with your email address.
  3. Add the public key to your Git hosting provider (e.g. GitHub, GitLab, Bitbucket, etc.) by following their instructions for adding an SSH key.For example, to add a key to a GitHub account, navigate to the “Settings” page, click on “SSH and GPG keys”, and then click on “New SSH key”. Paste the contents of the public key (usually found in ~/.ssh/id_rsa.pub) into the “Key” field.
  4. Test the SSH connection by running the following command: ssh -T git@github.com Replace github.com with the hostname of your Git hosting provider. You should see a message similar to the following: Hi username! You've successfully authenticated, but GitHub does not provide shell access. If you see an error message instead, double-check that you’ve added the public key to your Git hosting provider correctly.
  5. Configure Git to use the SSH key for passwordless access by running the following commands: git config --global user.name "Your Name" git config --global user.email "your_email@example.com" git config --global core.sshCommand "ssh -i ~/.ssh/id_rsa" Replace “Your Name” and “your_email@example.com” with your name and email address, respectively. The last command tells Git to use the SSH key for all SSH connections.
  6. Clone the remote repository to your local machine using the SSH URL: git clone git@github.com:username/repo.git Replace username with your Git username and repo with the name of the repository you want to clone.

That’s it! You should now be able to use Git to push and pull changes to and from the remote repository without entering a password each time.

ChatGPT prompt: write a sample client in PHP that uses the Pinboard v2 API to fetch a list of all bookmarks

(Note: my first prompt simply asked about the Pinboard API and I got a v1 sample. I prompted again and asked for v2)

Sure! Here’s an example PHP client that uses the Pinboard v2 API to fetch a list of all bookmarks:

<?php

// Replace with your own Pinboard API credentials
$username = "your_username";
$apikey = "your_apikey";

// Set the URL for the API request
$url = "https://api.pinboard.in/v2/posts/all?auth_token={$username}:{$apikey}&format=json";

// Set up a cURL session to send the API request
$curl = curl_init($url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($curl);
curl_close($curl);

// Decode the JSON response
$bookmarks = json_decode($response, true);

// Loop through the bookmarks and output their titles and URLs
foreach ($bookmarks['posts'] as $bookmark) {
    echo $bookmark['description'] . "\n";
    echo $bookmark['href'] . "\n\n";
}

?>

Make sure to replace your_username and your_apikey with your own Pinboard API credentials. This client uses cURL to send the API request and fetch the JSON response. It then uses json_decode() with the true parameter to parse the JSON into a PHP associative array, and loops through the array to output the titles and URLs of each bookmark.

Note that the Pinboard v2 API requires authentication using a username and API token, unlike the v1 API which uses a username and password.

ChatGPT prompt: write php code for using Amazon Secrets Manager

(Note: I also asked ChatGPT the same question but without using Composer)

To use Amazon Secrets Manager in PHP, you will need to install the AWS SDK for PHP. You can do this by running the following command:

codecomposer require aws/aws-sdk-php

Once you have installed the AWS SDK for PHP, you can use the following code to access a secret stored in Amazon Secrets Manager:

<?php

require 'vendor/autoload.php';

use Aws\SecretsManager\SecretsManagerClient;

$secretsManager = new SecretsManagerClient([
    'version' => 'latest',
    'region'  => 'us-east-1' // replace with the region where your secret is stored
]);

$secretName = 'mySecret';
$result = $secretsManager->getSecretValue([
    'SecretId' => $secretName
]);

$secret = $result['SecretString'];
echo $secret;

?>

In this code, we first load the AWS SDK for PHP using the autoload.php file. Then, we create a new SecretsManagerClient object and provide it with the region where our secret is stored. We also provide the name of the secret we want to access.

Next, we call the getSecretValue method on the SecretsManagerClient object, passing in the name of the secret. This method returns a result object, which we can use to access the secret value.

Finally, we retrieve the secret value from the result object and print it to the screen. Note that the secret value is returned as a string, so you may need to parse it into the appropriate format for your application.

Yahoo! Open Hack Day: how it all came together

I have to admit — since Hack Day ended, I have been struggling with how to contextualize it. It’s hard to put a nice neat wrapper around something that was so profound for me. For the people who were there (and you can read for yourself), it felt like a defining moment. The best way for now is to point out some of the people who made it happen and tell some of the inside story. In some later posts, I’ll probably go through some of the principles that guided us in planning Hack Day (e.g. who we invited and why, approaches to making such an event work), but for now, I just want to provide some backstory and point out some of the people who helped make this happen. There are literally hundreds of people in the mix, so I apologize in advance for those who I have missed. This will be my first attempt “official recounting” (as Bradley put it in his post). Like all good stories, some things will be left between the lines, of course.

Before I get into the narrative, if anyone out there is wondering how we pulled this off, I offer one clue: total pros rolling up their sleeves to do whatever needed to be done. I’ve always been surprised at how intelligent people ascribe self-limiting qualities to organizations that they don’t really have to accept. Large companies are “slow.” Small companies are “agile.” “They” would never let us do this. What happens when you work in a large company and you are able to leverage the size of the organization to form a lean-and-mean ad hoc team with broad expertise (technical, management, legal, security, networking, etc.) on a moment’s notice? Something pretty powerful — you turn the cynical “they” who won’t let you do anything into the unstoppable “we” that won’t take no for an answer. I learned that inspiration might be the world’s only renewable energy source and it scales like a motherfucker.

Hack Day and getting things done

Beck checking out the hacksIt’s really easy to lose sight of the fact that in all the excitement of having a rock star like Beck on our campus, our Hack Day efforts (internal and external) help us get lots of real things done. We launched a ton of new stuff. Don’t take it from me that Hack Day creates results, though. Ryan Kennedy writes of our last internal Hack Day (where he won a “Technically Sweet” award for a kick-ass hack that used the Yahoo! Mail API that we eventually previewed for Open Hack Day attendees): “It [the internal Hack Day on September 15] was the event that reinvigorated my efforts to get mail ready for show time.” Ryan’s post crystalizes for me the clear relationship between our internal and now external Hack Day efforts. Ryan built the Mail API, then gave it a spin at our internal Hack Day with his winning hack, then spent the next couple of weeks refining it before giving a talk about it at Open Hack Day. Then he stepped down from the podium and spent his next 24 hours working alongside our visiting developers to build hacks using the same API (for which he got some shout-outs from the stage — read Ryan’s post for more info). Four cool hacks were produced by external developers with this brand-new API (see the list of all the hacks). If this isn’t a very good thing, I don’t know what is — this is the web ecosystem in action. Hack Day works.

The birth of the concept

As Bradley said in his keynote, we decided to do this just a few weeks ago, really, though we were inspired by the experience of doing seven internal Hack Days on three continents (the photo at right is of me at the beginning of the very first one). To get started on the first public Hack Day, I set up an Upcoming page and when I had to choose the category, I chose “festival” for a reason. I didn’t think the world needed another tired developer conference in a too-expensive downtown hotel where we stood in a booth and handed out t-shirts while our attendees racked up double-digit mini-bar bills just because they wanted a Diet Coke in the morning (more on this in a later post, I hope). We didn’t need that stuff anyway — we’ve got an awesome campus with a lot of space, tons of classroom space, a fat pipe to the Internet, beautiful lush corporate green grass, a cafeteria that could house and feed an army, and thousands of multi-talented people. So we launched HackDay.org on August 25 and posted these words:
First Hack Day at Yahoo!

We’ve opened up Yahoo! from the inside out with our world-renowned Hack Day and from the outside in through the Yahoo! Developer Network. Now we’re opening up Yahoo! itself to a select group of hackers and other special guests for a weekend festival of hacking, camping (yes, the tents-in-the-outdoors kind – we have really, really nice grass), music, and good times.

Yahoo! Hack Day will begin on Friday with a free all-day developer workshop, then we’ll kick off a 24-hour Hack Day with an outdoor party into the wee hours, with special guests providing the soundtrack. More details later, but we guarantee it won’t be your usual corporate-wedding-band-for-hire leading the crowd through 2am group sing-a-longs of “Brick House.” Stay tuned.

Yahoo! Hack Day will continue throughout the night (in tents, in URLs, our cafeteria) and conclude on Saturday afternoon/evening with judging from a panel of luminaries and special awards for the coolest hacks. After nightfall we’ll close things out with another round of entertainment that you would be happy to pay for, except that you won’t have to.

I wrote those words, and it was both the vision and the project plan. The only thing was that we had no entertainment lined up and nothing else worked out, just an idea of the environment we wanted to create — that’s it. That was barely four weeks ago!

Punk rock

After we got the idea rolling, I sent an email out to our internal Hack discussion mailing list (something I seeded after our first internal Hack Day in December of last year) and said, “who wants to help put together a public Hack Day?” Within a few days, I had about 80 people ready to help: engineers, product managers, business development, attorneys. . . . name a function and we had someone step forward. No coercion by management, none of the browbeating you might see in a typical corporate environment, no silly corporate brainstorming exercises, no discussion of “branding,” no PowerPoints (not one!) We had one planning meeting to kick things off (it was our first and last meeting), and pretty soon, I was standing back and watching the magic. People stepped up. We needed t-shirts, and they appeared. PR pros called BBQ vendors to arrange food. Some of the world’s foremost CSS experts stuffed welcome packets. Hard core backend engineers offered themselves up as low-level tech support for the hackers doing their demos. I talked to our totally awesome facilities team about our grass and the sprinkler system (needed to make sure the ground wasn’t too squishy for the campers). At one point when we were setting up the wifi network on Thursday, the guys needed 200 zip ties and several hundred feet of ethernet cable. I sent an email out to my list of volunteers and within the hour, it all appeared (thanks, Kent). Punk rock.

This kind of thing happened over and over and over. It was magical to watch.

Thank yous

It’s an impossible task to get this right, but there are some specific people I wanted to thank. First, there’s Bradley. When I moved over to YDN, we started talking about a public Hack Day almost immediately and the idea started crystalizing. I honestly don’t remember exactly how the “crazy” Beck idea came up, but when it did, it was Bradley who gave me that patented Bradley look that said, “dude, this is TOTALLY POSSIBLE!” and quietly lit the fire under me to make it happen. I’m hoping that everyone out there has a boss like this one day. (It’s cool that Nina caught me taking a shot of Bradley with my Treo while he was doing the Filo-to-Beck intro). Some of my fondest memories of this whole process were high-fiving Bradley in various meetings as we started to get the sense of what we were planning. We just couldn’t wait to share what we were doing with the world. Thanks, Bradley, for making work so fun.

Kiersten Hollars (in the far right in this photo) totally rocks. Bradley gave some props to Kiersten in his post, but I just can’t say enough. Her official job is PR, but if you had a slice of pizza or a doughnut during Hack Day, Kiersten is the one who made it happen. That’s not to say that Kiersten was diminished to phoning in food orders because she is an absolute pro at what she does. She just wasn’t afraid to dial Domino’s when we needed it and that’s why this whole thing worked. I won’t deny that getting this done had some stressful moments, but Kiersten and I kept each other calm. Kiersten doesn’t write code, but she’s an amazing organizational hacker. Rock on, Kiersten.

Once we got the verbal commitment from Beck, Jackie Waldorph (photo) and Christy Garcia on our events team took that ball and ran with it, dealing with the production issues, the stage, the sound, security, and anything else related to the show. It was a gargantuan task that had never been done before. One of my favorite moments happened about half an hour before the show was to begin when I ran into Jackie and she said, “Now that he’s here, Beck says he wants to do a longer show.” Well, OK!

The YUI team put the whole excellent Friday agenda together along with Dan Theurer on the YDN team. In one of the key roll-up-your-sleeves moments, Eric Miraglia (photo) brought a wagon from home to help move welcome packets, schwag, and anything else around that needed moving. A wagon hack! Eric’s contributions were immeasurable, as were his entire team (led by Thomas Sha, who was enthusiastically involved from the beginning).

To the extended Open Hack Day Team, you guys totally rocked — all 80+ of you. And a gigantic thanks to the YDN team that I am so freaking proud of: Dan, Kent, Matt, Jeremy, Jason, and Vernon. It’s hard to believe that this team really just started working together.

A big thanks to Tara Kirchner, whose various acts of heroism made a lot of the key ingredients for Open Hack Day fall into place. Micah Laaker gave us the logo after we told him we were stuck and had 20 minutes before we had to send a design to the printer, or no t-shirts.

For setting up our high-performance wi-fi network from scratch for all the visiting hackers, Tim Stiles (photo) and Tom Keitel (photo) deserve HUGE props. I also have to give a big thanks to our security team (network and physical), but I can’t discuss what they did or they would have to kill me. 😉 I used to be totally immersed in the world of enterprise IT, so I know IT rock stars when I see them. These guys fit the bill.

No one deserved this photo with Beck more than Nicki Dugan. And to that certain skateboarding hacker in our midst — thanks, man.

Mike Arrington was an excellent moderator. Keeping the demos moving is more grueling than you might think, and he handled it with great humor and skill.

As Bradley mentioned in his post, this crazy idea quickly gained support at the highest levels of Yahoo! and we appreciate it. David Filo outlasted nearly everyone on Friday night, and I was inspired by all the other Yahoo! execs who hung out with the hackers. Like Bradley, I also want to give a shout out to Jeff Weiner, the man who cleared the way for our very first Hack Day and helped us grow it at every turn. And to Ash Patel for encouraging us to make it even bigger when we moved into his organization.

new Canadian friendsLast but definitely not least, I wanted to thank the hackers who came out. You guys came from far and wide with nothing but faith that you were going to have a good and productive time partying and hacking with us. I’m pretty sure I’ve read everything anyone has written about Open Hack Day and I am more inspired than ever by your feedback. It’s a real honor to have put this together for all of you and I’m looking forward to seeing you around. (Remember, all the “winners” are listed here — but everyone was a winner. Seriously.)

Beck

And then there was Beck.

One of the hardest things about putting this whole thing together came when I was on the phone with Beck’s agent and manager very early on and they asked me if Yahoo! had ever done something like this before. I swallowed any indie cred I had built up in prior conversations and said, “Well. . . . we had Sugar Ray once.” Silence. “I’m really sorry I had to say that.” They sensed my pain at bringing that up and graciously moved on to the business at hand. All I know is that it’s gonna be a hell of a lot easier next time when I can say, “we had Beck last year.”

For the record, Beck’s entire team was incredible to work with, from the puppeteers to Beck himself. Beck could have jumped in his tour bus after the show and fled the building (especially since his dressing room was our gym), but he hung out and talked with us, even making some rounds to check out the hacks after the show.

The puppeteers were so impressed with us, that we converted one of them to Yahoo! Search. Read the comments on this post:

you yahoo’s were all amazing! if only you had a need for puppeteers on staff…i’d so be there!

for the record, you all have been so great…i’ve switched over to yahoo for my homepage search engine. it’s a little thing i know…but i do what i can.

Getting Beck was not so much about getting a “big name” (though he admittedly was), but more about bringing someone in who we saw as a hacker. Some people hack music and some people hack software. Some people even hack puppets. Mixing all of that up was one of the great joys of the event (aside: a special shout out to Jonathan Grubb and the Rubyred Labs guys for their help with the video). We saw Beck and his band as participants in the whole event, not just a stage show.

Love and community

Susan does an excellent job of connecting Hack Day back to Burning Man, FOO Camp, etc, and I’ve listed some of my own inspirations in the past. The interesting thing about Hack Day to me is that the spirit behind it all lives every workday in the halls of Yahoo! The best thing about Hack Day is that when it was over, I went back to “normal life” working alongside the same people who made it happen. It’s too early to tell what this all means yet, but for us back at Yahoo! this is at least different from the “temporary community” of a Burning Man.

Ultimately, I think the reason this worked so well and people were blown away by the event is that we took the genuine love we feel for each other and our joy in working together and we reflected it out to the hacker community, and they gave it back to us. If you’re the cynical type and you’re thinking, “yeah, whatever,” then don’t take it from me. There’s Ben Metcalfe’s post and many others but my favorite was Kristopher Tate’s post about the Yahoo! “family”:

I think the best thing that describes Yahoo! is family — Yahoo is an amazing, close family that was gracious enough to open themselves up to over 450 outsiders (including myself) over the last two days from the lowest levels to the very top.

Perfect. See you again next time.

Loads of new stuff from Yahoo! Developer Network for Open Hack Day

Lest you think our Yahoo! Open Hack Day was all about Beck (yes, it was really cool to have him), we also released an incredible stream of stuff for the hackers to play with while they were hanging out with us at Yahoo! There is nothing like a big event with a hacker rock star to mobilize the teams at Yahoo! to tackle the last 10% to get those releases pushed out! Here’s the list. This has been covered in many places already (I was happily buried with Open Hack Day stuff instead of blogging):

  • Browser-based authentication, or BBAuth: This is big. As Dave says, “If it’s easy to program, and delivers on what it says it does, this is a huge deal.” Agree or disagree with Dave, you have to listen. (see the YDN blog post and Dan Theurer’s post as well. It was Dan’s focus and tenacity that got this thing out. Thanks Dan!)
  • Yahoo! Photos API: combined with BBAuth, you can now write applications that have read/write access to users’ photos when they grant your application permission to work with their images. More on the YDN blog.
  • Upcoming PHP5 wrapper: Check out their post for all the details, but they delivered a PHP5 wrapper for their API and a couple of new method calls. Rock on (they’re hiring, too — Guitar Hero excellence preferred, but not required. Check out this photo of Beck with the giant Guitar Hero screen the Upcoming guys set up for Open Hack Day in the background).
  • Flickr support for JSON and Serialized PHP: Read all the details in Cal’s post to the yws-flickr group.
  • .NET Developer Center: A shout out to you Microsoft fans out there. Check it out.
  • Yahoo! Mail API: We gave everyone who came to Open Hack Day a crack at this API. Stay tuned for general release in a few months. This one is really exciting. Check out the News.com story for where things are headed.

The Yahoo! Developer Network team and our partners in the product teams around Yahoo! rocked harder than Beck did on Friday night to get this stuff out and put on our Open Hack Day, so the credit extends to hundreds of people inside Yahoo! for getting it done and to all the incredible hackers who jumped right in, built stuff (often side-by-side with the developers who built the APIs they were using), and gave us immediate feedback.

I’m totally sleep-deprived right now, so I’ll save any extended commentary for later — but the past few days have been among the most memorable and exciting in my life. It’s been that good.

Yahoo! Hack Day: opening up Yahoo! itself

Ever since I organized the first Hack Day at Yahoo, people have been saying, “wouldn’t it be cool if you opened it up?” Guess what? That’s exactly what we’re doing — opening Yahoo! itself up, and in a big way. I’ve been to and helped organize internal Yahoo! Hack Days on three continents now and I’ve witnessed the incredible fun and creative energy firsthand, so opening up Hack Day was one of the first things I wanted to do when I started running the Yahoo! Developer Network.

Check out all the details on hackday.org, just launched yesterday. The fun begins on Friday, September 29 with an all-day developer workshop where we’ll be teaching you how to do real stuff with some of the tools from the Yahoo! Developer Network. That evening, we’ll kick off the Hack Day itself (the coding part) with some music that will go into the wee hours (if you need quiet areas to hack, we’ll have that for you). Don’t worry about how you’re going to get home, because you’ll be able to pitch a tent at Yahoo! (see our campus in the photo) to get a bit of rest before the fun continues on Saturday, where we’ll have demos on Saturday afternoon/evening, followed by even more high-quality entertainment (stay tuned). Mike Arrington from TechCrunch will be our MC (thanks, Mike). It’s going to rock — we guarantee it.

All this is being organized with the help and advice of Yahoo! hackers themselves — everyone is pitching in to put this thing on. If you don’t work at Yahoo! and want to be help out, let me know (just put “chadd” and “yahoo-inc.com” together and drop me a line).

We will have limited space, so let us know if you’re interested in attending by filling out the form at hackday.org.

Major thanks to two folks on the Yahoo! Developer Network team: Kent Brewster for the design and Vernon Marshall for the backend stuff. Also, a big thanks to everyone at all levels Yahoo! who not only approved all of our strange requests, they did it enthusiastically.

More on this Yahoo! Hack Day:

More on past Yahoo! Hack Days can be found in my del.icio.us bookmarks, tagged “hackday+yahoo.”

(Photo of Yahoo! campus by Premshree Pillai, one of the best hackers at Yahoo!)

Tags: hackday, yahoo

Collecting software methodologies

I’ve always enjoyed reading about software development methodologies and approaches (my favorite essay is Frederick Brooks’ “No Silver Bullet“), probably less because I love software and more because it’s interesting to see how people, who are inherently fallible, translate their hopes and desires into instructions for an inanimate machine. When you mix the innate fallibility of humanity with the near-absolute certainty of the “right way” present in at least a few software engineers, you’ve got a very peculiar kind of theater.

Bust of George Bernard Shaw, Reading Room, British MuseumWhen people ask me what I think about various software development methodologies, I can’t say that I have a super-strong opinion except that processes that are generally “agile” are good. Recently, I was thinking about this and dusted off a copy of Major Barbara, a George Bernard Shaw play (one of my favorites) that deals with religion. Adolphous Cusins (a not-so-sympathetic character in the play) says this in Act II:

I am a sort of collector of religions; and the curious thing is that I find I can believe them all.

That’s pretty much how I feel about XP vs. Scrum vs. your-agile-methodology-here. There’s a little bit of goodness in all of them.

(Photo: bust of George Bernard Shaw in the Reading Room at the British Museum)

Python developer center launch at YDN

In these times of snakes on planes, it seems fitting that we launched the Python Developer Center today on the Yahoo! Developer Network. The Python Developer Center was put together by Simon Willison (Simon also posted on the YDN blog).

This is timely for me, because like Jeremy, I’m beginning to learn Python after being a Perl guy for a long time (with a little PHP thrown in in recent years). I had some mild tangles with Python back in 1997 or so when we used the Ultraseek search engine at CNN, but I never got very deep into it. Now’s my chance!

Tags: , , ,

Yahoo! Hack Day tomorrow, and some of my inspirations

Tomorrow at noon, we kick off our fourth Hack Day at Yahoo! It runs from noon tomorrow until noon Friday, followed by demos Friday afternoon and a party. As I write this, I am fielding questions from Yahoo hackers who are planning to stay here all night tomorrow night putting together their hacks. Awesome.

We’ve now had two (1, 2) in Santa Clara and one in Bangalore. Hack Day #5 happens in Bangalore on July 4th, followed closely by the pan-European EU Hack Day in London on July 6th. This thing has serious legs around Yahoo! Terry Semel and Jerry Yang presented Hack Day awards personally in Bangalore (see the Flickr photo — there are close to 200 photos tagged hackday on Flickr now — expect more this week). During the Friday demos, C-level execs will be mixing it up with the hackers (we’ve had wonderfully enthusiastic support from the top!)

Hack Day at Yahoo! has minimal rules:Tools for Yahoo! Hack Day

  • Take something from idea to prototype in a day
  • Demo it at the end of the day, in two minutes or less (usually less)

Sounds simple (and it is), but like all simple things, a lot of thought went into making it so simple. Most of my time the past few months has been spent keeping Hack Day relatively “pure.” What do I mean by “pure”? Well, it would be very easy to make such an event a “rah rah” corporate exercise with all sorts of interests trying to mold the event to some very specific business end, but that doesn’t happen. Hack Day is by hackers, for hackers. The ideas are theirs, the teams are self-determined, and no technologies are proscribed. I don’t even know what people are building until they get up to do their demos at the end of the day.

Looking towards Hack Day tomorrow, I wanted to point out a few of the inspirations that inspired those simple organizing principles (to paraphrase the famous Newton quote, we’re definitely standing on the shoulders of giants):

These are just inspirations, of course. I can’t begin to tell you how much I’ve learned getting this off the ground initially and putting it together for a multi-national public company with several thousand employees. It would fill a book that I don’t have the time to write right now.

In the end, Yahoo! hackers really make the whole thing happen, though — I just help create the context. I’m looking forward to seeing what happens tomorrow. I have no idea what will emerge, just that it will be cool and I’ll have a big smile on my face.

Peopleware

One of the Great Books in the management-of-software-development canon is Peopleware. I’ve quoted lighty from it before, and wrote a column about the book for InfoWorld a couple of years ago. It still sits within easy reach in my home office. Kevin Kelly features Peopleware in his Cool Tools blog, and does a nice job of pulling out some of the most relevant passages from the book, a book that’s full of all sorts of nuggets you can use in your management life. Some of my favorite parts of the book describe the concept of the “jelled team,” the team dynamic that we all aspire to attain. Here’s an excerpt about that:

A few very characteristic signs indicate that a jelled team has occurred. The most important of these is low turnover during projects and in the middle of well-defined tasks. The team members aren’t going anywhere till the work is done. Things that matter enormously prior to jell (money, status, position for advancement) matter less or not at all after jell. People certainly aren’t about to leave their team for a rinky-dink consideration like a little more salary.

There is a sense of eliteness on a good team. Team members feel they’re part of something unique. They feel they’re better than the run of the mill. They have a cocky, SWAT Team attitude that may be faintly annoying to people who aren’t part of the group.

. . . .

Once a team begins to jell, the probability of success goes up dramatically. The team can become almost unstoppable, a juggernaut for success. Managing these juggernaut teams is a real pleasure. You spend most of your time just getting obstacles out of their way, clearing the path so that bystanders don’t get trampled underfoot: “Here they come, folks. Stand back and hold onto your hats.” They don’t need to be managed in the traditional sense, and they certainly don’t need to be motivated. They’ve got momentum.

There’s also a lot of mundane material about the design of your office space and other things you might not think about, all supported by the authors’ research. Check it out.

Link: Cool Tools on Peopleware

Blown away (again) by Hack Day

I organized the second Hack Day at Yahoo! this past Friday, and it was extraordinary (check out some of the Flickr photos tagged “hackday”). Rather than write a long post with my own analysis, I’ll leave it up to some of the participants (it was extraordinary because of them anyway — I just try to lend minimal order to the beautiful chaos of it all):

Ed Ho, “Hack Day 2 at Yahoo!”:

Today is one of those days that makes me proud to be a Yahoo. The sheer number of hacks was overwhelming (again) and the quality of each improved as well. What I saw today was nothing more or less than I knew was possible when I joined Yahoo!. Yahoo! has an incredible number of smart programmers, and they are full of ideas and energy. The spirit had even captured our offices around the world and we had multiple hackers in other countries who had stayed late into the night (past midnight their time) just to have the chance to demo their developments to the rest of the Yahoo world. It was magnificent.

It was clear this time around that people had been thinking long and hard about their ideas and they were ready to execute. It’s personally satisfying to see programmers execute on such innovative ideas without PRD’s, MRD’s, Functional Specs and those obsolete remnants of waterfall development cycles. Powerful wizardry was going on at Yahoo today and I’m happy.

Matt McAlister, “Top 10 Reasons why Hack Day rocks”:

How do you explain the benefit of Hack Day in one sentence? Hack Day bubbles up significant yet tangible product strategy advances from across the organization while simultaneously feeding all that workforce optimization and touchy feely crap without paying a team of expensive Stephen Covey robots to tell you what you already know. It’s also super cheap.

Be sure to read the rest of Matt’s post — it’s good stuff about what real hands-on innovation means. (I have always absolutely hated the usual corporate team-building activities. I was always the one quietly scowling in the background as my co-workers role-played irrelevant situations while a professional “facilitator” asked me if I was having “fun.” Hack Day is very intentionally the antidote to that sort of pointless corporate activity. Bonus link on this topic: Douglas Rushkoff’s Fun AT work vs. Fun AS work.)

David Beach, “More on Yahoo! Hack Day 2”:

It was a huge success. There were so many hacks. Way more than last time. The quality and thinking behind the hacks was also improved. This tells me the initiative is working. People see the value of this and are taking advantage of the opportunity to express themselves in this manner. I believe that it’s one of the best things Yahoo! has done. At least internally.

The room was packed. I don’t think I can discuss specific hacks, but there were very clever innovations presented. I believe there were many more search hacks this time. Upcoming, Y! Widgets, Flickr, Autos, Shopping, 360, Local, Travel, WebJay, Maps, Messenger, Mail, and more were all represented and hacked in one form or another. I’m sure you’ll be seeing many of them appear live on the site in the near future. Actually it would be cool to somehow identify the new feature or service as something that was developed through Hack Day when it goes live. At the very least the orgs respective blog should blab about it.

I don’t know when the next one will be, but I’m preparing. I said earlier that I’m going to learn to program and I meant it. I taught myself pretty much everything I know this far, so why should I stop now? I’m starting with Ruby on Rails, because I hear it’s elegant and simple, plus I believe I can understand object oriented structured. I’m also going to brush up on web standards, CSS, and XHTML. It’s been awhile and much has changed since I every seriously had my hands on the stuff behind the page. First I believe that this is the only way to get some of my ideas out there, and second, I fit in with nutty programmers and designers more than I do with PMs. I’ve done the design thing, so now I’m going to try the other side. We’ll see how that works. L8r

(You go, Beach!)

JR Conlin, “Past our prime? Bullshit.”:

Had to get out of the Hack Day Presentation show. It was a packed room, with nearly 100 hacks being presented. This is stuff whipped up in a day, folks. Viable products that seriously kick ass. Add in the 70 or so from the one last quarter and… well… anyone who thinks we’ve got a bunch of lazy dinosaurs working here needs to have their head examined.

Seriously. Cool. Stuff.

(Hopefully a bunch will be ready to roll out soon.)

The coolest thing about Hack Day is that it goes far beyond one day — the kind of inspired development that is showcased on Hack Day is happening every day now (Take it from me — I stay extremely busy curating just a fraction of it). Hack Day is a day for the celebration of hackerdom, a tip of the hat to the artists among us who express themselves in code, a recognition of the pure joys of creation. Yes, hackers are artists. As I wrote in one of my old InfoWorld columns: ” If art is making order out of chaos, then software developers are artists at the highest level.”

Something very special is going on at Yahoo! and I’m absolutely giddy that I have something to do with it. It’s a lot of fun being continually amazed.

Update: Found an interesting article in the Sunday NYT: “Here’s an Idea: Let Everyone Have Ideas.” That’s the spirit of Hack Day. Key quote from the article:

According to Tim O’Reilly, the founder and chief executive of O’Reilly Media, the computer book publisher, and an evangelist for open source technologies, creativity is no longer about which companies have the most visionary executives, but who has the most compelling “architecture of participation.” That is, which companies make it easy, interesting and rewarding for a wide range of contributors to offer ideas, solve problems and improve products?

Yep.