Tag Archives: pfp

CiviCRM and the Poughkeepsie Farm Project

Every year since I first started volunteering for the Poughkeepsie Farm Project we’ve had a pow wow in the fall about what would be the right task list for me to try to get ready by the start of the season in May. For the past couple of years all my focus has been on the website.

This year, things are different. While there are still a few things I’m going to do to the website, I’m diving into a brand new space. The PFP, like many organizations it’s size, is largely run by lots of disconnected spreadsheets. A for instance, asking a question about who attended both key fundraising events last year requires hours of effort, as those attendee lists are in completely different formats in different places. So the focus is going inwards, and we’re going to see how much better we can make this with CiviCRM.

CiviCRM is an open source customer relationship manager that attaches to an existing Drupal (or Joomla or WordPress) installation. It can handle donations, membership management, event planning and ticketing (including online payment). It was not where I started the investigation, but when I finally came across CiviCRM, and ran it through it’s paces, I was quite happy with what I saw. I’m also really impressed by the development community, who has been super helpful. I’ve gotten a couple of minor patches in already (and working on some more major ones).

This is going to be a really interesting journey at many levels. To do this right I’m really learning how the internals of a small non-profit works, and how we map the concepts across. We’ve got some good check points in place, and I think reasonable goals on what functionality I can get online this year. It’s probably a 2 year journey before we really take full advantage of what it can do for us. I’ll be writing about this journey here, and also talking about it very regularly at our Hudson Valley Drupal Meetup. So if you are in the area and are contemplating implementing CiviCRM, or have and could share, come out and find us.

A Day of Service

When I got to the Poughkeepsie Farm Project at 6:40am on Wednesday, there were already two IBMers there ahead of me, eager to start the day. It was a crisp day, barely 55 degrees yet, but with few clouds in the sky we knew it would get hot by the time we were going to break for lunch at 11:30. It took me a few minutes to setup checkin station for the IBM crew, then I joined Ray and Duane just to chat about the day.

“That’s a lot of roof…”

They had both gone down and looked at the Roof of the Coop, 100′ long, 15′ wide, which we were going to tear off and replace today. While the Roof was only one of 3 projects for the day, it was the only one that would cause problems if it wasn’t done. The carpenters and gardeners had plenty of smaller logical stopping points, but a roof is a roof. And based on the experience the PFP had with taking off another section, the tear off might take a long time.

With some last minute drops and additions our volunteer count was going to be 12 on the roof, 12 in the gardens and fields, and 7 on carpentry projects. The crews were showing up at 7, 7:30, and 8 respectively. I had decided earlier in the week that we were going to just send all the carpenters up on the roof until Dave, our roofing foreman volunteer, felt like they had the tear off under control.

About 7:10 we had our roofers largely assembled, oriented, and sent on there way. As we checked in the gardeners and got them dispatched, it was an inspiring to see all those people up on the roof in the distance. 8am rolled around, and Ray, our carpentry lead, showed back up in the checkin area. I was seriously confused, and told Ray I was going to send any remaining carpenters up onto the roof.

“Oh, the roof is already off. It came up quick. Something like 12 minutes.”  We were going to do it. We’d get the roof done today.

Ray peeled off a few folks on carpentry work, and I hung out up front until I got the last of the stragglers checked in at 9am. Given that my day was going to continue to get interrupted by organizational tasks, I found the carpenters in the field working on the hoop house. As those projects were probably the ones I could most easily come and go on without disrupting their flow. We replaced the rotting wood braces on one side with metal ones, strapping together metal braces in sections of 3, then putting them up on the hoop house.

At 10:30 we were winding to completion on that project, and started moving tools to where the wood working tasks would take place. As it neared 11 I realized I needed to make the lunch area something we could actually get 35 volunteers in and seated. Susan Grove, PFP Executive Director, helped me with that.

Even though the lunch arrived a little late, everyone seemed to enjoy it. I’m sure most IBMers were fed pizza or Sam’s Club sandwiches, but not our crew. We had hummus, pita, greek salad, and sea salt fries from Kavos (a local greek restaurant), and tomales from Mole Mole (a local mexican restaurant). Lunch was the time for Susan to be able to introduce everyone there to what the PFP does, and what it means to create and just and sustainable food system. Eating great food from local restaurants help reinforce that, and help connect us to the food system that we were a part of. For the garden and farm crew, they were having a direct experience in that food system. For those of us on construction, we were doing things that had been on task lists for years, because there aren’t a lot of days off when it comes to running a 10 acre farm. We were helping by taking those tasks of that list so the farm team could focus on farming.

