Pages

Showing posts with label conference. Show all posts
Showing posts with label conference. Show all posts

Sunday, October 24, 2010

Another Thought on Certification

Yesterday at 1DevDayDetroit, Virender Ajmani gave a very interesting talk about Google Map mashups. (If you missed his talk, check out his blog or download his slides.

Besides his very interesting content, he mentioned something that else that caught my attention - the Google Qualified Developer program. It's a different approach to the question of developer certification (which I know is a hot topic in the Agile world in general and at the Agile Skills Project in particular). Google's program is free, and it focuses on accomplishments, references, community participation, and knowledge. If you become certified, you get a badge for your blog.

To be certified in a particular Google API (Chrome extensions, Maps, etc.), a developer must earn at least 3000 of the available 5000 points towards that API in any. She/he can earn points in the following ways:
- showing proof of their work (working code) - up to 1000 points
- providing references (from paying clients) - up to 1000 points
- demonstrate community participation - up to 1000 points
- take the online exam - up to 2000 points

What I like about this approach is that no one type of mastery is enough to earn certification. For instance, a developer who aces the exam can not be certified without other evidence of their competence.

I wonder what an Agile badge in this style would be like.

There are already Scrum exams. Perhaps taking one of them would earn some points. There would be a cap on how many points could be earned through exams, and exam points might expire after a certain time.

I'm not sure how working code is necessarily any indication of someone's skill in Agile, so I think we'd have to come up with something else.

Attending certain classes might be worth points. I know there's been a lot of talk about how taking a class doesn't necessarily mean a person learned anything, and I agree. So perhaps any given class would be only worth a small amount, say 200-300 points, and it would only count if you had taken the course in the past year, and only 1000 points could be earned by attending classes.

Certainly some Agile developers could provide references from customers, and capping the number of points from references would reduce the chance and affect of quid pro quo referrals. Developers who don't have professional references could earn their points in some of the other ways.

And maybe book quests or webinar quests could provide a few points, perhaps with a fairly low cap.

I know there's a non-trivial amount of administration that would be required to manage a program like this. Please join the discussion on the Agile Skills Project Google Group.

Saturday, January 16, 2010

CodeMash Precompiler Session # 1 - Ruby Koans

As I mentioned in my last post, I recently returned from CodeMash 2010, where I attended two PreCompiler sessions. For the morning session, I attended "The Ruby Koans, Learning Ruby One Test at a Time with Joe O'Brien and Jim Weirich" which taught Ruby syntax and how to write tests in Ruby. (Joe also gave an excellent and extremely popular talk called: "Refactoring the Programmer"

The word "koan" comes from Zen Buddhism. As I understand it, Jim and Joe called their talk "Ruby Koans" because of their unique style of teaching that relies as much on mystery and intuition as it does on rational thinking.

Jim has asked participants in the CodeMash session to show the koans to someone else, so I encourage you to look at them. You can try the koans yourself as follows:

(1) Have a working version of Ruby:
- Windows: Install from: http://rubyforge.org/frs/download.php/66871/rubyinstaller-1.8.6-p383-rc1.exe
- Macs: OS X comes preloaded on Macs so you are ready to go.
- Linux Users: Use apt-get, or whatever is appropriate for your system

(2) Download the Ruby Koans and install into a working directory:
- http://cloud.github.com/downloads/edgecase/ruby_koans/rubykoans.zip

The file README.rdoc is a text file that explains the concept, tells how to get started, and gives contact information.

To set up for the exercise: unzip the koans, open a command-prompt, and cd to the directory containing the koans. The exercise starts at the most simple level possible, but if you complete the koans, you will learn most of the Ruby syntax and see examples of how Ruby behaves at edge cases.

To start the exersise, give the command:
ruby path_to_enlightenment.rb
You should see the following result:

Thinking AboutAsserts
test_assert_truth has damaged your karma.

You have not yet reached enlightenment ...
is not true.

Please meditate on the following code:
./about_asserts.rb:10:in `test_assert_truth'
path_to_enlightenment.rb:28
The line " is not true." gives a hint as to why the test failed.
The line after the "Please meditate..." line tells what line of code the test failed on.

Looking in the file about_asserts.rb around line 10, we see:
def test_assert_truth
assert false # This should be true
end
In Ruby, def/end declares a method, and the word: "test_" at the start of the method name declares it as a test. The comment is a hint from Joe that the test fails, in this case rather obviously, because it is asserting false. So this koan demonstrates the a test in its simplest form, one that asserts a boolean condition. If you change false to true and run "ruby path_to_enlightenment.rb" again, that test will pass and the error you will see:
Thinking AboutAsserts
test_assert_truth has expanded your awareness.
test_assert_with_message has damaged your karma.

You have not yet reached enlightenment ...
This should be true -- Please fix this.
is not true.

Please meditate on the following code:
./about_asserts.rb:16:in `test_assert_with_message'
path_to_enlightenment.rb:28

So now the test_assert_truth test passes and the test_assert_with_message test is failing. The code for the second test is:
def test_assert_with_message
assert false, "This should be true -- Please fix this"
end
and we see where the "This should be true..." message comes from. Joe has now shown us what an assertion with an error message looks like. Again change false to true, rerun the ruby command and you'll see the next failing test.

The koans go on to present illustrations of control statements, hashes, scope, strings, arrays, inheritance, iteration and others language details. I don't think anyone at the PreCompiler finished all the exercises during that session - I sure didn't - but it's clear that I will know a lot about Ruby syntax when I do.


Finally if you have questions about the koans, you can reach Jim at his website http://onestepback.org/ or @jimweirich on Twitter. Or you can reach Joe at his website http://objo.com or @objo on Twitter

Monday, January 11, 2010

Grand Rapids CodeRetreat ... but it's in Ruby

I'm a big fan of CodeRetreat. Besides being a fun day, it's a great way to practice agile things like: pair programming, supportive environment, software craftsmanship, TDD, retrospectives, courage, and so on. I think they are great events for both aspiring Agilists and experienced Agilists.

I read Jeremy Anderson's blog post about an upcoming CodeRetreat in Grand Rapids. I was all set to go when I read that it will be held in Ruby, and since I haven't used Ruby, I was discouraged. As much as I'd like to try it, I'm not sure how much time I'll have in my schedule before then.

Then I found TryRuby. It offers an interactive Ruby prompt and a follow-along tutorial, right in your browser! And there's another tutorial I found, Ruby in Twenty Minutes .

So I guess I'll have to revisit the sessions I planned to attend this week at CodeMash 2010 and see if there are beginner Ruby sessions. Perhaps, between them and some extra work during downtime, I'll pick up enough Ruby to feel comfortable attending the Grand Rapids Code Mash next month.

Sunday, November 15, 2009

CodeRetreat 12-5-09 LeanDog

I'm looking forward to attending CodeRetreat 12-5-09.
It's a free event, sponsored by and held at LeanDog. If you aren't familiar with the idea of a Code Retreat, as promoted by my friend Patrick Wilson Welsh, take a look at his description here.

Briefly, it's an event where agile software developers get together and pair program several solutions to a practice program, with the goal of honing our craft and furthering learning and discussion (Think software kata.) The event hits 5 of the 7 agile skill pillars proposed by the Agile Developer Skills Project:
* Collaboration
* Supportive Culture
* Confidence
* Technical Excellence
* Self-Improvement

I attended the previous LeanDog CodeRetreat and it was great! Lots of talented developers, great practice and learning, tech talks and a party-like atmosphere.

LeanDog's location is amazing. Their website describes says:
Our office is floating in downtown Cleveland right next to the U.S.S. Cod (a WWII Submarine), the Burke Lakefront Airport, and the Rock and Roll Hall of Fame. We are located on a converted steamship, the Keasarge, that was formerly known as Hornblower’s Barge and Grill. The restaurant setting remains and offers open spaces that are perfect for practicing Agile. Our location gives a great view of the skyline of the city we support.

We'll be coding in Java again, but if you want to learn or practice pairing and you don't know Java, don't let that stop you. That was my situation last time and it was still a great experience!

CodeMash 2010

I've registered for CodeMash 2010
January 14-15, 2010 in Sandusky, OH

There are several agile sessions scheduled:

- Agile Iteration 0 by Ken Sipe
- An Agile Toolchain for Flex RIAs by James Ward
- Credit Crunch Code – Time to Pay Back the Technical Debt by Gary Short
- Domain-Driven Design: An Introduction by Barry Hawkins
- Seeing Constraints, Kanban Explained by Jon Stahl
- Testing the Enterprise by Leon Gersing and Charley Baker
- User Stories: Closing the Agile Loop by Barry Hawkins

Wednesday is an optional Precompiler session(full registration required to attend). The agile topics that day are:
- Practical T/BDD - Half Day Hands-on Lab by Phil Japikse
- Test Driven Development: From Concept to Deployment with Leon Gersing (all day)

There are loads of sessions that aren't specifically about agile but look great anyhow. According to the CodeMash site:
More than 45 sessions will be held, spread across the following tracks:

* Architecture: SOA, W3C Standards, WS* Implementations, Interoperability and all things 30,000 foot or higher.
* Desktop Development: Standalone Applications, Fat/Smart Client, Client/Server and all things running local on Windows, Mac or your favorite Linux distribution.
* Web Development: Web services, Ajax, frameworks, and all things related to the browser.
* Methodologies: Anything pertinent to how modern development methodologies help build software faster, cheaper, and with less grief.
* Mobility: All things mobile: platforms, devices, content distribution, social networking, community building, and anything else used in conjunction with those devices which have little screens.
* Languages: What's new and cool in languages such as C#, Java, PHP, Python, PHP, Ruby? Of course there are other languages which we've omitted from this list for reasons of space but don't mean to offend their feelings.

and since one of the seven pillars is Self Improvement, why not attend and check out what interests you or what you think might help your team? And the cost for the conference is very low (see below.)

Details:
CodeMash 2010 will be held January 13-15, 2010 in Sandusky, OH at Kalahari Resort, America's largest indoor water park

Early Bird discount $175 until Nov 30
Regular $220 until Jan 7, 2010
Procrastinator $300

1DevDay Detroit

Yesterday, I attended a great event, 1DevDay Detroit. It was put on by the Detroit Java User Group, generously hosted at ePrize, and sponsored by too many companies to mention here. The day was amazingly affordable ($40) and, I think, a great success - especially given that it is a new event. There were a few minor hiccups, mainly around timing talks, but they didn't impact the overall quality of the day.

While 1DevDay was not specifically an agile event, there was much agile activity, including:

- Venkat Subramaniam's excellent and funny keynote, "Facts and Fallacies of Everyday Software Development"

- Chet Hendrickson's talk about the Agile Skills Project, a non-commercial group created to quantify skills needed by agile software developers and identify valid means of assessing skills, trainings, and books.

- Nayan Hajratwala's interactive session on refactoring legacy code with no tests and gradually adding and increasing test coverage to the codebase.

There was also a twitter hashtag, #1devday, where participants posted thoughts and comments. Check it out to get a picture of what the day was like.

Just as fun was meeting and talking with other developers, many of whom are using at least some agile practices.

I'm already looking forward to next year's event!