State of the Emerging CIO

Entries tagged as ‘Agile’

GL-SPIN – Agile Software Development

January 27, 2009 · Leave a Comment

Agile groupies recently posted a video from January 14th’s GL-SPIN Agile panel discussion that took place at School Craft College.  If you live in Michigan and you’re not familiar with Agile Groupies or GL Spin, and you’re interested in learning more about Agile principals, you should check them out.

You can watch the Agile panel discussion video here: http://agilegroupies.ning.com/forum/topics/1142009-glspin-agile-panel – it runs about 1.5 hrs.

Categories: Agile · Software Development · Technology
Tagged: , ,

CodeMash 2009 – underway..

January 7, 2009 · Leave a Comment

I just arrived at Kalahari – driving like a mad man out of Detroit to beat the “ice storm” – i felt like those guys you see on tv chasing storms, only I was trying to outrun one, and effectively did.  I made it in record time < 2 hours (again).  That said, i did nearly slide thru the intersection trying to turn in, so roads are getting bad out there.

After checking in, I made my way down to the registration area to see some familiar faces, Brian and Jim helping distribute badges and programs, just before 10pm.  Bumped into a few others, like Patrick of Pillar on my way to the room – everyone seems excited to be here, including me.  A quick glance of the program and a personal challenge on the back of my mind.  Lots of great content here, unlike my fact-finding mission around Agile last year, this time around I’m looking to roll up my sleeves and get back to coding!  Am most excited about iPhone development, starting with Chris Adamson’s iPhone development 101 session in the morning at the “precompiler” (day before the actual conference.)

Currently, I’m a total newbie to mac (*nix) development, so this should be interesting. I downloaded the iPhone SDK last night and started combing over the help docs, have yet to even fire up xCode, Apples development IDE, and I’m starting to feel like a non-techie, overwhelmed by a new wave of acronyms, completely outside of my domain expertise – but what the hell, that’s what codeMash is all about!   With any luck, or if I follow along properly, I should have a “useful, running iPhone application” by this time tomorrow.  Sounds too good to be true! :)

Other topics of interest include RIAs, (rich internet applications) including silverlight, and flex.  Ruby folks always have something interesting to say, but I’m not sure how much time I’m going to devote to it this time around, as I’m hoping to get up to speed on a few other subjects, such as  TDD (test driven development),  functional programming, Azure, VS 2010, and .net 4; oh, and I’m always looking to dive deeper into Agile and want to check out lean guru Mary Poppendieck.  Keynotes and Panel discussion tomorrow night also sound good.

So much content, so little time..  CodeMash does a good job balancing session tracks with break out rooms, “un-conference” formats and lots of social opportunities, movie night (dark knight @ 9:30) and even stuff for the kids (kidz mash) – and as always, it will be great to catchup with others, learning about the new and exciting things they’re working on and what challenges they may have around the corner.  Going to be an exhaustive couple of days..

Categories: Conference/User Groups · Software Development · Technology
Tagged: , , , , ,

Ray Ozzie’s 2005 Memo & Agile

November 30, 2008 · Leave a Comment

Shortly after Ray Ozzie arrived at Microsoft back in 2005, he wrote a memo (not unlike Gates’ Paul Revere-ish 1995 memo about embracing the internet) which was recently accounced, but not yet released. It outlined a few things, namely the company (Microsoft) had to start thinking and operting like an internet company, and as much as possible, liek a web startup!

Ray pitched ad-supported or subscription businss models, viral distribution and experiences that “just work.” Focus on being seemless, bottom line: Change big-time, or else.  Microsoft at the time was trying to ship Vista and Office so Ozzie project began.  Ray then gathered a team to begin delivering results, in short time frames (sound familiar)?  Ray began code name “Red Dog”, now referred to as Azure, with the help of Amitabh Srivastava & Dave Cutler, out from semi-retirement.

An interesting aspect of the new operating system is that is was produced with a fraction of the manpower the company typically directs to critical projects.  “There are literally thousands of people on windows, but Ray emphasized small groups with very focused people is a better way of doing things,” Cutler says. The goal it seems, was to produce working software faster.  Hmm, thats interesting, without spelling it out, it sure spells alot like Agile to me.  So what exactly does the Ozzie project entail?

  1. Windows Azure – Microsoft’s long awaited “operating system for the cloud” doesn’t run on a laptop – it runs on the companies thousands of servers.  Customers develop their web-based businesses to operate on Microsoft’s data centers, and Windows Azure allocates resources as needed. (expected late 2009)
  2. “Zurich” – codename for Azure services platform, a set of sophisticated tools to help developers manage their own cloud-based services and web apps. (available now in preview)
  3. Live Mesh – a service built on Red Dog that allows people (PC & Mac) to synchronize all their files, photos, and music with all their devices. (expected in 2009, now in public beta, see mesh.com)
  4. Office Web Apps – the next major Office release will include relatively complete Web version of Microsoft’s crown jewels.  Users can subscribe or access free versions supported by ads. (expected in 2010, but some versions may appear sooner.)

If you’re interested in keeping up with all the latest Microsoft developments, I strongly encourage you to check out the sessions from Microsoft’s recent Professional Developers Conference, now available online (for free) at: https://sessions.microsoftpdc.com/public/timeline.aspx

Categories: Agile · Current Events · Software Development · Technology
Tagged: , , ,

Agile from a Developers Perspective

February 28, 2008 · Leave a Comment