Once the volunteers were all back on task, I had about an hour breaking down the lunch area. Organizing a good event is about making everything look invisible, spaces being ready for volunteers when they get there, and being returned to their original form. It makes all the difference. And then, at 2, all my organizational tasks were done, and I could spend the rest of the day getting my hands dirty.

Dave felt like he had plenty of roofers, so I joined Ray, Warren, and Yukiko in building a locking cabinet for storing sprayers and other items in the building that was being re-roofed. Ray brought furniture grade skills to this project, and I got to pick up plenty of tips from him along the way. As the cabinet came together over the next two hours, I could see the excitement in Angela’s (head farm intern, and staff lead for the carpentry projects) eyes. She’s been with the farm a couple years now, and these had been on her wish list to get the coop organized.

The gardeners got to their logical stopping point around 3:30, and Wendy (co-farm manager) sent them home with words of thanks from the fields. Around 4 our cabinet was done, as were the hoop racks on casters, being built in parallel by other carpentry volunteers. And as we looked up to the roof, they were putting down the final row of shingles before the capping shingles. There were only about 6 people up on the roof now, as you were now at the time when things had to happen in series. I watched in awe, the orchestration that occurred with 4 volunteers on the roof with the capping shingles as they cruised to completion with the last nail leaving the gun at around 4:30.

And we were done. We’d accomplished most of the clean up as the projects were closing up, extra scraps stored in the coop, tools sorted and back to volunteers. The last of the roofers cleaned up their tools and ladders and I headed up to the PFP office to bask in the day, and check in with the staff up there about how it went for them. Leaving the farm at 5:30 I was pumped (I still am). I’d been there for 11 hours, but didn’t feel tired at all. I managed not to really get sun burned, and the soreness I’d feel the next day would feel really good.

It was a good day.

I feel a little sorry for the folks that didn’t participate in service projects the day before the centennial. Today is going to bring a town hall, and an on site BBQ in Poughkeepsie. But for speeches people may not attend, and a free lunch, it’s not much to walk away with. The experience we all had yesterday, showing what amazing people work at the company, that for me is our real centennial celebration. Our celebration of service.

IBM’s Day of Service at the Poughkeepsie Farm Project

Thursday is the IBM Centennial, when IBM as a company turns 100 years old. It’s a pretty amazing thing. I’ve got my own set of reflections on that which will come later, because my brain is currently entirely focussed on what comes first: the IBM Day of Service.

This year all IBMers were asked to pledge at least 8 hours of service to their communities, and if possible, to do that service on June 15th, the last day of the first century of IBM. Through a series of fortuitous happenings I got involved as a service leader for this day, organizing 3 projects at the Poughkeepsie Farm Project. On Wednesday we’ll have 30 volunteers at the farm starting at 7am. I’ve already interacted quite a bit with some amazing volunteers who are helping in the planning to make this possible, and it just puts me in awe at how many truly talented and giving people work at the company. We are seriously going to kick ass and take names on Wednesday, and do a lot of great work for a great organization.

I’m also really happy to be introducing so many new IBMers to the PFP. When I signed up for leading these projects I assumed I’d largely be picking up IBMers already associated with the farm. But, much to my surprise, the ranks are filled with people not associated with the farm at all. Many have never been to the location, and didn’t even know it existed. The folks that have gotten involved early have really gotten invested in the organization already, and it’s my hope that at least a few of them will become long term volunteers as part of the organization once they see the work the PFP does in the community.

We’re going to kick off this great day of service on Wednesday with a Walkway event on Tuesday afternoon, so starting about 2:30 tomorrow, I’m full time service volunteer until Thursday rolls around, and we celebrate 100 years on site in Poughkeepsie.

Pictures will be forthcoming, as well as more reflections once my brain can switch gears again. Now just a few last minute things to take care of in preparation of the day…

Spirit of Dutchess Awards

Last month I was nominated for a Spirit of Dutchess Award for the effort that I’ve done with the Poughkeepsie Farm Project. It’s something I’m very honored by. There are nearly 30 nominees, and all are quite impressive. In a field as good as that I finally understand the phrase “it’s an honor just to be nominated”. This letter to the editor (skip past the Harold Camping one) in the Poughkeepsie Journal drove that point home even more.

Tomorrow is the luncheon for the awards, which I’m really looking forward to. I’ve got no allusions that I’ll be one of the few winners from this field, but I am looking forward to participating in such a celebration of service in our county.

Making an Impact

