<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Zen and the Art of Nonprofit Technology &#187; Development</title>
	<atom:link href="http://zenofnptech.org/category/consulting/development/feed" rel="self" type="application/rss+xml" />
	<link>http://zenofnptech.org</link>
	<description>Thoughtful and sometimes snarky perspectives on nonprofit technology</description>
	<lastBuildDate>Mon, 08 Mar 2010 00:10:53 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Specify Story, not details</title>
		<link>http://zenofnptech.org/2009/08/specify-story-not-details.html</link>
		<comments>http://zenofnptech.org/2009/08/specify-story-not-details.html#comments</comments>
		<pubDate>Wed, 19 Aug 2009 19:42:41 +0000</pubDate>
		<dc:creator>Pearlbear</dc:creator>
				<category><![CDATA[Consulting]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Technology Zen]]></category>
		<category><![CDATA[nptech]]></category>

		<guid isPermaLink="false">http://www.zenofnptech.org/?p=552</guid>
		<description><![CDATA[I&#8217;ve been a fan of user stories for several years now. User stories are a way to describe a set of functionalities of an application in a way that is focused on results &#8211; it&#8217;s easy to connect to mission. An example from an events management application:
The organization should be able to create several different [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been a fan of user stories for several years now. User stories are a way to describe a set of functionalities of an application in a way that is focused on results &#8211; it&#8217;s easy to connect to mission. An example from an events management application:</p>
<blockquote><p>The organization should be able to create several different kinds of events, and determine for each kind of event which detailed information will be taken. Those events can be displayed in a list or calendar format. Users can register for events, and pay using a credit card.</p></blockquote>
<p>There are many ways to describe this story &#8211; it certainly can be a lot more detailed, but what&#8217;s clear is the result of this functionality. And, of course, user stories are great for agile development process.</p>
<p>Developers would determine how much this function would cost (based on our knowledge of the tools we use, and the time it takes using those tools to generate this sort of functionality), and clients would know exactly what they are getting from a functionality standpoint. When this functionality is complete, everyone is happy. The developers get reasonable compensation for a job well done, and the clients get the mission-based functionality they asked for.</p>
<p>And it would avoid a situation which I have become recently far too familiar with &#8211; vendors who underbid projects, and then feel the need to resort not to the intent of the contract, but the letter. Everyone knows it is utterly impossible to specify every detail in the letter of a contract &#8211; sometimes letter of the contract, unfortunately, details things like fields and queries, not functionality. The letter of a contract will be, almost by definition unless based on functionality, an inadequate representation of the final result needed. In this case, no one really wins. The clients either don&#8217;t get the functionality they expected, or they pay extra for it, and they leave the project with a bad taste in their mouth about the vendors, which will only come around to hurt the vendors later.</p>
]]></content:encoded>
			<wfw:commentRss>http://zenofnptech.org/2009/08/specify-story-not-details.html/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Be like a three year-old</title>
		<link>http://zenofnptech.org/2009/05/be-like-a-three-year-old.html</link>
		<comments>http://zenofnptech.org/2009/05/be-like-a-three-year-old.html#comments</comments>
		<pubDate>Mon, 04 May 2009 04:52:43 +0000</pubDate>
		<dc:creator>Pearlbear</dc:creator>
				<category><![CDATA[Consulting]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Technology Zen]]></category>
		<category><![CDATA[nptech]]></category>
		<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://www.zenofnptech.org/?p=518</guid>
		<description><![CDATA[I don&#8217;t have kids, but I do know how young kids ask questions. They are innocent, and free of assumptions, and keep asking &#8220;why?&#8221; In the end, the poor adults either get tired of the questions, or realize that there are assumptions they&#8217;ve been making for all this time that might actually be worth questioning.
Human [...]]]></description>
			<content:encoded><![CDATA[<p>I don&#8217;t have kids, but I do know how young kids ask questions. They are innocent, and free of assumptions, and keep asking &#8220;why?&#8221; In the end, the poor adults either get tired of the questions, or realize that there are assumptions they&#8217;ve been making for all this time that might actually be worth questioning.</p>
<p>Human processes mold around software. We see this all the time. A CRM gives you these 5 canned reports, and you get used to making do with what&#8217;s there. A legacy client database requires a certain order of data entry, and your intake forms have been produced to copy that order. Your email software has particular limitations, and you find behavioral workarounds.</p>
<p>What&#8217;s also true in the realm of customized software, is that software is molded around people. You put in your RFP that a package spit out data in X,Y and Z ways because your ED is used to data in that form (maybe because a package they had at their previous organization had those canned reports.) You have a requirement that data be entered into the system in one particular way, probably because that&#8217;s the way you&#8217;ve always done it. Sometimes, you feel the need to replicate a process that the person 3 administrative assistants ago put in place that was molded around their particular limitations, just because that&#8217;s what you know.</p>
<p>When you are undergoing the process of creating or implementing a new system of any sort, whether it be a CMS for a website, a CRM, some internal system, it is a really good exercise to be like a 3 year-old, and keep asking &#8220;why?&#8221; Why do we need this feature? Why will this report be important? Why should the software work this way? Once you peel the layers down to the bottom, you&#8217;ll either have &#8220;we don&#8217;t know&#8221; or &#8220;because we believe it will help us meet our mission in this specific way.&#8221;  Then you know what you should take, and what you can leave behind.</p>
]]></content:encoded>
			<wfw:commentRss>http://zenofnptech.org/2009/05/be-like-a-three-year-old.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Drupal Themeing, and other projects</title>
		<link>http://zenofnptech.org/2008/11/drupal-themeing-and-other-projects.html</link>
		<comments>http://zenofnptech.org/2008/11/drupal-themeing-and-other-projects.html#comments</comments>
		<pubDate>Fri, 14 Nov 2008 04:51:47 +0000</pubDate>
		<dc:creator>Pearlbear</dc:creator>
				<category><![CDATA[Consulting]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Web/Tech]]></category>

		<guid isPermaLink="false">http://www.zenofnptech.org/?p=359</guid>
		<description><![CDATA[I&#8217;m learning Drupal bit by bit &#8211; one of the first tasks was to learn how to make a new theme. It&#8217;s one of those things which is actually fairly straightforward-seeming &#8230; until you hit a snag. And then it&#8217;s opaque.
One thing I learned is that it is incredibly sensitive to typos. One space accidentally [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m learning Drupal bit by bit &#8211; one of the first tasks was to learn how to make a new theme. It&#8217;s one of those things which is actually fairly straightforward-seeming &#8230; until you hit a snag. And then it&#8217;s opaque.</p>
<p>One thing I learned is that it is incredibly sensitive to typos. One space accidentally inserted between the &#8220;&lt;?&#8221; and the &#8220;php&#8221; led to a completely blank page. Ah well. I&#8217;m certainly learning what mistakes can lead to what kinds of issues, which is good. Eventually that becomes second nature.</p>
<p>But, in any event, by the end of an hour or so of hacking, I&#8217;d turned a template that I found online at <a href="http://www.openwebdesign.org/">Open Web Design</a> into a Drupal template. I felt accomplished! I&#8217;m going to do a few more, and see how sophisticated with it I can get.</p>
<p>One thing I ran into (and haven&#8217;t been able to solve yet) is that it&#8217;s not easy to have navigation that requires more than just the standard &lt;ul&gt;&lt;li&gt; tags. Adding &lt;span&gt; tags, for instance (which makes possible some more interesting looking navigation buttons) seems, at least at first, far from trivial.</p>
<p>I&#8217;m making a list of little(ish) projects that I want to do &#8211; sort of like problems I think I want to know how to solve.</p>
<ul>
<li>Drupal and google docs single sign on. There is already a SSO Module for Drupal 5.x, and someone submitted a patch for it, but it&#8217;s still up for review. I&#8217;d also have to cough up $50/year to get a google account that has the SSO API, but it might be worth it.</li>
<li>Drupal sidebar connecting with the NPR API &#8211; perhaps to provide a targeted news stream?</li>
<li>Doing a google map mashup of data in Drupal</li>
<li>Working with getting flickr photostreams to show in Drupal</li>
</ul>
<p>I&#8217;m still looking for a good project to try out in Cake. Unfortunately, the module <a href="http://drupal.org/project/drake">Drake</a>, which is meant to be a bridge allowing you to run Cake applications within Drupal, seems moribund. There is only a development snapshot for the 5.x branch, and no one seems to be picking it up for 6.x. Sigh. There is, for sure, another whole blog entry about Drupal modules.</p>
]]></content:encoded>
			<wfw:commentRss>http://zenofnptech.org/2008/11/drupal-themeing-and-other-projects.html/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Cake vs. Symfony</title>
		<link>http://zenofnptech.org/2008/11/cake-vs-symfony.html</link>
		<comments>http://zenofnptech.org/2008/11/cake-vs-symfony.html#comments</comments>
		<pubDate>Thu, 06 Nov 2008 05:47:35 +0000</pubDate>
		<dc:creator>Pearlbear</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://www.zenofnptech.org/?p=353</guid>
		<description><![CDATA[In my new explorations of PHP web application development, it seemed a good idea to get a look at both CakePHP and Symfony. Both of them seem to be PHP&#8217;s answer to Ruby on Rails.
The approaches are similar and different to each other. I set up both on my laptop, and tried out some really [...]]]></description>
			<content:encoded><![CDATA[<p>In my new explorations of PHP web application development, it seemed a good idea to get a look at both <a href="http://cakephp.org/">CakePHP</a> and <a href="http://www.symfony-project.org/">Symfony</a>. Both of them seem to be PHP&#8217;s answer to Ruby on Rails.</p>
<p>The approaches are similar and different to each other. I set up both on my laptop, and tried out some really simple app development. In Cake, the database build is separate from the application building (you do it yourself), whereas in Symfony, you use Symfony to build the database with schema files written in <a href="http://en.wikipedia.org/wiki/YAML">YAML</a>. Then, you build forms and such using the schema as a foundation.</p>
<p>They both use the <a href="http://en.wikipedia.org/wiki/Model_view_controller">MVC</a> pattern, and both use object oriented PHP, which is great. I got a lot further with Cake in one evening of playing with both than I did with Symfony. At this point, I really prefer Cake &#8211; it feels like it jives with my own coding sensibilities better. I also don&#8217;t like the overhead of learning YAML. I can imagine, though, that the Symfony approach can be powerful.</p>
<p>Looking at <a href="http://www.ohloh.net">Ohloh</a>, Cake is more popular than Symfony (on Ohloh, who knows about in general), but Symfony has a lot more developers (81 vs 17). They both have good documentation and active communities.</p>
<p>For now, unless something strange happens, I&#8217;ll settle on Cake &#8211; although I&#8217;ll not be spending too much time on it, since I&#8217;m working hard to grok Drupal. But perhaps a cool project will manifest, and I can use it.</p>
<p><em><strong>Update: </strong>I learned that Yahoo and delicious have a huge investment in Symfony (which, I guess, might be why they have so many more developers.) </em></p>
]]></content:encoded>
			<wfw:commentRss>http://zenofnptech.org/2008/11/cake-vs-symfony.html/feed</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>Drupal and WYSIWYG editors</title>
		<link>http://zenofnptech.org/2008/10/drupal-and-wysiwyg-editors.html</link>
		<comments>http://zenofnptech.org/2008/10/drupal-and-wysiwyg-editors.html#comments</comments>
		<pubDate>Fri, 17 Oct 2008 01:06:01 +0000</pubDate>
		<dc:creator>Pearlbear</dc:creator>
				<category><![CDATA[Consulting]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.zenofnptech.org/?p=335</guid>
		<description><![CDATA[I think that if I had to pick only one thing that would help people understand the character of Drupal, it would be the WYSIWYG editor that comes standard with an out-of-the-box Drupal installation. That would be NONE. There is no standard WYSIWYG editor that comes with Drupal. You have to figure out how to [...]]]></description>
			<content:encoded><![CDATA[<p>I think that if I had to pick only one thing that would help people understand the character of Drupal, it would be the WYSIWYG editor that comes standard with an out-of-the-box Drupal installation. That would be <strong>NONE</strong>. <em><strong>There is no standard WYSIWYG editor that comes with Drupal.</strong></em> You have to figure out how to find one, and install and configure it yourself.</p>
<p>So if you want to start adding content to your new site, and you need a little formatting, or a picture, etc., well, unless you know a bit of HTML, you are S.O.L.</p>
<p>On the other hand, this is actually, from my perspective, a really good thing (can you tell I&#8217;m becoming a Drupalista?) There are several to choose from, and they differ both in difficulty to get installed and working, as well as features. Want something barebones? There&#8217;s one for you. Want something with all of the bells and whistles? There&#8217;s one for you, too.</p>
<p>There is a <a href="http://www.nicklewis.org/node/994">great review of five of the major ones</a>.</p>
<p>I&#8217;ve been getting to know a few of them (and, yes, they can be a pain to install, and they depend, generally, on other libraries that you have to install as well.) I don&#8217;t have a favorite yet, but I&#8217;m thinking I don&#8217;t need to have one &#8211; just to know which ones are well-maintained, and what the differences are in feature set. Then I can choose the one that makes the most sense.</p>
]]></content:encoded>
			<wfw:commentRss>http://zenofnptech.org/2008/10/drupal-and-wysiwyg-editors.html/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>The joy of Drupal (and other tales)</title>
		<link>http://zenofnptech.org/2008/10/the-joy-of-drupal-and-other-tales.html</link>
		<comments>http://zenofnptech.org/2008/10/the-joy-of-drupal-and-other-tales.html#comments</comments>
		<pubDate>Thu, 09 Oct 2008 01:44:33 +0000</pubDate>
		<dc:creator>Pearlbear</dc:creator>
				<category><![CDATA[Consulting]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Open Source]]></category>

		<guid isPermaLink="false">http://www.zenofnptech.org/?p=329</guid>
		<description><![CDATA[I&#8217;ve been working with Drupal a fair bit over the last few weeks, with the ultimate goal to basically be able to really work with it to create sites. I converted my (very simple) consulting site to Drupal, without any bells and whistles. I&#8217;m working now on a site that needs some bells and whistles, [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been working with Drupal a fair bit over the last few weeks, with the ultimate goal to basically be able to really work with it to create sites. I converted my (very simple) consulting site to Drupal, without any bells and whistles. I&#8217;m working now on a site that needs some bells and whistles, like translated pages and a WYSIWYG editor (ah, the WYSIWYG editor thing  in Drupal is going to get its own blog entry, I&#8217;m sure).</p>
<p>My next step is to try and create a simple theme (so I understand how theming works,) and write a module (so I understand how modules work.) There are still lots of things that are mysteries to me, but perhaps I&#8217;ll learn more at Bay Area Drupal camp this weekend.</p>
<p>I&#8217;ve also been digging a lot into the new(ish) social network software <a href="http://elgg.org">Elgg</a>, and beginning to develop a members-only site with it for a client. In my estimation, it&#8217;s amazingly promising, as a platform for interesting private sites. And, since it has OpenID (which seems to have bugs, though), <a href="http://opendd.net/">OpenDD</a>, and OpenSocial, it&#8217;s not such a bad idea for public sites either (although I&#8217;d <strong>still</strong> not suggest that nonprofits spend the time to do this.)  Maybe someone will use it to create the Facebook killer (I kind of doubt it, but I can hope, can&#8217;t I?)</p>
<p>As well, I&#8217;m still honing my WordPress skills, mostly in the realm of dealing with themes and moving the darn things around and upgrading from ancient versions. I&#8217;ve done some theme hacking, but haven&#8217;t yet written a plugin (I can&#8217;t think of one to write that hasn&#8217;t been written yet.)</p>
<p>And, on top of all of that, I&#8217;m re-writing in PHP some core functions of a web-database/CMS framework I wrote in Perl a gazillion years ago (and still is in use for an application called <a href="http://www.ease-equity.org">EASE</a>.) That&#8217;s been fun. What&#8217;s also fun in retrospect is that the framework (the erstwhile Xina) was written basically using the <a href="http://en.wikipedia.org/wiki/Model-view-controller">MVC</a> architectural pattern before I knew it existed!</p>
<p>It feels like I&#8217;m beginning to focus on a core set of tools and technologies (PHP, Drupal, WP, Elgg,) and that in a few months, I&#8217;ll be up to speaking PHP fluently, like I spoke Perl a while back. And I&#8217;m looking forward to getting to work on the kinds of projects that I&#8217;ve been watching as a spectator in the last year.</p>
]]></content:encoded>
			<wfw:commentRss>http://zenofnptech.org/2008/10/the-joy-of-drupal-and-other-tales.html/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
