Desert Code Camp 2011.1

Saturday April 2nd @ Chandler-Gilbert Community College Pecos Campus

Desert Code Camp has opened it’s call for suggestions.  This is a great FREE event that brings together technologists of all kinds together at a single location to learn (while feeding them breakfast and lunch) new technologies, improve on existing technology or share your favorite technology.  There has been a good dynamic languages track in addition to a strong Microsoft track.  There has been a track for kids (Gangplank Jr) and even sessions on sales or running a business.

Project Management In Small Shops

This Code Camp will feature an agile track being put together by the Phoenix SCRUM User Group as well.  I am excited to see this come together and the diversity of the Desert Code Camp expand every time they announce a new one.  This is a conference that has been inspecting and adapting over the years (adding a speaker dinner and after party even) and has become a real asset to the community.  I hope that you will support it and that we will see you there!

Things you can do to help:

Desert Code Camp Fall 2010 Recap

Desert Code Camp this year was held at Chandler Gilbert Community College.  The venue certainly exceeded my expectations.  The architecture was incredible and the rooms were well laid out.  However, the most impressive thing was that wireless just worked.  Easy to access and didn’t crumble under the load all day long.  It has been forever since I have attended a 300+ person technical event where the wireless didn’t melt.  Kudos to the IT staff for getting it done!

Arizona Sky and Walkway

This Code Camp saw the return of Gangplank Junior in the form of a half day track.  I was able to teach a Scratch class and had a blast.  Now that we have done a few of these it is great to see returning students who already have the basics down and are able to make fairly complicated games or animations.

It was nice seeing so many of Integrum‘s staff teaching classes this year.  It really felt like we were connecting with community as a team and there was a lot of excitement in exploring new technology.  Sometimes it is nice to get out of the office and meet some new people and learn some new things.

Project Management In Small Shops

A Developer's Guide to Scrum
Other new additions were a speakers dinner and an after party.  I attended both and thoroughly enjoyed them.  Especially the after party.  There was San Tan Epicenter on tap and great conversations happening.  Many significant others attended the after party and it was moved down to Siracha Lounge where it kept going strong.

SunnyConf: Southwest Regional Ruby Conference

Regional technical conferences are something I have come to appreciate over the last five years.  It is a great way to meet new people and learn new technologies.  These regional events have for a large part launched the hallway track and unconference movement that is so prevalent.  It seems like a decade ago that I attended the first Ruby on Rails Conference in Chicago, IL.

I am excited to finally see a regional Ruby Conference in my own backyard after years of traveling the US to attend other national and regional Ruby events.  The line up is great and you should join us.  SunnyConf register TODAY.

Keynote — Jeremy Ashkenas: Code is a Commons

Isn’t it strange how with open-source code, the more you give away, the more you have? Writing software is qualitatively unlike any other field of human endeavor. We’ll explore how open-source projects can avoid the tragedy of the commons, parallels to drafting legislation, and if it makes any sense to treat works of code as literature.
Les Hill & Jim Remsik on How to Build a Team

Hashrocket began as a small four person shop aiming to build products and get rich doing the same. Something happened along the way and we wound up with a small principled consultancy that works hard and plays harder. Listen in as we share how we keep the culture, quality, and cohesive bond that makes Rocketeers love working for Hashrocket.

We will cover hiring, communications, methodology, environment, culture, and community:

* Hiring: getting the right people is critical to building an awesome team
* Communications: openess and transparency are essential to keeping focus and attitude
* Methodology: being Agile takes discipline and practice. It requires more than desire and reading a book
* Environment: being in an environnment that is pleasant and enjoyable enhances productivity
* Culture: a shared set of values builds and keeps the team bonded
* Community: you are not isolated, participation and giving back are core values of the large Ruby/Rails and OS community
Charlie Nutter on JRuby: The Way to Enterprise-Friendly Ruby

You know that JRuby is Ruby for the JVM. But did you know you can deploy Ruby applications anywhere Java applications can go? Did you know that all the amazing profiling and debugging tools for the JVM work great with JRuby? Did you know that the entire world of Java libraries are available to Ruby users?

In this talk, we’ll show how JRuby is bringing Ruby to a wider world, making it possible to build Ruby apps for Java enterprises, for Android phones, for Java-based clouds like Google’s AppEngine, and much more. We’ll play with some of the amazing JVM tools like VisualVM, which allow you to monitor performance and memory use of live applications. We’ll see how easy it is to use any Java library from Ruby. And we’ll talk about strategies for getting Ruby into organizations that only allow Java or JVM-based deployments.

