Today is the launch of the brand new NFJS magazine! It's a great way for you keep new development ideas percolating between the long, lonely months when the NFJS tour isn't in your city. ;)
The inaugural issue includes articles from Venkat Subramaniam (So You Want to Be Agile?), Ken Sipe (Introduction to Functional Languages), Mark Richards (Message Driven POJOs), and me (The Case for Continuous Integration).
I think you'll find a great mix of pragmatism and experience in each edition. Just like an NFJS event, use the magazine to broaden your horizons and learn about topics that don't normally cross your path. Bring great ideas to your company and your "sanity hacking" projects as well!
Subscriptions run $50 a year for 10 issues. Bringing articles from this level of technical talent into your house once a month is money well spent. It's an investment into yourself, and your team.
Thursday night, and all day Friday and Saturday, were the first RubyRX event, and we had a great time. Topics ranged from Erlang to Active Record to Sinatra. Speakers ranged from Chad Fowler to Stuart Halloway to Neal Ford.
You can see a sampling of photos on Flickr on my RubyRX flickr set. I especially like Chad Fowler's "new" look.
I used my favorite phone streaming video app, qik.com, to record the lightning talks. You can find Part One and Part Two on their website.
I originally had three tracks scheduled and had to drop to two. A number of attendees weren't happy about that, and told me. However, on Friday, as the sessions unfolded, everyone came back and told me that two sessions was awesome. Every session had one Ruby flavored talk and one non-Ruby talk. (The non-Ruby talks were either another language, like Clojure or Erlang, or a soft skill.) On Saturday people kept coming up to me and telling me how much they loved the conference, how great it was, and they were definitely coming to the next ones. That feedback really makes all the work worthwhile.
The surprise hit of the conference was the functional language talks. Some people raved about Clojure (and complained about Erlang), while others raved about Erlang (and complained about Clojure!), nearly everyone was interested in learning about one of the functional languages on display. Kevin Smith and Stuart Halloway did a great job.
We've already reserved space for the next RubyRX. It'll be in Washington, DC on September 4th and 5th. I've already started collecting speakers for what promises to be an even better event!
After a month of working overtime on evenings and weekends, the Career 2.0: Take Control of Your Life book is now available for purchase! You can find it on Lulu.com ( link) now, and it'll be on Amazon in a few months.
The content in the book was shaped by the feedback and blog entries from so many people... I sat down and tried to figure out how many people I'd given the Career 2.0 talk/keynote and realized it was (conservatively) over two thousand people! And after nearly every talk a few people came up to share a new idea, or a better example, or to ask why I hadn't added in this or that idea. The talk has really grown, and this is the culmination.
But it's not done either... given how Lulu.com works, I can upload and entirely new version of the book in about 10 minutes, and you'll get the latest version. So I'll be fixing typos as they're reported. The time line to finish the book was so tight that I've still get reviews I haven't had time to incorporate. We're close to getting them all fixed though.
One addition that's been getting rave reviews is the "Rogue's Gallery" appendix. I received so many great career stories from people that I couldn't fit them into the book as sidebars as I'd planned. Cutting down content from Neal Ford or Venkat Subramaniam is hard! Which part do you take out? So I added in an appendix with the best stories I received. Whether you're reading about Chad Fowler or Nathaniel T. Schutta, I think you'll find more gold in their stories and advice.
If you've been thinking about your career, or job, in these times, I'd really encourage you to check out Career 2.0. I hope it'll remind you of what you knew you should be doing, and provide new ideas and directions as well.
New content will also be pushed out to the Career 2.0 blog as well.
See you there!
p.s. rumor has it that Chad Fowler's new book, The Passionate
Programmer: Creating a Remarkable Career in Software Development is coming up soon as well!
There are a number of techniques, primarily from the Agile space, that are great for getting the best work out of yourself, and your team. They keep you focused on real problems (not anticipated or imagined ones) and focus on high levels of communication across the company.
The best way to keep people on target is to provide them feedback as often as possible. The sooner you can provide feedback, the more likely the behavior is to change. I don't wait until Christmas to correct my daughters when I see them drawing on the wall. I stop them immediately and we 'discuss' the reasons they shouldn't write on the walls. Usually this an effective feedback loop.
But we expect developers to write code that no-one looks at for weeks or months, then learn and grow from the "feedback" they get from testing or QA groups. History tells us that's a pretty inefficient way to improve. People don't remember what they were doing a week ago, much less four months. We've got to provide feedback in a more timely manner.
Use continuous integration and automated tests to exercise the code and provide feedback very quickly. If a developer writes code that breaks functionality, they can find the problem while the code is still fresh in their minds. If you cover the code you write with tests, who else on the team can break your code and not get caught? (More on your code in a future post.)
What about peer code reviews? We work differently if we know someone's going to be looking at our work. It's human nature. So let's ensure that one other person will read your code. Ideally someone who can pick on us about the hacked, junky code we write when we've got deadlines. This also lets us explain our code to another person, so that when/if we leave the team, someone else knows what our intention was. This is amazingly useful.
Tight feedback isn't just for developers though. XP advocates talking to the customer every day. Scrum wants the customer helping to evaluate the backlog frequently. And for good reason. We often build what we think the customer wants. But what if we showed the customer our "To Do" list and let them tell us what they wanted? Think of all the features you added to the last release... how many of them are used? Usability studies show that 90% of features are never touched. If you could eliminate 90% of the next release's features, and still have happy customers, what would that do for your development budget?
Why optimize now? With a global economic downturn it's more important than ever to be sure you're the best team around. If you can turn out better, more targeted product faster than anyone else, who keeps their jobs? Hopefully you will.
The truth is most teams are always behind schedule and over budget. Use these tight times as an excuse to try out some optimization techniques. Tighten the feedback loop for the developers and the customers.
We'll be discussing these ideas, and a few more, at a local meeting tomorrow night. NFJS One, my employer, is providing pizza and drinks, and I'll be discussing "Software Team Tuneups: Using Agile to Optimize Your Team. The meeting link is on Meetup.com. Come out and join us at Frankie's Fun Park of Raleigh. We'll be in the conference rooms in the back of the restaurant.
And if you like the Agile ideas, bring your manager along. Let's get them on board too!
See you there.
Part of your career's intellectual portfolio should include regular learning. Whether you're in the language of the year (LOTY) or the technology of the year (TOTY) club, it's time to have something in mind for the coming year. Regular deposits in the account of you is the only way to build up a nest egg. Don't let the current crisis at work keep you from starting today. There will always be crisis of the week. Start now or you won't.
Having said that, let me share an announcement with you. A friend of mine, and former co-worker, Kevin Smith has a public Erlang class coming up soon. Erlang is a great candidate for your LOTY because it teaches you a new way to think about programming. And it's ideally suited to take advantage of new technologies like multiple core computers and cloud computing.
Hands-On Erlang
Enjoy!