Recently the Poughkeepsie Farm Project received a $100,000 grant for the Building Bridges program to attack hunger in the city of Poughkeepsie. This is part of a Department of Agriculture initiative to fund pilot programs and see what works so that they can apply it at a larger level in the US. 10 grants were given, and by all appearances the PFP was the smallest of the organizations that got the grant.

Which made me wonder. My major contribution to the organization has been a revitalized website, which I’ve been working on for two years. As we were approaching our annual volunteer retreat I dug into the analytics, and not surprisingly there were hits from the Dept of Ag in there. The website was not the reason that we got this grant, Susan Grove is an impressive organizer, and has come up with a great program. But I’m sure it helped.

It helped to show that as an organization we have resources at many levels, including a solid technical backing. It helped because it highlighted the depth and breadth of the programs run by the organization. It helped because it had current information on current programs, and thus showed how high the activity level is. It made an impact by exposing all that is done in the PFP in a way that’s easy to see and consume from the outside.

I felt very good that I was part of a team that helped make this happen.

The new Poughkeepsie Farm Project site is live!

About 14 months ago I raised my hand to help with a more interactive web presence for the Poughkeepsie Farm Project.  This kicked off a large discussion over the course of the year, a web committee, and a great pro bono new graphic design.  Many many people were involved to get this project to completion, I just consider myself a catalyst.

Today, after a year of work, we launched the new farmproject.org:

Go check it out.  Now that we’re on a drupal platform, we’ll be rolling in smaller features over time.  I’ve got a few ideas queued up that I’ll try to get out there for the first member pickup at the end of May.

Catching bad links with jquery

We’re 1 step closer to the launch of the new Poughkeepsie Farm Project website, so it’s down to some final edits before it gets flipped live.  While I was looking over the test site the other day, I realized we still had some links, and images that referred to the existing site, which would break once we did the final domain switcheroo.

I came up with the following snippet of jquery to highlight bad links and images client side so that editors would realize they needed to do something about them:

function highlight_bad() {
    $("div[id='content'] img[src^='http://farmproject.org']").css("border","9px solid red");
    $("div[id='content'] img[src^='http://www.farmproject.org']").css("border","9px solid red");
    $("div[id='content'] img[src^='http://test.farmproject.org']").css("border","9px solid red");
    $("div[id='content'] img[src^='http://pfp.dague.org']").css("border","9px solid red");
    $("div[id='content'] img[src^='http://farm.dague.org']").css("border","9px solid red");
    $("div[id='content'] a[href^='http://farmproject.org']").css("border","9px solid red");
    $("div[id='content'] a[href^='http://www.farmproject.org']").css("border","9px solid red");
    $("div[id='content'] a[href^='http://test.farmproject.org']").css("border","9px solid red");
    $("div[id='content'] a[href^='http://pfp.dague.org']").css("border","9px solid red");
    $("div[id='content'] a[href^='http://farm.dague.org']").css("border","9px solid red");
}

So every time we find a link or image that starts with an absolute url to one of the addresses the site has had inside the content block, we highlight it. This has been incredibly effective so far in catching some things I didn’t even realize was an issue.  This with the combo of drupal’s broken link detector internally is helping us ensure the content is consistent prior to launch.

Why web design committees are so tough

I’ve been part of a process of redesigning the Poughkeepsie Farm Project website, both visually and functionally since about March.  It’s a group effort, with a good number of people from the PFP, all of whom expressed interest at the PFP annual leadership kickoff.  Last night we did our first review of the graphic designs that were graciously done pro bono for the project.

It amazed me a bit how varied the feedback was.  On most points there were people that had absolutely opposite opinions, and who agreed or disagreed with a point varied over ever detail discussed.  It was spiritted but friendly.  After about an hour of discussion we boiled it down to a base design, plus 6 concrete pieces of feedback that everyone wanted to see integrated.

I was thinking about why there was so many differences of opinion, and I realized web design committees are so tough because our interactions with the web are so personal.  Browsing the web is a solitary experience.  Everyone forms their opinions of what is good and bad in a vacuum, not influenced by others.  This leads to opinions on good vs. bad designs that vary drastically.  Page width/height issues, rotating content/or not, colors that are good or bad, what makes a good logo, how busy should things be, how often should things change.

Every one of us has some strong opinions in those areas due to what each of us use the internet for.  That diversity of purpose is what makes the web as ubiquitous as it is, but it definitely makes the design process challenging, because we all tend to believe the rest of the world uses the internet the way we do.  Which, ironically, is the only demonstrably false opinion that arises during the process.