Blake Mizerany on Sinatra Extensions

Sinatra extensions. Learn them. Love them.

We’ll get intimate with how to create simple to advanced Sinatra extensions, and all the cool little secrets about Sinatra you probably should have discovered a long time ago. At the end of this talk, you’ll be able to take your favorite plugins from other frameworks, do them the Sinatra way, and leave the bloat behind.
David Keener on Leveraging Rails to Build Facebook Applications

This talk is a distillation of some of the practical tactics that Dave’s development team at MetroStar Systems has used to create highly successful FaceBook applications using Rails, including real-life systems like PollCast and Iran Voices. Facebook is the world’s largest social network, with over 400 million members. The talk also discusses the ramifications of the latest game-changing announcements from Facebook’s F8 Conference and how these changes are affecting Facebook development.

Biography: David Keener is a solutions architect for MetroStar Systems, a fast-growing consulting firm in the Washington DC metropolitan area providing services to government agencies, non-profit organizations and the commercial sector. Dave has over 23 years of experience, specializing in Ruby, Rails, social media and (sometimes) even Java. He is a frequent public speaker at user groups and conferences, as well as a founder of the RubyNation Conference. He also blogs regularly on Internet-related subjects at KeenerTech.com.
Andre Arko on Bundler: Painless Dependency Management

The new Bundler being released alongside Rails 3 has been designed to fix all of your dependency problems. It makes using dependencies easy and reliable at the same time. Bundler can handle your Rails gem plugins, your application’s dependencies, and even your dependencies’ dependencies, all automatically. It even has built-in support for multiple environments, like development, testing and production.

In this talk Andre will walk through why Bundler was written, and why you should be using it for all of your applications. He’ll talk about how it makes dependency management painless, and how to use it effectively in common scenarios. He will cover using the Bundler with Rails 3, Rails 2, Sinatra, and any generic ruby application. He will also talk about about his experiences helping maintain the project, how to resolve the most common Bundler issues, and where the Bundler is headed in the future.
Luigi Montanez on Civic Coding

How can Ruby change cities, states, and countries for the better? Last year, we saw an explosion of interest around government transparency. The Open Government movement, spearheaded by open source developers, seeks to make government more accountable and responsible by turning open government data into citizen-focused, civic-minded applications.

This talk will guide you through the Gov 2.0 landscape. You’ll learn about the data sets and APIs freely available for your use, the tools and skills you’ll need to be a successful civic hacker, and you’ll get a thorough overview of the current civic apps out there. Civic hacking will enhance your open source portfolio while making a difference in your community and country.


Alex Sharp on Refactoring

This talk will focus solving difficult refactoring problems in a real world codebase. I will show actual code and demonstrate specific refactoring techniques to show how specific problems were solved. This is not a conceptual talk, and thus we will look at LOTS of real code. You’ve been warned!

In this session, we will cover the following:

1. Educate audience on core principles of refactoring
2. Present conceptual framework for approaching large refactorings
3. Demonstrate common refactoring techniques, such as extract method, deprecate method, and characterization testing
4. Identify common anti-patterns in web applications and specific refactoring strategies

Attendees should expect to learn core refactoring strategies and techniques, as well as techniques that can be frequently applied in refactoring web applications.
Brian Bommarito on Testing

This talk will be a technology agnostic discussion on testing web applications. We will learn how to create a testing workflow for a development team, the basics of unit testing, using a continuous integration tool, and dealing with broken tests during feature development.

This talk will also include a demo on how to test a Sinatra application with RSpec, Cucumber and Hudson—a continuous integration tool.

Oblivious To The Things You Do

Sometimes when you are in the heat of doing things you become completely oblivious to how things are being perceived by others.  At AgileOpenNorthwest we were talking about Agile software development and started to talk about Where Are Your Keys.  The discussion quickly became about understanding how we learn is so important to the skill set of the new economy.  Everyone started talking about the current broken educational systems.  At one point someone blurted out “What are we going to do? Change the educational system?”.  I answered, “Yes, we are.”.  Everyone at the table looked at me like I had three eyes.  I had just got on a plane to come to the conference directly from leaving our first Educational Unconference to change the educational system, so this seemed normal to me.

