»
S
I
D
E
B
A
R
«
Sponsored Links


EllisLab moves to Mercurial, Assembla, BitBucket; CodeIgniter 2.0 Baking
Mar 11th, 2010 by wood

EllisLab today announces changes to our internal development processes, including dropping Subversion in favor of Mercurial and adopting Assembla as our agile software development management tool.  Along with these changes, CodeIgniter 2.0 pre-release code is in development, and is now hosted at the Mercurial-focused social coding site BitBucket.

At EllisLab we make ExpressionEngine, the CMS for web professionals, and CodeIgniter, the only PHP framework to receive praise from Rasmus Lerdorf, the creator of PHP. We’re based out of Bend, Oregon, but only two staff members live there.  The rest are scattered roughly from West to East in Portland, Missouri, Illinois, Toronto, North Carolina, Ireland, the UK, Germany, and Austria.  In addition to very little face to face interaction with one another, our developers have to deal with as much as a 9 hour difference from other team members.  So we’ve adopted and continue to adopt methodologies and technologies to bridge those gaps and enable us to be as productive as if we were all in the same building, working the same hours.

Version Control

One no-brainer, and I hope most of you are using it as well, is version control.  Since 2005, we’ve been using Subversion, and it has performed admirably, particularly during the majority of ExpressionEngine’s life when there were only two Sith developers working on a project.  The first year that Subversion was in use, we even shared a single user and did not use commit messages.  That works fine when you can read the rest of your team’s minds, and you aren’t using version control for revisioning, but merely for convenient file sharing.

But Subversion comes with a lot of baggage, some of which becomes heavier in proportion to the distance between team members, and as both your projects and team increase in size.  Commits and diffs become laborious on even the fastest of networks.  The size of the repository balloons if you try to use basic features of branches and tagging.  Renaming and moving files is a pain, and can jam up your fellows’ repositories.  And don’t even think about working independently and merging.

These and other issues led us to examine dozens of version control systems (VCSes) to find the right fit for our team.  We looked at Git first, whose growth can be largely attributed to the popularity of GitHub, then Bazaar, darcs, Monotone, Perforce, BitKeeper, and so on.  But after weeks of research and test use, we settled comfortably into Mercurial.

Now before the Git readers get their pitchforks ready and head for the comments, let me be clear that we are not at odds.  Both are great distributed version control systems (DVCSes), have nearly identical features, and have a common enemy: Subversion.  So our switch to Mercurial means that Git users win too - joining a growing army against centralized version control.  It just happens to be that a few of the divergent features swing slightly towards Mercurial for our specific needs, but above all, our team enjoyed using Mercurial more than Git.  Not that we didn’t enjoy Git, we just enjoyed Mercurial more, and why is hard to quantify but there was obviously no reason to fight it.  We’re here to write code and create great applications; the more that our use of any VCS can fade into the background to accomplish that goal, the better.

Scrum

When your development team grows beyond two people, the mind meld dissolves, the ability to know at any given moment what the rest of the team is doing, and how well they are doing it dissipates.  Cowboy coding’s ability to be effective diminishes.  So a little over a year ago, we began looking at various agile software development methods, and decided to try out Scrum.  It’s been a tremendous success.

To bring Scrum to a team spread across the world, we’ve been using technology to create a virtual office.  Google Docs for shared spreadsheets to track our Sprints and burndown charts.  Planning Poker to help us plan Sprints.  Neither tool ever felt like a perfect match for us, though.  Whether it’s the clumsy manner in which product backlog items are stored and moved to a new spreadsheet to create Sprints, or not having the hour estimation card that we really wanted to play - resulting in a lot of “I estimated 16 hours but I really mean 12” - these tools were getting us by, but were not the most effective.

Enter Assembla, a tool we came across in our search for a new VCS.  Assembla is the perfect blend of what our developers and our product owners need for project management, and that mix is remarkably difficult to find.  It gives developers the ability to use any VCS they like, including those on your own servers, fully integrated with a ticketing system that is built from the ground up for agile software development.  Product owners are given a visual ticket organizer to effortlessly create Sprints from categorized backlogs.  Add to that a Scrum tool to make standing meetings less intrusive to the varied working hours of our distributed team, and it’s near perfection.