I recently discovered an agile presentation by Richard Banks, (of Sydney Australia) on “Agile from a Developers Perspective”, which I thought was worth a look. The presentation itself deals with the following questions:

  • How do you do estimating with an unknown target?
  • Can a team be agile in a company with a “traditional” environment?
  • How do you do up front estimating – especially related to fixed cost?
  • Which agile methodology should we use?
  • How much documentation is needed before we start & how much should we create as we go?
  • How do you pick a good agile team member – what qualities of a person do we look for?
  • How do we handle scope changes in terms of the overall project?

Categories: Agile · Software Development
Tagged:

TFS Automated Builds

February 23, 2008 · Leave a Comment

I was finally able to dedicate some time to investigating automated builds using TFS.  Over the past several weeks, our development team has been working to more formally embrace Agile, as a software development practice.  A couple key components we’re trying to leverage are available within VS 2008, team suite & Team Foundation Server (TFS), including automated builds, automated deployment and database source-code control, using VS DB pro (more on that soon.)

Today, i plowed thru documentation; we recently upgraded from TFS 2005 to 2008 and understand several things have been improved with regard to build to 2008.  While we began using TFS back in early 2006, we had yet to utilize the automated build capabilities.  After speaking with a few people, I was happy to see the improvements made in 2008, most notably native support for automated/nightly builds, and continous integration (CI) – both are now standard in 2008.  Previously, automated builds had to be setup to use a scheduled job, and batch file.  CI took even more work. 

After understanding the framework, I began to dive in, setting up our build server, and configuring the agent.  From there, the VS gui makes it very easy to configure.  Within an hour or so, I was able to setup a scheduled build, whereas the build server pulls the latest codebase, compiles and labels it, and publishes the binaries to a designated drop site.  pretty cool.

Originally, what we were hoping to accomplish with automated builds, was simplifying the process of moving the latest code base from source-control -> to our dedicated development environment, saving the team valuable ‘publishing’ time and giving QA an updated code base to review each morning.  While this is somewhat possible with automated builds, i discovered, atleast initially, the binaries published to the drop site contain unqiue folder values, identifying each build/version #.  This makes it somewhat difficult to publish to a dedicated environment, whereas IIS/virtual directories use a static location for content.  I am still investigating options, to see if this is possible.

While doing some digging, I recently came across Scott Guthries post on a VS 2008 web deployment project, rtw (released to web.)  From the sounds of it, it provides more granular deployment options, including pre/post compilation as well as managing connection strings between environments, whereas your DEV/Staging/Production environments need to point to different datasources.  If you’re also working to incorporate an automated build/deployment model, you might want to also check out the Web Deployment Tool, by the IIS team.  Needless to say, automated deployemnt is now next on my  ”to do” list. 

I’m hopeful within a few days, I’ll be able to incorporate a basic, automated nightly-build process.  A little later down the road, we’ll look to leverage CI and setting more granular build qualities.  Baby steps for now..

Categories: Agile · Current Events · TFS
Tagged: , ,

Drinking the M$FT juice – using Agile!?

January 4, 2008 · Leave a Comment

Like most 30-something techies, I grew up with Microsoft.  I earned my stripes in the NT 3.5 days, moving from token ring to ethernet and installing/creating drivers the old fashioned way.  Those days are gone, thank god.  Today I hang my hat in a more developer-centric capacity.  In late 2005 we moved to Visual Studio Team System (VSTS) and Team Foundation Sever (TFS).  First, let me say TFS/VSTS offers vast improvements to the old visual interdev/source safe days – namely, it works.

VSTS (Team Edition) offers distinct “roles” representing the contributors on a typical development team, project management, dev’s, testers, db folks, etc.  We got exposure to the suite using a go-live license late in beta.  We had a large project which required our team to ramp up to about 15 DEVs for about 9 months with quite a few being overseas.  We immediately put VSTS through the wringer, and I’m happy to say looking back, I believe we made a good choice.  VS has long been known for its rich IDE and its latest iteration (vs2008) can now even target multiple .net frameworks (back to 2.0) and even has javascript debugging, which is a first for me. 

Fast forward to today – we’ve now moving forward with TFS 2008 and I’m very anxious to put it’s MSF for Agile stuff to the test.  Next week I’ll be attending CodeMash (my first) which looks to be a great event covering several items on my current “to do” list, namely AGILE!  Our DEV team has loosely followed an Agile-like approach (meaning not waterfall, with short interations) however, I’m excited to now take it to the next level implementing a more formal adoption, from project management through TDD & CI. 

The challenge now becomes embracing Agile using our current VSTS/TFS investment (which hasnt been small.)  It’s all there on the surface; code-coverage, automated testing, stress/load testing, automated builds – but, part of what I’m looking to get out of CodeMash is some REAL WORLD exposure.  Now, its safe to assume, M$FT isn’t going to necessarily provide the best tools for Agile purests – but my hopes are they’ll get us a step closer to supporting (and promoting) what I have come to believe is the right direction for our development efforts .

Our team is currently small, some say thats good.  However pair-programming may become a challenge for us, and I’m still interested to evaluate if TDD becomes a 100% requirement?  Needless to say, I’ve got more questions than answers – but I’m hopeful to get some assumptions validated next week @ CodeMash.  Hopefully I’ll see you there!

Categories: Agile · Billhighway · Current Events · Mashup
Tagged: , , ,

Agile 101

December 13, 2007 · Leave a Comment

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..

Categories: Agile
Tagged: , ,

CodeMash here I come!

December 10, 2007 · Leave a Comment

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.

Site: http://codemash.org
Google Group: http://groups.google.com/group/codemash �
CodeMash – I&apos;ll be there!

Categories: Current Events · Detroit · Mashup
Tagged: ,