Take Away

When challenging the norm becomes your norm expect people to look at you funny.

Now is the Time to Setup a 401k for your Startup

I have decided to start sharing a little more about the things I do on a day to day basis.  Mostly, they seem boring and uninteresting to me, but I am always amazed when sharing experience how someone can find use of the data.  Expect a lot more of me talking about my failures here.

Integrum has been around just over five years and we finally decided to investigate setting up a 401k plan.  We have always offered financial planning services to our employees to help them manage their retirement planning, but had stayed away from a 401k for several reasons.  One reason is we figured most of our employees being younger weren’t that interested.  It is never asked about or brought up as a missing benefit.  Another reason is we were afraid because we didn’t know jack about setting one up.

Setting up the plan took about 15 minutes of discussion with a financial planner.  The cost to set one up was under $300.  We then had to get an insurance fidelity bond for the plan.  That cost under $200 for 3 years and took a few emails and a fax.  So spending less than an hour total time and under $500 we had a working 401k in plan.  It is almost embarrassing that we put off doing this for FIVE YEARS!  Maybe there is something to this GTD stuff!

To make things even better is we also found out that there are currently tax breaks available to employers that are setting up such plans.  So all the costs associated with doing so will be credited back come tax time.  So really it cost nothing but our time.

If you are in Southeast Valley of Arizona I highly recommend.

Michael Klein (Financial Planner)

Jason Sheahan (Insurance)

Take Aways

1. Stop putting off things you are afraid.

2. Don’t be afraid to pay for experts.  They will make things go much more quickly, give you assurance and allow you to do what you are best at.

Dysfunctions of (Agile) Teams

Over the holiday break I read Patrick Lencioni‘s “The Five Dysfunctions of a Team: A Leadership Fable“.  The premise is that each dysfunction builds upon the dysfunction before it.  Much like Maslow’s Hierarchy of Needs.   Below is an illustration of the dysfunctions with absence of trust being the building block of dysfunction.

Running multiple organizations and being part of an agile team gives me ample time to see team dynamics and participate in them on a regular basis.  This book really made me think a lot.  The information wasn’t particularly new, but it reminded me that much like agile, leadership of a team can be simple yet insanely difficult at the same time.

Absence of Trust
For some reason most teams think that if they all get along they have some super team work trust going on, but if there is any conflict what so ever that the team is some how not in harmony and that all is wrong with the world.  I remember early variations at Integrum where this certainly was the case.  The truth is that Trust is all about comfort in being vulnerable.  On an agile team this vulnerability is necessary because the only way to continually improve towards excellence is to be honest about your deficiencies.  If someone doesn’t feel they can be open and honest in their weaknesses and mistakes this can never happen.  What is your team doing to build trust and encourage vulnerability?

Fear of Conflict
The biggest smell of a dysfunctional team to me is one that agrees on everything and never has conflict.  Without conflict there are things being left unsaid.  In the end this is just unhealthy.  Willingness to have healthy conflict allows unfiltered and passionate debate about new and innovative ideas.   A good agile team is a “noisy” team.  I think the same goes for pair programming.  If a pair isn’t regularly in heated debate they probably aren’t trying very hard.

Lack of Commitment
I am starting to think that commitment is one of the most powerful words in agile software development.  Healthy teams don’t make excuses.  They don’t blame or shirk responsibility.  The get on the same page and drive towards completing the goal.  Deciding on what to commit to and then measuring to that commitment is key in building a strong team.  I have long thought that accountability was a major problem with no solution, but I am reminded that it’s probably a lack of commitment to blame.

Avoidance of Accountability
This is so so so so difficult.  As calling peers out feels so unnatural.  Who am I to tell you what or how to do something?  What authority do I have over you?  In reality if we have a shared commitment, I am doing both of us a disservice if I don’t speak up and hold you accountable.  It just never feels that way when it’s time to step to the plate and do it.  Recently I was told by someone to RTFM (Read The Fucking Manual) and it kind of stung.  It made me realize that I demand a lot, but at a bare minimum I wasn’t able to perform a basic function of one of the teams goals towards quality.  How embarrassing.  I wasn’t angry.  I was glad.  Their commitment to the goal and trust that I wouldn’t blow up over such a conflict ultimately improved what I was doing.  That’s how agile works right?

