Monthly Archives: December 2007

Stand Up Meetings – “Scrums”

So the new space is coming along, and before long the development team will be relocated into the new space – whats next?  Well, since we still have development efforts under way and still investigating/adopting formal Agile techniques, we want to introduce visible changes to the way we develop software – and we’ll begin with stand-up meetings.

One of the first Agile best practices that companies attempt to implement is the stand up meeting, or “Scrum,” as it is often called.  Now, trying to hedge the issues other adopters seem to regularly face, we’re quickly enforcing measures aimed to make our meetings as effective as possible right from the very start.  Here are a few things to consider:

  • Keep it focused – The purpose of the meeting is to help maintain focus on the iteration plan and to remove any obstacles. To that end, each team member should briefly state what they did yesterday, what they are doing today, and raise any issues or roadblocks.
  • Keep it short – A stand up meeting shouldn’t take longer than about 15 minutes. If an important issue is raised that affects the whole team, address it. If the issue applies to a few, take it off-line.
  • Use a project board – We intend to meet around a project board, which tracks progress against the iteration plan, listing the “stories” and assignees, as well as status. This helps keep the eyes on the prize. It also helps speed up the meeting by providing a convenient reference (“I resolved story X yesterday, and I’m working on story Y today, which is my last story of the iteration”).
  • Keep it constructive – Don’t turn this into a daily inquisition or it will fail. As a developer hits a roadblock or falls behind, remember that the point is, “We are a team, let’s help each other succeed as a team.” If handled positively, the issues will be raised, and people will pitch in to help.
  • Share announcements –This is also a good time to share brief, general announcements, e.g. “We’re branching the code at noon today.”

The stand up meeting isn’t intended as an end-all team communication. Ideally, most roadblocks will be identified and handled as they arise, not just in this meeting. We fully expect if done right (and it may take us some tweaking to get there), stand up meetings will improve our team’s effectiveness, as we’ll be communicating more frequently and each be working off of the same page toward a common goal, knocking down the road blocks, and helping each other hit our deliverables on time!


New Spaces – new Faces!

Billhighway has recently taken over some additional office space – to make room for our growing teams!  The past couple months have been exciting as we’ve wrapped up another successful year of growth.  In October we welcomed a new service center manager- Kimberly Ng, and a new marketing director Pam Okopny.  In November, Doug Fry came onboard as our new software development manager in charge of driving the evolution of our products forward.  In a short time, each has made significant contributions and am confident will help ensure yet another successful year in 2008!

Between the holiday, we hope to move our development group into the new office space, which adds quite a few more workstations, a conference room as well as a common area – complete with a wii!  The new “open” floorplan will permit roaming work areas with wifi for teams to collaborate, while also leaving additional space for continued growth on the team. 

We’re excited to get settled into our new space, and get our new, more Agile-friendly methods incorporated into our daily lives!

Let’s try this again..

Every year about this time I embark on establishing a few high-level goals for the upcoming year.  Looking back on 2007, I’m quite happy with how things unfolded.  We attended numerous events around the country promoting our services, technology and “platform” – leading to several trips out to San Fran and Palo Alto.  In fact, I managed to rack up about 22,000 miles, falling just short of silver elite status with NorthWorst.  shucks. 

I also finally committed myself to a public speaking course at a local college to brush up on my “stage presence”.  I then got married in July and took some time off to visit Bora Bora for our honeymoon.  Since then, the fall has brought plenty of opportunity to keep me busy, as I further try to strike that balance between work & life.

2008 brings a new chapter and one of my [many] goals is to start doing a better job sharing the “Billhighway” story – specifically with regard to my role as the CIO.  Our company has grown significantly the past 5 years I’ve been here, and we’re doing some pretty amazing things – why the heck aren’t we communicating it to the world, or at least within Michigan?  Most of us here know, our economic health is poor (at best) and there’s really only a few compelling things occurring in the media that point to a glimpse of hope for a turn-around.  One of which is reducing our dependency on the automotive sector by encouraging growth-oriented, entrepreneurial companies to seek out Michigan as a place to do business.  Well, that’s very interesting – Billhighway is already here!

  So that’s it – my goal is to start sharing in the trials and tribulations that occur around here on a regular basis.  Michigan isn’t used to a “Silicon Valley” mindset – and we’re out to change that, one suburban programmer at a time.  (Google’s recent presence in Birmingham and Ann Arbor doesn’t hurt either.)   Stay tuned, 2008 is surely going to excite!