Assembla is the product that is saving us from having to write our own agile software management tool.  We’ve moved all of our software projects into Assembla.  This is a tool anyone working in a team should check out.

This is a behind the scenes change of course so it may seem inconsequential, but all of our users will benefit.  Like Mercurial, this logistical portion of our virtual office can just do what it’s meant to do and thus fade into the background, letting us focus on getting things done instead of on processes.

CodeIgniter

Of our communities, CodeIgniter benefits the most directly from these changes.  The adoption of a new VCS and new internal development tools allows us to not only be more effective in CodeIgniter’s development, but also enables us to give you more and to interact more directly with you.

Starting today, CodeIgniter 2.0 is baking, and I’m thrilled to announce that with Subversion gone, in-development code is available publicly on its new home: BitBucket.

After adopting Mercurial, joining BitBucket was a perfect fit for our open source projects.  It has a beautiful source code browser and will make watching code changes a breeze with its graphical changeset viewer and RSS/Atom feeds.

It also comes with a rich social layer, quick access to tagged versions, along with forking and patch queue management for advanced users.  Do you find yourself making the same modifications to CodeIgniter before beginning a project?  BitBucket and Mercurial can help you do that and share it with others with ease, using any version in the upstream repository.

We’re really excited to watch CodeIgniter’s growth accelerate due to these changes.  A discussion of CodeIgniter 2.0’s features and direction will be forthcoming, so be looking for that in the future in the news section of CodeIgniter.com.  What are you waiting for?  Go sign up at BitBucket and become a zealot, following the CodeIgniter project!

Discuss this story

Open Question: How would you describe a seagulls call?
Mar 11th, 2010 by wood
They don't caw like crows, or chirp like small backyard birds. The only way I've heard their call described is 'I heard a seagulls shriek'. Thanks for answering.
Open Question: How would describe a seagulls call?
Mar 11th, 2010 by wood

They don’t caw like crows, or chirp like small backyard birds. The only way I’ve heard their call described is ‘I heard a seagulls shriek’. Thanks for answering.

Open Question: What are some pretty things that either has 2 parts to the word or is 2 words?
Mar 11th, 2010 by wood

Examples: seahorse, seagull, music box, sandcastle, bluebird, blackbird, snow globe, birdhouse, snowflake, fairy lantern.

Open Question: The Rock Pool Food Web – Year 7 Task?
Mar 11th, 2010 by wood

An ecologist has been studying a rock pool for a week. She has noted which plants and animals she has seen and what they are eating. Below are her notes.

Organisms
What they eat

Shore crab
Green seaweed , shrimps , small fish , whelks

Sea anemone
Plant plankton , animal plankton

Small fish
Shrimps , sea anemone , whelks

Seagulls
Small fish , crabs

Whelks
Green seaweed

Rock Pool Feeding Relationships: observation notes
Monday:I saw a shore crab eating some green seaweed. A sea anemone was eating by catching small particles of floating plants and animals.
Tuesday:Whelks are eating red and green seaweed. Small fish dart out from under rocks and catch shrimps.
Wednesday:The shrimps seem to be eating all the time. They are eating microscopic plants and animals. These organisms are called plankton. Animal plankton eats plant plankton in the rock pool. It is likely that sea anemones are eating plankton too.
Thursday:Observed the shore crabs more closely today. One was eating a shrimp it had caught. Another was eating a small fish, but I did not see it catch it. The crabs also eat whelks.
Friday:Small fish nibble at sea anemones. Seagulls occasionally land next to the pool. I have seen them eat small fish and crabs.

Task: Write down some daily and seasonal changes that might happen in the rock pool habitat. Choose a predator and prey and write down some adaptations that help them to survive. Draw some food chains or a food web using some or all of this information. Decide which type of feeder each organism is (primary consumer, etc) and identify the producers.



»  Substance: PHP Frameworks   »  SiteMap