Inattention to Results
So often in the past people on our team were driven by ego, career development or recognition.  I childishly called them the “What about me’s?”.    Ultimately the one to blame is not them, but myself.  Failure to give them goals to commit to, left them no choice but to think selfishly.  It’s something that I painfully work on in everything that I am involved in, because frankly it’s hard work.  Guess I need to quit making excuses.

Patrick’s observation in the final summary seemed too fitting for an agile team to not share…
Ironically, teams succeed because they are exceedingly human.  By acknowledging the imperfections of their humanity, members of functional teams overcome the natural tendencies that make trust, conflict, commitment, accountability, and a focus on results so elusive.

For the first time I feel like Integrum has a team that is human.  It might just be that we are starting to achieve that right level of imperfection to function as a committed team.  Makes me feel pretty lucky and excited!

Sunday Review: Agile Estimating and Planning by Mike Cohn

Thumbs up means I highly recommend reading the book. A thumbs down means read something else unless you have free time on your hands.

thumbs-upAgile Estimating and Planning (Robert C. Martin Series)

Take Away: Estimating and Planning involves a lot of proven science, if you want to understand why agile planning works read this book.

Accountability Is Painful!

Part of doing agile development means being accountable and transparent. Recently Integrum has started to step up it’s path towards excellence. The team felt that testing was not being all that it could be and more importantly that it wasn’t visible enough. We have a “FAIL board”, which a large screen TV out in the open, that shows all current projects with failing builds. Last hacknight Jade and Clayton made a plugin so that setting up a new (or existing) project on Cruise Control is completely painless. (Will work on publishing it in near future)

All projects were immediately added to CruiseControl. All developers were then required to get their builds passing. One project got “built” really fast. Seems they had no test specs or features. Of course, the easiest fix to this problem was to run a little script to build all the spec/feature files and create mass failure. (Will work on publishing it in near future) It only would be fair to then call out to the entire team the Shenanigans!

Accountable

Names cut out to protect the innocent. I <3 this team!  Where else do you get to work with evil?

Regional Ruby Conference in Phoenix, Arizona

There was a call for conference planning for a Regional Ruby Conference on the Ruby AZ meeting list recently.   It was at the request of fellow local Ruby company DevFu that I decided to attend.  I showed up for the planning meeting and was impressed by the turnout. I think most of the regular rubyists were in attendance and all of the companies seemed represented.

I was turned off that it was at a coffee shop.  When there ended up being no room to sit, I admit I felt that I had wasted my time showing up.  Several people mentioned that using something like Gangplank was out of the question because then others wouldn’t attend in protest. I was disappointed that the maturity level was so bad in the community that I reconciled that this thing had no chance.  Out of frustration I even over reacted by calling the selection of the location as a cluster fuck.

The good news is that it ended up being a really good discussion. I think that if nothing else that perhaps the act of planning a regional conference will be the thing that finally gels the local ruby community.  I really felt by the end of the meeting that everyone was working and discussing things that will move this community forward. It left me with hope that perhaps the community is not too fractured or damaged to be taken seriously. Marc and Curtis thanks for taking the time to explore getting this off the ground. I genuinely look forward to helping out.

Looks like we are planning for something in Sept/Oct of 2010 as the date.  There are work groups actively working on venue, speakers, sponsorship, etc.. I started the day with a bad attitude about things and left pretty excited to help make this event happen.

Startups and Mind Camps and Crowd Pitches. Oh My

It is clear to me that we are not in Kansas anymore.  I expected today to be full of amazing as more days than not seem to be that way of late around Gangplank.  The morning got going by kicking off a new start-up that Integrum is working with from a group of Intel alumni.  The planning meeting for the kickoff was full of energy and was a setup for things to come.  Straight from that meeting had an Integrum retrospective that unveiled a new concept of transparent and accountable running of a company day in and day out.  I will probably make a separate post on the concept in the near future.

By the time we finished up there it was time for Mind Camp to kick off.  Four hours of heated debate on transportation, regional city planning and religion later it was time to break down and setup for Crowd Pitch.  I love the energy around Crowd Pitch and sitting on an investor panel is always fun.  By the end of the night I learned that Gnomedex is now part of Funding Universe and that there is a good chance we could see it coming to Chandler in the future.  Additionally, there is a reasonable chance that we could be launching Gangplank in a foreign country.  Possibilities are limitless when you stop putting boundaries on potential by planning too small.