Agile 101

ok, here it goes.  So everybody knows, Billhighway has been growing like gang-busters the past several years, and consistent with everything in technology the only contstant around here has been change!  We’ve undergone several large project initiatives, fluctuating team sizes, in-sourcing, out-sourcing, consultants, staff-adds, off-shore development, new technologies – you name it.  Lots of wonderful lessons learned right?  Right.  Now, as the smoke clears, we have a rare opportunity to reflect upon our development efforts in the past and actually take time to evaluate what has worked and what could use improvement.

We’re a technology company, thru-and-thru.  If our technology engine isnt “humming”  the whole company feels it.  Now, we’ve always prided ourselves on being innovative, pushing the boundries and embracing change, when and where it makes sense.  That said, it hasn’t always been easy.  Software development presents numerous challenges, non of which I intend to get into here, but instead, I would like to begin to showcase the direction I intend to begin taking our software development efforts, with the help of our new production manager, Doug. 

Doug and I  have begun an exploration into Agile, (he actually having previous exposure in a prior life, me living mostly thru success stories of other outfits) and, as most we’re moving forward with a hybrid-like adoption model, borrowing from the concepts which make the most sense for our environment.  Over the coming months I’ll shed some light into how things are going, hoping our efforts can help push the Agile community forward.

So what exactly is Agile? 

The need started long ago, as a number of methodologies formed to address the failures of Waterfall, which included analysis paralysis, long waits to get return on investment (one big release at the end of the project), projects that resisted change at all costs. They also addressed problems with the RUP methodology, which although iterative, was, at the time, heavy on documentation and process. The new methodologies shared a number of best practices, and the general movement became known as Agile.Some of the better known Agile methodologies are XP, Scrum, DSDM, AUP, ASD, and Crystal. Although each has its own spin, they agree on many points. The Agile movement was solidified when representatives from a number of Agile methodologies met in 2001 and produced the Agile Manifesto. The groups also agreed to the shared principles behind the manifesto.

One of the best aspects of Agile is that it is not a dogmatic approach, but rather a collection of best practices that should be used as they make sense for each project.   

Agile Best Practices

The best approach to implementation of a new methodology such as Agile is one best practice at a time, with 1-2 teams at a time. Get a win or two under your belt, and people start to see the light. Here are some of the best practices that are generally accepted by the various Agile methodologies, which I managed to scrap together.

  • Agile Project Planning – User story requirements gathering that avoids heavy documentation, plus prioritization, estimation and overall project planning.
  • Iterative development – Deliver value early and often. Includes iteration planning and an iteration review.
  • Daily team interaction – Enable daily face-to-face communication between developers and the business.
  • Daily stand-up meeting (“scrum”)– Short daily meeting to clear roadblocks and keep everyone on the same page.
  • Welcome changing requirements – Even late in development, changing requirements should be welcomed.
  • Sustainable development pace – A reasonable, sustainable work pace and avoid the death marches that lead to burnout and turnover.

There are some additional Agile practices that have less universal support but are nevertheless closely associated with Agile.

  • Test-driven development– Developers create their tests before development. Development is complete when they pass their tests.
  • Pair programming – Developers are paired for an iteration to work together.
  • Continous Integration –  the process of completely rebuilding and testing an application frequently

That should about cover the basics – stay tuned for more Agile know-how, from the trenches as we continue to dive-deeper in the weeks/months to come..

CodeMash here I come!

I was recently turned on to a local conference called codeMash – taking place in Ohio which I’m actually pretty excited about.  I met a couple of Agile guys (Nayan & Patrick) through our product manager, doug – whom told me about the conference.  I do my best to stay abreast of tech conferences, especially the latest “mash” formats, including attending several of the past mashup Camps

At most of the “mashup” conferences I’ve attended to date have been very open-source friendly, with almost no representation by the microsoft or sun/java communities, so this will be a first for me with actual sessions covering each of the respective offerings.  Plus, as per usual lots of ruby and am sure php/my sql.  Needless to say, I’m pumped to attend.  Am really interested to take away some AGILE knowledge, sounds like a great group of guys attending and aptly timed with some inhouse Agile-inroads we intend to be making with our development team.  More on that later. 

If you happen to be making the trip, be sure to stop by and say hi.

Google Group: �
CodeMash – I'll be there!