From the category archives:

Software Development

Recipes are for Learning, not for Real Life

by Ron Bieber on Wednesday, August 11, 2010

Recipe BookPeople like recipes. We’re always looking for the next ten step way to improve what we do and how we do it. We see it in leadership trainings, "methodologies", and pretty much any self improvement or team productivity books that we read. Each of the above give frameworks along with classifications of things that you can use to solve a particular problem.

What gets lost a lot of the time is that the classification of things and the frameworks are written to teach, not to use in every day life. While you might have to consciously think about the way to classify something at first, while you’re learning, the key point of these things is to give you a way to classify and deal with information while you are learning. At some point, the idea is that the framework will fade away and you will innately have the tools at your disposal, without having to think of the distinct classifications or step by step instructions to deal with them.

Its like learning to ride a bike. When you are learning to ride a bike, you learn balance, steering, and the fact that you have to push one foot at a time on the pedals to achieve the motion you need in order to propel the bike forward. At first, its very awkward. Your steering is shaky, you don’t pedal fast enough to get the inertia needed to move the bike forward, because you are thinking of all of the things you need to do at the same time to achieve your goal. Pretty soon though, you internalize all of the independent skills you need that make up this thing called “riding a bike” and it becomes one thing rather than many concurrent things you have to think about. Pretty soon, you are modifying or adding to what you know and doing things like riding no-handed, wheelies, or whatever other things you can think of that augment your experience of this thing called "riding a bike" that makes it a little more "your own".

Methodologies and religious arguments around software development have always put me off. When I’m asked to participate in a "methodology" discussion I usually cringe, because I know that 9 out of 10 people feel that the methodology as it is written is the goal, rather than taking the methodologies as a set of tools that are used in the learning stage to develop competence and later modify for the environment in which you work. This tends to get lost most of the time and you find teams and people doing things as they were specified in the recipe, whether they are useful or not, rather than adapting the tools – or even throwing some of them out if they do not apply.

"Agile" methodologies are a perfect example of this. You have specific formats for standups that are interpreted literally, specific tools like automated builds, unit tests, user stories, and burn down charts. Some methodologies include specific artifact definitions like activity diagrams, object diagrams, 4 + 1 architectural diagrams. In most cases you find people using all of them as they were specified in the book because they haven’t moved to the point where they understand the purpose of these tools, what they accomplish and how they do or do not fit together for a particular situation.

Agile software development is not the format of the standup or the fact that you have automated builds. As far as I can tell, Agile software development achieves the following:

  • Get the customer involved and the team communicating.
  • Break the functionality required into small, incremental, implementable pieces that are prioritized around both business and technical dependencies – with the goal of creating production ready code. Small iterations also give you the ability to adapt to changing requirements. What seems important at the beginning of one iteration might not be as important as something in the next iteration – so you plan incrementally.
  • Create production ready code at the end of each iteration, with rapid feedback cycles – this is the purpose of unit tests, and automated builds – to be able to "stop the line" when something breaks without a lot of manual intervention – and to deliver "just enough value" as soon as possible.

I think the problem is that most of the time people do not look at the philosophy around a methodology. Most of the tools that appear in these methodologies have a purpose to get to a certain philosophical goal, like the bullets listed above. Unless you understand the goal, you can have perfect stand ups and not ever really “implement agile” in the way that it was intended.

Related Articles

{ 0 comments }

The Fate of the SVK Tutorials

by Ron Bieber on Monday, June 29, 2009

Chia-liang Kao, the developer and maintainer of the SVK Distributed Version Control System posted a message to the mailing list on May 28th of this year declaring the end of development for the SVK tool.

I know from statistics that the tutorials on this site have been at least helpful, but am curious as to whether I should take them down or not given the fate of the tool. I myself have moved to Git, which has really good integration with Subversion.

So I’m asking you. Do you want the tutorials to stay, or can I get rid of them?

{ 0 comments }

Piloting Git in a Subversion Environment

by Ron Bieber on Tuesday, March 3, 2009

We’re looking to implement a pilot of Git to familiarize the team with the tool and introduce them to the more flexible workflow that Git supports over SVN. Because we support concurrent lines of development, we would like to forego the usual way of using git with SVN (each developer clones a branch of the repository and commits there) and try to implement a pure git experience using an intermediate “project repository”. The idea behind this repository is as follows:

  • We clone the main subversion repository using git svn
  • An empty project repository is created on the server and the Subversion clone is pushed to this repository (its an additional remote).
  • The development team clones the project repository and proceeds to do development in their own clones. Periodic pushes to and pulls from the project repository keeps each developers master branch up to date, from which they can rebase their local branches.
  • Periodically (probably daily), the originating SVN clone is ‘svn rebased’ and the new changes pushed to the project repository. These changes will be pulled by the developers on the next pull from the project repository.

In picture form, the workflow looks something like this:

Envisioned Pilot Process

Nevermind – StackOverflow ruined it for me.

{ 0 comments }

Teach Me Cocoa – Video Tutorials for Mac Development

by Ron Bieber March 2, 2009 Macintosh

New video tutorial site on Cocoa programming by Steven Degutis.

0 comments Read the full article →

Git Resources

by Ron Bieber January 26, 2009 Git

This article provides some quick information on learning the Git Version Control Software.

4 comments Read the full article →

Implementing Open Source Defect Tracking as a Corporate Tool – An Update

