If you've ever been part of an agile project, odds are good that you've participated in a daily stand-up meeting. The goal is to communicate status, identify obstacles, and commit to an action plan for the day, while minimizing the time the team spends in meetings.
The basic format is very simple. The whole team meets everyday for a quick (less than fifteen minutes) checkpoint. Everybody takes a turn answering three questions:
If you've participated in daily stand-ups more than just a few times, odds are also good that you've seen them fail. Given such a simple format, why do stand-ups so often run astray?
One of the biggest culprits is lack of preparation. Those awkward pauses while someone is trying to remember what they did yesterday throw off the rhythm of thestand-up, causing it to drag on and creating opportunities for it to degenerate into a planning session or social event. In order to keep the standup short, high energy, and effective, everyone must show up prepared to answer the three questions.
Try taking a minute or two before the stand-up to jot down your answers to the questions on a sticky note. Bring it to the meeting with you, and use it as your guide when it's your turn to speak. Stick to your script, and "take offline" other conversations the spring up.
After the stand-up post the note somewhere on or near your desk. Tomorrow it will serve as a reminder of what you committed to today.
Hey, campers! Sew your nametags in your shirts and hightail it over to the Western suburb of Grayslake, Illinois for Chicago Code Camp May 14, 2011.
Held at the College of Lake County, this will be an outstanding day of learning and pushing your boundaries.
There's an A-MAZ-ING lineup of speakers and sessions - 35 in all - led by incredibly smart, accomplished people. Seriously, the caliber of these sessions is world-classs, and the variety of subjects hold broad appeal to every software geek.
The sessions are targeted toward beginning, intermediate and advanced coders, so you'll be learning at a level that's tailored to your level of expertise.
It's FREE. Unbelievable. I know.
Register for Chicago Code Camp now and we'll see you May 14 in Grayslake.
Over the last few months, Obtiva's leadership team and senior consultants have decided that we won't plan to hire any more senior consultants. Instead, we have expanded the pay scale for consultants and only recognize new senior consultants after we have seen them live up to our values, hopefully stretching our definition of senior consultant and raising the bar on the people already in those roles.
This recognition is bestowed by our senior consultants, and it must be unanimous. Consultants are nominated and then championed by someone who presents their case to the group. We discuss, vote, and then recognize. Last week we discussed and voted. Today it is time to recognize Obtiva's two newest senior consultants.
As we reviewed what both of these guys have accomplished over the last year, all of the senior consultants felt at least a little uncomfortable about the level of awesomeness these guys were achieving. This is good, Obtiva's purpose is to be a role model to our industry, and the only way we're going to live up to that is by steadily raising the bar of what we expect of ourselves.
While there are a lot of differences between these two people, one interesting similarity was the way they started at Obtiva: in a contract-to-hire relationship. Due to a variety of variables, when Obtiva first met these guys, we weren't 100% sure they were going to be successful with us and wanted to take it a bit slow. In hindsight it seems like we were silly to hesitate. But I wonder if starting our relationship without a full commitment actually accelerated the progress these guys made toward their achievements. It's something we need to consider.
I first met Ryan at Software Craftsmanship North America in 2009. He was visiting from Ohio and expressed interest in moving to a bigger city like Chicago, New York, or London. We kept in touch over the following months and when the time came for me to find someone to replace me on Mad Mimi, we chose Ryan. He left his wife Stephanie behind in Ohio while he lived in Obtiva's corporate apartment with our apprentice Ethan Gunderson. Ryan was confident he would quickly win our confidence, receive a job offer, and then bring Stephanie to Chicago. He was right, but he didn't squander his time living with Ethan.
Ethan was an apprentice at Obtiva from November 2009 to May 2010, and Ryan played an important unofficial mentoring role in Ethan's apprenticeship, which I believe has contributed to Ethan's success. Ryan befriended his flatmate and the two of them have launched two successful endeavors together in the year they've known each other.
Ryan quickly proved himself to be invaluable on the Mad Mimi project, and we hired him within the first two months of working with him. As Obtiva's day-to-day relationship wound down with Mad Mimi and they ramped up their own development team, Ryan transitioned into a slightly larger client. As with Mad Mimi, Ryan was a reliable, productive developer at Groupon, a good example of what Groupon CTO Ken Pelletier described in his interview. Ryan rolled out of Groupon in March to lead a project at one of Obtiva's key clients in Chicago where he has shown an ability to consult simultaneously at the technical and organizational levels, and has received rave reviews from his clients in the process. (You'd appreciate this feat more if I could tell you which company he was consulting at.)
All that said, the aspect of Ryan that really stands out is his passion for community engagement. Ryan is an ambitious, fearless extrovert and has thrown himself headlong into the Chicago development community, representing Obtiva at countless user groups. He has spoken at half a dozen conferences in the last year, most recently at the Scottish Ruby Conference where he spoke on a topic he plans to eventually adapt into a book.
The future is certainly bright for Ryan Briones, and we feel fortunate to be able to recognize him as one of Obtiva's senior consultants.
I met Scott Parker in late 2009 after he responded to an email I sent to the Polyglot Programmers of Chicago group (which is now in hibernation). One thing led to another and since Scott's professional programming experience was exclusively on the .NET platform, Scott started with us on one of our infrequent .NET projects. Because .NET is outside of Obtiva's typical project portfolio, we were tentative and brought him on as a contract-to-hire. You can read a lot about Scott here, where I told a few stories about the intersection of passion and competency.
But there's more to tell, and a lot of it is too wrapped up in Groupon details to talk about, but suffice to say that Scott has created a multitude of raging fans for himself (and Obtiva) at Groupon. If you didn't click through to my previously written story about Scott, you'll need to figure out how in less than a year this guy went from .NET subcontactor to epic Rails project leader inside the fastest growing company in the history of history.
In Scott's copious free time, he has co-founded the Chicago Software Craftsmanship group and is currently working on a fall software craftsmanship workshop series at some university called Notre Dame. Like Ryan with Ethan, Scott also took the time to mentor someone in his off-hours who later became a full-time Obtivian, the fantastical Dan Melnick.
In the opinions of Obtiva's senior consultants, both Ryan and Scott should be recognized as Senior Consultants. They have set the bar high for future (and existing) senior consultants and we're excited to recognize them today.
We're busy spreading more of that Obtiva joy, this time with our client ConnectedHealth.
See, the good people at ConnectedHealth had an idea. A brilliant idea, in fact, but one for which they required additional technical manpower to bring to life.
Enter Obtiva. We brought the the ability to solve complex problems, the budget-mindedness and the developer team that ConnectedHealth needed to take their idea from concept to completion, in a hugely successful way.
Watch as Tracy Heilman, ConnectedHealth Vice President of Product Development, talks about her experience in working with Obtiva.
We love lots of things in this world, but making clients happy has to be one of our absolute favorites. Thank you, ConnectedHealth. It's a joy working with you.
This being my first post on the Obtiva blog, allow me to introduce myself.
My name is Carl Thuringer. I'm 28 and the newest apprentice at Obtiva. I come from a background primarily in PHP and Drupal and have been studying Ruby and Rails for the past two months leading into my current engagement with Obtiva, and having a blast doing it. I come from Troy, Michigan and while I lived in Ann Arbor for the past several years, I've never lived in a big city. Coming to Chicago has been a blast and I love the city and the endless opportunities it offers.
The apprenticeship, too, is bursting with opportunities and every day I am excited, confused, frustrated, elated, and thankful for all the learning material and coaching I have been getting from fellow Obtivians. Some days I even feel confident, though it doesn't last long. I have a long way to go yet and there is always something new to learn, digest, implement and understand.
As an apprentice I am responsible not only for my own education, but also a self-determined project though which I have the chance to experience the stages of product planning, pitch, development, iteration, review, refinement, and delivery. It really is a great way to get myself acquainted with the tools and practices of a professional consultant, and it gives me ample opportunity to apply what I learn immediatelly to my product. In addition, I can work on the bleeding edge of Rails and Ruby and gradually as I approach core competency begin to find and integrate the most exciting new technologies and practices just emerging in the community.
Speaking of community, I'm taking over Obtiva's weekly Geekfest get-togethers. Alongside my education in coding I'm getting a full-immersion experience in organizing and planning for the Obtiva extended family. And not just catering and setting up chairs, but getting in touch with developers and scheduling presentations on subjects such as scaling an application and the pros and cons of the most popular text editors.
Always having the opportunity to pair with developers at the office on real-world problems and client projects has been a really great experience. Especially following the thread from client meeting and the drafting of Stories, through to the planning and implementation, bug-squashing, test-writing and the final rush of pushing to a staging server once all the tests pass and seeing the resulting functionality in the UI. Then the code is refactored until it is lean, concise and readable. Watching this process greatly influences on how I approach my own project's stories and their implementation.
I've only just begun here but I'm also surprised it's been three weeks, nearly a month! I plan to continue pushing myself to learn and experience all that I can, meet more of my peers and begin to involve myself in the community as a participant. Thanks Obtiva! I'm looking forward to many more months of learning and working as I travel the road to mastery.
Finally, some of the best resources I've found so far that have helped me hit the ground running here.
This book is a great primer for anyone getting into an Agile process for the first time. Chapter by chapter Rasmussen walks through the process of planning and organizing an Agile project from inception, planning, iteration and delivery to, in later chapters, the details of how to avoid pitfalls during development through practices such as Continuous Integration and Test Driven Development. I would have had a much harder time putting together my initial presentation if it weren't for the inception deck.
I got my start with Ruby via '_why's Poignant Guide to Ruby' and followed up with the 'Programming Ruby' guide, but you know what's almost as clever as the former and much more readable than the latter? That would be Olsen's book. It's not often that I read a programming book and really feel like the organization and pacing are just 'right,' and that's exactly what Eloquent Ruby offers. It's equal parts walking through basic expressions, control structures, methods, higher concepts and casual advice and suggestion as to where to manipulate the casual syntax requirements in ruby, and how best to write the solution to a given problem. I haven't finished it, but once I do I think I'll read it again for good measure.
These days it seems that everything is better with zombies. Red Dead Redemption, a game about the wild west got a zombie story as downloadable content. There's Pride and Prejudice and Zombies. According to Wikipedia, there were 50 or more zombie movies in 2010 alone! But now I know what I really want. More zombies in my programming languages. Rails for Zombies is free, fun, and can be completed in a weekend easily, or powered through in a few hours. And you might as well go through it again, just in case you missed some zombie-related functionality the first time. It's a great little introduction to Rails that pretty much anybody can enjoy.
If Rails for Zombies whet your appetite for Rails, then this is the next stage. The tutorial walks through the creation of a few applications, starting with some basic demonstrations of the power of Rails generators for getting applications off the ground, and then steadily walking through the development of a Twitter clone made completely from scratch without the use of automated scaffolding and fully supported by test driven development, augmented by some excellent tools and advice for establishing the development environment. Without the help of this tutorial I would have found it much more difficult to get my project off the ground and it would have had far more issues than it does.
Michael's daylong Agile training course will let you understand how Agile practices let you deliver working products quickly, respond to customer needs, and balance flexibility with stability. Learn more about Obtiva's Agile training and register here. A whole gaggle of Obtivians will be in Denver for the training and StartupWeekend - Dave, Andy, Tyler, Michael, Ryan, Kat and Kevin.
StartupWeekend events are held 'round the world and are a high-energy, whirlwind 54 hour event where entrepreneurs, developers, designers, marketers and everyone in between get together to build out a business concept during the course of a weekend. It starts on Friday at 5 p.m. as participants get together and discuss the kinds of projects they want to create, then pitch their product ideas to the group. Then, teams break out -- typically, about nine teams form during the weekend, each creating their own company and their own product or application. By 9 pm, teams have begun to solidify their concepts and create an elevator pitch, and each group breaks off to conduct its own in-depth discussions and begin to prototype its product or app.
Saturday morning, work begins in earnest on strategizing, planning and coding, and continues through Sunday evening, when each company presents its concept to a panel of judges and a winner is declared.
Sooooo: Dave Hoover is one of the judges, while Andy, Ryan and Tyler will be working as technical advisors for the participants.
This is going to be an exhilarating, inspiring, fun, and yes, exhausting weekend that you won't forget. And the Obtiva training with Michael Feathers June 3 is the perfect introduction to Agile skills you can use during StartupWeekend and forever more in your career.
Twitterheads, follow the discussion on Twitter and use hashtag #swDenver.
I've been getting into code metrics quite a bit recently and I've been particularly interested in the way that that they change as code changes. Complexity metrics are particularly interesting. There's no shortage of them. McCabe, Halstead, etc. People have written many papers comparing and contrasting them. At the end of the day, it seems that many of them give you the same thing. There's a lot of correlation, but that doesn't stop discussion about metrics. People look at a number and they want to know what it means.
Recently, Chad Fowler, Corey Haines and I have been working a tool called Turbulence which plots complexity versus commits for Rails projects. When you're in Ruby, gems are your goldmine. For Turbulence, we picked off flog from metrics-fu and used it as our complexity measure. It's nice except.. it's not so obvious what the number means. It's a function of the weights of particular constructs in methods that are supposed to be hard to test. That's fine, but I want a measure of what's hard to understand and change. I'm sure it overlaps but when I'm looking at a 4.5, it would be nice to know what that means.
Generally, with metrics you develop a "feel for the number." When you have that feel, the number really speaks to you. But, really, the number is a proxy for the thing you really care about, which is usually something like "how hard is this to test, or understand." So, there's this little game that we play. We look at a number and we try to imagine what led to it. "Sure, the code is using instance_eval, but maybe it was used in a nice clear way?" I think, though, that this sort of reasoning is easier when the metrics are very concrete. It makes me wonder whether we should go back to using line counts or counts of conditionals as simple measures of complexity.
Denver developers and project managers: here's a chance to transform your thinking and gain a solid understanding of managing projects in an Agile environment.
Obtiva's Agile training in Denver May 24 and 25 will introduce Agile principles and practies that allow you to deliver working software quickly and effectively.
And making this training especially noteworthy is the fact that it is led by Obtiva Founder and President Kevin P. Taylor.
You know those rigid, traditional, linear development methodologies just aren't working for you anymore. Kevin will show how an Agile approach enables the rapid delivery of working products, a wonderful degree of client responsiveness, and a balance of flexibility with stability in product development.
The first day of training provides an overview of Agile development principles and practices, how to build an Agile team, and some hands-on excercises. Day two, you'll learn how to manage Agile teams, how to estimate and plan projects, how to transition to an Agile approach, and complete additional hands-on exercises that give you a real feel for an Agile approach.
Truly, two enlightening days that will alter your career forever. Join Kevin and Obtiva for some stellar training in Denver May 24 and 25.
Wait no longer... register for APM training with Kevin today!
The goal of TechWeek is to showcase and celebrate the new culture of technology that's growing and thriving in Chicago. There will be four days of conference sessions with 150+ speakers and 10 different conference tracks; a 40,000 square foot exhibition space at the Merchandise Mart; and dozens of independent off-site events. It's all being organized by those folks at midVentures.
We're putting together some great events that week including two training sessions, presentations, and of course a Happy Hour. Stay tuned as plans evolve.
You'll be hearing much more about ths week-long event, but for now, for heaven's sake, don't plan your summer vacation for the last week in July. Trust us, you won't want to miss Chicago TechWeek.
Have you noticed how many presentations and training sessions Obtiva has been leading around the world?
Tyler conducts a training session that covers JRuby for the Ruby Developer. He'll cover the basics of integration with Java and show how to build a Java desktop app using Swing from Ruby, as well as how to use JRuby to run your Rails apps.