by Ron Bieber November 16, 2008 Open Source Software

Note: This article was started around March or April of this year – and I just got the motivation to finish it – because I thought it was important. I hope I did the original idea justice all these months later. Back in October of 2007 I had written about starting to implement the Eventum [...]

2 comments Read the full article →

Git 1.6.0 for Leopard Install Image Available

by Ron Bieber August 22, 2008 Remaindered

The 1.6.0 install image for Git on Leopard is available.

0 comments Read the full article →

ScreenCast Featuring Git and Screenflow

by Ron Bieber July 8, 2008 Software Development

Wow, real content! Here I throw together a screencast at the last minute to demo ScreenFlow, an excellent screencasting application on the MacIntosh and talk a little bit about what I’ve learned about Git. I also get to play a little bit with Blip.TV, Cote style. [tags]video,version-control,git[/tags]

0 comments Read the full article →

Metrics as a Side Effect – Its REAL.

by Ron Bieber May 19, 2008 Remaindered

Its been over a year since I wrote Metrics As A Side Effect, explaining how my perfect time tracking system would be something based on a Twitter like application. Imagine my surprise when I found that Harvest Time Tracking Software enables Twitter updates. Its not exactly how I described it, but its a step in [...]

0 comments Read the full article →

links for 2008-04-25

by Ron Bieber April 24, 2008 Bookmarks

Lead Architect Blaine Cook Out At Twitter “I left Twitter just over two weeks ago. It’s an amicable change; Twitter’s architecture is at a good point for them to pursue stability and growth” (tags: twitter news) Kigg Starter Kit : The Official Microsoft ASP.NET Site Digg Clone for .NET (tags: digg asp.net dotnet vc)

0 comments Read the full article →

WordPress 2.5 Upgrade Painless – Really!

by Ron Bieber March 31, 2008 Wordpress

Yesterday I read that the 2.5 version of WordPress was officially released. The cautious part of me wanted to wait to upgrade, but the totally paranoid and non-lazy part wanted to just get it over with. I had read a few mentions of incompatibility, but I decided to just bite the bullet and upgrade. I [...]

0 comments Read the full article →

WordPress 2.3.2 Available – Security Fix

by Ron Bieber December 30, 2007 Remaindered

WordPress 2.3.2 is now available. This release includes some security fixes that should necessitate an upgrade immediately. Details on the release are here. Download 2.3.2 now.

0 comments Read the full article →

Vacation Learning – PHP and Smarty Templates

by Ron Bieber December 20, 2007 Software Development

I’m on vacation this week and next week. Since I rarely have time to learn anything technical (or blog for that matter anymore), I thought I would take some time during my time off to learn something new around development. We have a system at work that is essentially a small portal. The core of [...]

2 comments Read the full article →

Flickr Blog This To Draft Plugin

by Ron Bieber December 3, 2007 Wordpress

I found this plugin that corrects a pet peeve of mine that I’ve had for a while. The Flickr Blog This To Draft Plugin by Donncha O Caoimh ensures that all of your blogged photos from Flickr come in as drafts, so that you can go in and massage the HTML before publishing. If you [...]

0 comments Read the full article →

LDAP Enabling The Eventum Defect Tracking System

by Ron Bieber October 20, 2007 Open Source Software

Due to a recent reorg, I have the opportunity to replace our defect tracking system, which has quite a bit of really wasteful process baked into the tool, with a new one. I’ve been looking at defect tracking software for a while, and chose Eventum, an open source project by MySQL AB for a number [...]

7 comments Read the full article →

Interview with Joel Spolsky on Hiring Technical Talent

by Ron Bieber September 6, 2007 Remaindered

Check out this interesting interview on Technometria with Joel Spolsky (from Joel On Software) on Hiring Technical Talent. I like Joel’s philosophy of focusing on the people causing great things to happen. Definitely a must listen for managers.

0 comments Read the full article →

Subversion and SSL Troubles

by Ron Bieber June 29, 2007 Subversion

I decided to upgrade my home Subversion repository to version 1.4.3 as soon as it was released. Since then, my ViewVC application has ceased to work, getting a Python exception every time I try to execute it. Creating a small Python program that just imports the library (from svn import fs) gave me the following [...]

2 comments Read the full article →

C64 and Unix WordPress Blogs

by Ron Bieber April 29, 2007 Remaindered

These are the funniest thing I’ve seen in a while. Check out this wordpress blog that emulates a Commodore 64 CLI. There is also one that emulates a Unix command line. See the test run page or download the theme.

0 comments Read the full article →

Metrics As A Side Effect

by Ron Bieber April 15, 2007 Software Development

Yesterday morning I found an article by a former employee who has recently introduced Scrum to his organization called Beef Up Your Scrum-Master Toolbox up on the Devx site. Since Doug started his blog and then subsequently left the company, I’ve enjoyed keeping up with his new adventures and I went right to the DevX [...]

6 comments Read the full article →

Video: How Open Source Projects Survive Poisonous People (And You Can Too)

by Ron Bieber April 5, 2007 Software Development

Since getting a 80G iPod about a month ago two weeks ago, I’ve been really getting into watching the Google Tech Talks on Google Video. I recently watched How Open Source Projects Survive Poisonous People (And You Can Too), a lecture given by Brian Fitzpatrick and Ben Collins-Sussman from the Subversion team (now both Google [...]

0 comments Read the full article →