<?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>Taras Mankovski Blog &#187; CMS</title>
	<atom:link href="http://taras.cc/index.php/category/cms/feed/" rel="self" type="application/rss+xml" />
	<link>http://taras.cc</link>
	<description>Building Beecoop and generaly making developer&#039;s lives easier and more productive.</description>
	<lastBuildDate>Wed, 25 Nov 2009 03:41:59 +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>How to deploy: database, source and binary changes in 1 patch?</title>
		<link>http://taras.cc/index.php/2009/11/24/how-to-deploy-database-source-and-binary-changes-in-1-patch/</link>
		<comments>http://taras.cc/index.php/2009/11/24/how-to-deploy-database-source-and-binary-changes-in-1-patch/#comments</comments>
		<pubDate>Wed, 25 Nov 2009 03:40:15 +0000</pubDate>
		<dc:creator>Taras</dc:creator>
				<category><![CDATA[Architecture]]></category>
		<category><![CDATA[CMS]]></category>
		<category><![CDATA[Drupal]]></category>
		<category><![CDATA[Joomla]]></category>
		<category><![CDATA[Tools]]></category>

		<guid isPermaLink="false">http://taras.cc/?p=183</guid>
		<description><![CDATA[Today, was an exciting day for me, again.  
I was working on several client&#8217;s projects and something seems to have crystalized in my brain today. This crystallization created a new question that I posted on stackoverflow: How to deploy: database, source and binary changes in 1 patch?
Amazingly, 6 hours went by and I only [...]]]></description>
			<content:encoded><![CDATA[<p>Today, was an exciting day for me, again. <img src='http://taras.cc/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>I was working on several client&#8217;s projects and something seems to have crystalized in my brain today. This crystallization created a new question that I posted on stackoverflow: <a href="http://stackoverflow.com/questions/1791426/how-to-deploy-database-source-and-binary-changes-in-1-patch">How to deploy: database, source and binary changes in 1 patch?</a></p>
<p>Amazingly, 6 hours went by and I only got 20 views and 0 answers. You know what this says to me? To me this says that people do not have an easy answer to this question. I know for myself, i usually look for questions that I have quick answers to, I think this is not one of those questions.</p>
<p>Well, this actually was a test to see if something like this already exists, because I think I have an answer to this question. I outlined it in my conversation with Trevor today. I put it to your for consideration, I would love to get feedback so please tell me what you think.</p>
<p>A transcript of this conversation is in this post:</p>
<p><span id="more-183"></span></p>
<blockquote><p><strong>Taras Mankovski</strong></p>
<p>I have multiple developers checking out projects from repository, the repo contains db dump of the project, they import the db, make changes to code, dump db, commit changes and db back to repo, problem is that sql dump site is pretty much useless in terms of figuring out what has changed in db</p>
<p>diff, is a well established mechanism for comparing text files. It works pefectly. I can at any point, check what&#8217;s changed between revision of a project. This is especially nice with git because I can choose arbitrary commits and see their changes.</p>
<p>This brings us back to db. DB sql dump is pretty much useless in determining what has changed in the DB because of the nature of the file. It&#8217;s long it&#8217;s wordy, it plain sucks to read.</p>
<p>So here is the solution:</p>
<p>I think it would be possible to represent the database as a directory with files in it. Every table in the database would be a directory. Every record a text file that contains in it the data from the record, represented as JSON.</p>
<p>What this means is that it would be extremely easy to commit the database into the repository and see what has changed.</p>
<p>We can use existing established mechanisms to determine the changes in the database.</p>
<p>The information included in the file system can be quiet extensive. For example, every directory can contain a schema file, that represents the schema of the table as json file. Again, it would be very easy to compare schema changes from revision to revision by comparing the schema files.</p></blockquote>
<blockquote><p><strong>Trevor Twining</strong><br />
I think it&#8217;s a really interesting solution to the problem, just trying to work out how implementation details would work with Drupal&#8217;s architecture and how it might support or conflict with other partial solutions to the problem.</p>
<p>There&#8217;s been a push in drupal lately to allow more config to be exported as code for just that reason, but a lot of it is happening at the object level. There&#8217;s a growing number of modules that are using OOP principles in their code even though Drupal is procedural, so they&#8217;re basically providing var exports for some of those objects some of that work is for reusability of code as well, so that configurations can be saved and implemented in different projects</p></blockquote>
<blockquote><p><strong>Taras Mankovski</strong><br />
Ok, so there is more. The title of this wave is Unified Patching. The problem with what we have right now is that &#8220;It&#8217;s very difficult to deploy changes to the server.&#8221;</p>
<p>The problem actually is that deployment is easy, if you&#8217;re doing it wrong. Deployment is hard if you&#8217;re doing it right.</p>
<p>What do I mean by that?<br />
It&#8217;s easy to make changes to client&#8217;s site by working directly on client site. That in many many many ways is very wrong. If you break something you&#8217;re essentially screwed, it looks bad and it&#8217;s just extremely unprofessional. But it&#8217;s so damn easy.</p>
<p>The hard part is to do it right &#8211; do all development offline, test the changes, show the changes to the client on demo server, stage the changes and then finally apply them to client&#8217;s site without impacting the live site. This is hard.</p>
<p>I&#8217;m finding that deployment takes as much time as development. This is what I want to change. This is where Unified Patching will come in.</p>
<p>I&#8217;m breaking up project changes into 4 categories.</p>
<ul>
<li>Database Structure</li>
<li>Database Data</li>
<li>Source Code</li>
<li>Binary Files</li>
</ul>
<p>Actually, when working with CMS, Database Data can be broken up into 2 categories: Content Changes and Structural Changes. In Drupal, this would be defining the content types and the actual content data. We will ignore this point for now.</p>
<p>I think it would be possible to systematically apply all 4 of these changes using a unified tool, that would apply them in a reliable and predictable manner.</p>
<p>What&#8217;s I&#8217;m talking about is unix &#8216;patch&#8217; utitility on steroids.</p>
<p>I have an idea of how this could be done in a very simple and reliable way.</p>
<p>Ok, so I think it would be possible to use diff to generate Unified Patches.</p>
<p>Diff is a very simple format that can be generated from any VCS.</p>
<p>Git&#8217;s diff includes information about the changes that happened between version with source code, binary files and permissions. It has no capacity to handle database changes.</p>
<p>I think if we were to use the solution outlined above, then we could create a Unified Patch generator that would parse the diff to determine changes in the 4 data types that were outlined above.</p>
<p>For example:</p>
<p>Let&#8217;s assume that we have all of the database dumpted as files onto the files system. We are going to run DIFF between 2 revisions.</p>
<ol>
<li>Parse the diff to determine if any of the schema files have changed in the /db directory have changed. If changed then generate ALTER statements that correspond to the changes made to the schema.</li>
<li>Parse the diff to determine if any files in the /db directory have changed, if they have then create a corresponding REPLACE or DELETE/INSERT statement for each changed file</li>
<li>If binary files were added/removed or modified, then include the modifed files a temprorary location</li>
<li>Include standard patch for source code or text files</li>
</ol>
<p>Now that we have all of the data types processed, put them together into 1 directory and tar.gz the directory.</p>
<p>Now you have an Unified Patch.</p>
<ol>
<li>Upload the patch to the server.</li>
<li>run upatch ourpatch.tar.gz</li>
</ol>
<p>upatch will perform the following actions.</p>
<ol>
<li>dry-run database schema changes (possibly inside of a trasaction)</li>
<li>dry-run database content import</li>
<li>dry-run binary file move</li>
<li>dry-run patch</li>
</ol>
<p>I don&#8217;t know how to do step 1 and 2. Step 3 could be fairily simple, we just need to know if have permissions to overwrite these files.</p>
<p>If dry-run succeds, then it&#8217;s fairily safe to perform live update.</p></blockquote>
<blockquote><p><strong>Trevor Twining</strong><br />
I don&#8217;t know if you could do a dry run, but you could make changes in a test version (makes a dump of current live db and changes that instead of live)</p>
<p>transactional support might allow you to do the rollback, but you&#8217;d need to be able to do several operations before the commit, shouldn&#8217;t be a problem, but dummy database might be more useful because you can connect to it and actually see if anything is messed up, which you couldn&#8217;t do with a transactional approach.</p></blockquote>
<blockquote><p><strong>Taras Mankovski</strong><br />
We really just want to know if the query succeeded. The other approach would be use to test, like you said, but actual make it a staging environment where you can push the changes to and test if the site is working before you apply the same change to the live site</p></blockquote>
<blockquote><p><strong>Trevor Twining</strong><br />
Here&#8217;s a question though, what about the cases where the database is storing some serialized version of a code-object for persistance? Not looking for an immediate answer, but it&#8217;s an important question</p></blockquote>
<blockquote><p><strong>Taras Mankovski</strong><br />
Is the data stored as php serialized object?</p></blockquote>
<blockquote><p><strong>Trevor Twining</strong><br />
a portion, yes, and it&#8217;s how code is shared/exported, basically via a var_export call. code for views can then be moved out of the database and stored as modules</p></blockquote>
<blockquote><p><strong>Taras Mankovski</strong><br />
ok, let&#8217;s take a few example:<br />
Multiple developers are working on same site<br />
Developer A checked out changes from repo, made changes in the view and commited them.<br />
At the same time, Developer B also made changes to the db and try to commit them. Now, for Developer B, his commit would fail because his dbfiles are out of date. He needs to perform merge. I do not know how you would merge 2 view exports or if it&#8217;s at all possible, but atleast the developers know that there is a conflict in the views right away.</p></blockquote>
<p>That&#8217;s it for today, not bad for 1 days, work.</p>
<p>Ok, what do you guys think about this?</p>
]]></content:encoded>
			<wfw:commentRss>http://taras.cc/index.php/2009/11/24/how-to-deploy-database-source-and-binary-changes-in-1-patch/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Symphony, Joomla and Drupal</title>
		<link>http://taras.cc/index.php/2009/09/30/symphony-joomla-and-drupal/</link>
		<comments>http://taras.cc/index.php/2009/09/30/symphony-joomla-and-drupal/#comments</comments>
		<pubDate>Wed, 30 Sep 2009 15:30:33 +0000</pubDate>
		<dc:creator>Taras</dc:creator>
				<category><![CDATA[Architecture]]></category>
		<category><![CDATA[Drupal]]></category>
		<category><![CDATA[Joomla]]></category>

		<guid isPermaLink="false">http://taras.cc/?p=122</guid>
		<description><![CDATA[Currently, we have 3 established systems that can be used to build very good websites.
These are Symphony, Joomla and Drupal.
Symphony is a framework that has scaffolding, ORM(Object Relational Mapper), command line builder tool and integrated unit testing. It allows rapid development and prototyping of php based websites. Symphony is an attractive option for a company [...]]]></description>
			<content:encoded><![CDATA[<p>Currently, we have 3 established systems that can be used to build very good websites.</p>
<p>These are Symphony, Joomla and Drupal.<br />
<span id="more-122"></span>Symphony is a framework that has scaffolding, ORM(Object Relational Mapper), command line builder tool and integrated unit testing. It allows rapid development and prototyping of php based websites. Symphony is an attractive option for a company that would like to offer professional development services to their clients. The problem with it is that it quickly gets very expensive. Because even the simple site ecommerce or forum site requires a lot of development.</p>
<p>Joomla consists of Joomla framework and Joomla CMS. Joomla CMS is built on top of Joomla framework and consists of Joomla Frontend and Administrator web applications. Joomla comes with several basic components out of the box, which can be used to create simple CMS websites. Joomla is a very popular CMS because it&#8217;s very easy to install components to the site that add complete functionality. For example, if you wanted to add an ecommerce site, all you have to do is install com_virtuemart. The site will not necessarily look pretty, but you will be able to sell products within a few hours. After some modification you can have a pretty nice looking ecommerce sites. This out of the box functionality comes at the expense of flexibility, control and ease of maintenance. These issues become a problem as your business grows and you need to implement processes to optimize your implementation process.</p>
<p>Drupal is a CMS that is much more flexible then joomla. Drupal modules are smaller and more granular. This allows the developers great flexibility but comes at the expense of steep learning curve and black box effect. One of the other issue, that makes it difficult to involve many developers on Drupal projects is the fact that Drupal stores information about it&#8217;s structure in the database. This becomes a problem in the following scenario: when 2 developers are working locally on a drupal project and one of them added a field to a CCK node, while the other create a CCK node, then these 2 database are out of sync. Synchronizing these databases is a major hurdle. The steep learning curve makes it difficult to introduce junior developers to a project, putting additional demand on Senior Drupal Developers, thereby increasing their cost.</p>
<p>Obviously, none of these options are perfect and there isn&#8217;t one system that will satisfy everyone, but I think that something in the middle would be very useful.</p>
<p>Look at the question and tell me what you think is in the &#8220;<strong>?</strong>&#8220;.</p>
<p><img src="http://taras.cc/~/domains/taras.cc/html/wp-content/uploads/2009/02/whatis1.png" border="0" alt="whatis.png" width="467" height="377" /></p>
<p><strong>What would this system look like?</strong></p>
<p><strong>What would this system allow you to do?</strong></p>
<p><strong>What functionality would it have?</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://taras.cc/index.php/2009/09/30/symphony-joomla-and-drupal/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>How to Implement Gallery Site using JMC</title>
		<link>http://taras.cc/index.php/2008/08/07/how-to-implement-gallery-site-using-jmc/</link>
		<comments>http://taras.cc/index.php/2008/08/07/how-to-implement-gallery-site-using-jmc/#comments</comments>
		<pubDate>Thu, 07 Aug 2008 19:03:27 +0000</pubDate>
		<dc:creator>Taras</dc:creator>
				<category><![CDATA[Joomla]]></category>
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://taras.cc/?p=99</guid>
		<description><![CDATA[The intention of this post is to give you an idea of how to implement a Gallery Site using JMC.
I will be copying lenaboyle.com and implementing it in JMC.
Here is the process of implementing the site using JMC.

Setup Joomla
Create tables
Enter data
Setup views
Apply template
Test

1. Setup Joomla
Setup Directory structure
mkdir -p lenaboyle.com/{db,html,local}
htdocs/lenaboyle.com/db &#8211; backup of your joomla site database
htdocs/lenaboyle.com/html [...]]]></description>
			<content:encoded><![CDATA[<p>The intention of this post is to give you an idea of how to implement a Gallery Site using JMC.</p>
<p>I will be copying <a href="http://lenaboyle.com/">lenaboyle.com</a> and implementing it in JMC.<span id="more-99"></span></p>
<p>Here is the process of implementing the site using JMC.</p>
<ol>
<li>Setup Joomla</li>
<li>Create tables</li>
<li>Enter data</li>
<li>Setup views</li>
<li>Apply template</li>
<li>Test</li>
</ol>
<h4><strong>1. Setup Joomla</strong></h4>
<p><strong>Setup Directory structure</strong></p>
<pre>mkdir -p lenaboyle.com/{db,html,local}</pre>
<p>htdocs/lenaboyle.com/db &#8211; backup of your joomla site database<br />
htdocs/lenaboyle.com/html &#8211; the actual joomla site<br />
htdocs/lenaboyle.com/local &#8211; contains configuration.php files of all developers working on this site.</p>
<p><strong>Copy Joomla to html folder</strong></p>
<pre>cp -r vendors/joomla/1.5/* lenaboyle.com/html</pre>
<p><strong>Setup joomla</strong><br />
In your web browser go to http://localhost/lenaboyle.com/html/installation and perform standard joomla installation.</p>
<p><strong>Install latest version of JMC</strong></p>
<ol>
<li>Download latest version of JMC from <a href="https://beecoop.unfuddle.com/projects/6085/repositories/4244/browse/head/installers/com_jmc.zip">JMC Repository</a>.</li>
<li>Install JMC using standard joomla install method</li>
</ol>
<p><strong>Backup your configuration.php file</strong></p>
<pre>cp lenaboyle.com/html/configuration.php lenaboyle.com/local/configuration.php.{$yourname}</pre>
<h4>2. Create Tables</h4>
<p>JMC repository comes with predefined Artwork &amp; Artist tables. You should not need to overwrite these, unless there is something unusual about this site. In this case, we will use the default table files. So you don&#8217;t actually have to do anything here</p>
<h4>3. Perform Data Import</h4>
<p>You can using the import function model to perform the import. This will need to be documented separately.</p>
<h4>4. Setup Views</h4>
<p>First outline what views you have. You can start off by looking at what you have in the menu menu.</p>
<p><strong>Front End Views</strong></p>
<p style="text-align: center; "><a href="http://taras.cc/~/domains/taras.cc/html/wp-content/uploads/2008/08/menu-views.png"><img class="size-medium wp-image-100 aligncenter" title="Menu gives basic views" src="http://taras.cc/~/domains/taras.cc/html/wp-content/uploads/2008/08/menu-views-300x182.png" alt="" width="300" height="182" /></a></p>
<ol>
<li>Home Page</li>
<li>Artist Search</li>
<li>Exhibitions &amp; Art Fairs</li>
<li>About Us</li>
<li>Contact Us</li>
</ol>
<div><strong>JMC Views</strong></div>
<ol>
<li>Artwork List</li>
<li>Artist List</li>
</ol>
<div><strong>Admin Views</strong></div>
<ol>
<li>Artwork List</li>
<li>Artist List</li>
</ol>
<h5>Configuration of Views</h5>
<p><strong>Home Page View</strong></p>
<p><a href="http://taras.cc/~/domains/taras.cc/html/wp-content/uploads/2008/08/home_page_diagram.png"><img class="aligncenter size-medium wp-image-109" title="home_page_diagram" src="http://taras.cc/~/domains/taras.cc/html/wp-content/uploads/2008/08/home_page_diagram-300x179.png" alt="" width="300" height="179" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://taras.cc/index.php/2008/08/07/how-to-implement-gallery-site-using-jmc/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How stupid is this? Getting logout to work on Joomla 1.5 with SEF and mod_rewrite</title>
		<link>http://taras.cc/index.php/2008/07/17/how-stupid-is-this-getting-logout-to-work-on-joomla-15-with-sef-and-mod_rewrite/</link>
		<comments>http://taras.cc/index.php/2008/07/17/how-stupid-is-this-getting-logout-to-work-on-joomla-15-with-sef-and-mod_rewrite/#comments</comments>
		<pubDate>Thu, 17 Jul 2008 05:21:05 +0000</pubDate>
		<dc:creator>Taras</dc:creator>
				<category><![CDATA[Joomla]]></category>

		<guid isPermaLink="false">http://taras.cc/?p=40</guid>
		<description><![CDATA[This only took me an hour and a half.
This is a bit ridiculous.
I&#8217;m kinda pissed.
How the hell are you suppose to get &#8220;logout&#8221; link to work on Joomla 1.5?
I feel like we&#8217;re in stone age over here.
Ok, this is really simple. I would like my sites to have http://example.com/logout url. Now what does a boy [...]]]></description>
			<content:encoded><![CDATA[<p>This only took me an hour and a half.</p>
<p>This is a bit ridiculous.</p>
<p>I&#8217;m kinda pissed.</p>
<p>How the hell are you suppose to get &#8220;logout&#8221; link to work on Joomla 1.5?<span id="more-40"></span></p>
<p>I feel like we&#8217;re in stone age over here.</p>
<p>Ok, this is really simple. I would like my sites to have http://example.com/logout url. Now what does a boy have to do around here to get that?</p>
<p>Well I&#8217;ll tell you. Add views to joomla. This is silly and ridiculous, but I really hope it will save you some trouble.</p>
<p>Anyway, here it is. I attached a zip file that contains 2 files.</p>
<p>Download: <a href="/files/logout.tar.gz"><strong>logout.tar.gz</strong></a></p>
<p>extract the contents to /components/com_user/views/user/tmpl</p>
<p>This allows you to create a menu item that will log user out and redirect them to main page of the site.</p>
<p>I can add more features on request.</p>
]]></content:encoded>
			<wfw:commentRss>http://taras.cc/index.php/2008/07/17/how-stupid-is-this-getting-logout-to-work-on-joomla-15-with-sef-and-mod_rewrite/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Development of Joomla Commenting Component</title>
		<link>http://taras.cc/index.php/2008/07/16/development-of-joomla-commenting-component/</link>
		<comments>http://taras.cc/index.php/2008/07/16/development-of-joomla-commenting-component/#comments</comments>
		<pubDate>Wed, 16 Jul 2008 04:00:22 +0000</pubDate>
		<dc:creator>Taras</dc:creator>
				<category><![CDATA[Architecture]]></category>
		<category><![CDATA[Joomla]]></category>

		<guid isPermaLink="false">http://taras.cc/?p=29</guid>
		<description><![CDATA[One of the recent projects that we were involved in required us to create a commenting component that allowed to leave comments and upload variations to the original post.
Basically here are the specs:

Create or modify existing commenting component to allow creation of 2 types of comments
Variation and Comments are shown in the same list of [...]]]></description>
			<content:encoded><![CDATA[<p>One of the recent projects that we were involved in required us to create a commenting component that allowed to leave comments and upload variations to the original post.<span id="more-29"></span></p>
<p>Basically here are the specs:</p>
<ul>
<li>Create or modify existing commenting component to allow creation of 2 types of comments</li>
<li>Variation and Comments are shown in the same list of comments</li>
<li>We need to be able to moderate the comments</li>
<li>Variations are comments that have Title, Description and upload field that allows the visitor to upload a text, doc or pdf document</li>
<li>Comments have Title, Description and Rating (users can only rate once per item)</li>
</ul>
<div>We had a very limited time to implement these features, approximately 15 hours including styling the frontend.</div>
<div>So we began our investigation and quickly found that we don&#8217;t really have many options. There is JomComment &amp; Joomla Comment. </div>
<div>JomComment has a license that requires us to purchase a license per domain, so we would not be able to reuse or redistribute the code.</div>
<div>Joomla Comment is kinda messy.</div>
<div>So we decided to write something from scratch. The problem with writing something like this from scratch is that we would have to create an administrative interface that would allow us to moderate these comments, but this is time consuming.</div>
<div>So we devised a pretty ingenious plan that I think worked out pretty well.</div>
<div>
<ol>
<li>We decided to store all comments (title &amp; description) as content items under Section &amp; Category &#8211; Comments.</li>
<li>We created a simple component for managing attachments. These attachments are linked to specific content items thereby allowing us to maintain a relationship to comments. ( cool thing is that we can actually use this separately outside of the commenting function )</li>
<li>Rating was integrated using default joomla rating system. </li>
</ol>
</div>
<div>In the end, we were done on time and on budget. It&#8217;s a pretty neat solution, considering that that we were able to leverage all of the standard joomla code to be able to create this implementation and it&#8217;s actually not very hackish, which is kinda surprising.</div>
<div>I think Vitalik (our lead developer) and Alex (our lead CSS dev) did a great Job. </div>
<div>Good Job guys!</div>
<div>Thanks <img src='http://taras.cc/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </div>
]]></content:encoded>
			<wfw:commentRss>http://taras.cc/index.php/2008/07/16/development-of-joomla-commenting-component/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Separation of duties &#8211; the lines are so murky</title>
		<link>http://taras.cc/index.php/2008/07/02/seperation-of-duties-the-lines-are-so-merky/</link>
		<comments>http://taras.cc/index.php/2008/07/02/seperation-of-duties-the-lines-are-so-merky/#comments</comments>
		<pubDate>Wed, 02 Jul 2008 06:51:10 +0000</pubDate>
		<dc:creator>Taras</dc:creator>
				<category><![CDATA[Beecoop]]></category>
		<category><![CDATA[Drupal]]></category>
		<category><![CDATA[Thoughts]]></category>
		<category><![CDATA[process]]></category>

		<guid isPermaLink="false">http://taras.cc/?p=19</guid>
		<description><![CDATA[Hmm&#8230; I&#8217;ve been thinking alot about this recently and it directly impacts how we work within the cooperative.
How do all these roles separate and how do you associate tasks with roles?
For example, where does Project Architect stop, Project Manager being and Development Lead starts.
What is the responsibility that Project Manager has and how do we [...]]]></description>
			<content:encoded><![CDATA[<p>Hmm&#8230; I&#8217;ve been thinking alot about this recently and it directly impacts how we work within the cooperative.</p>
<p>How do all these roles separate and how do you associate tasks with roles?</p>
<p>For example, where does Project Architect stop, Project Manager being and Development Lead starts.</p>
<p>What is the responsibility that Project Manager has and how do we make it easy for Development Lead to do his work and not worry about anything extra?</p>
<p>What is extra for Development Lead?</p>
<p>hmm&#8230; so many questions.<span id="more-19"></span></p>
<p>Right now our process looks something like this.</p>
<ol>
<li>Client Advisors works with client to determine client&#8217;s needs.</li>
<li>Client Advisor takes these needs to a Project Architect who is familiar with many different development tools and can advise on proper tool for the project based on price, time and resources available(this brings up a point, Project Architect does not know what resources are available because he/she is strictly technology&#8230; hmmm)</li>
</ol>
<p>This puts a damper into my post.</p>
<p>The problem is that it appears that we can not seperate Project Architect from Project Manager from Development Lead, because Project Architect can suggest what technology to use based his/her oppinion of what will be best for this project.</p>
<p>I think I just found my answer <img src='http://taras.cc/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  I think the answer is the Abandance principle. We must assume that all skills are available inside of the cooperative.</p>
<p>Which means that any technology that Project Architect chooses for the project will be implementable by the Beecoop members.</p>
<p>What does this mean for the process?</p>
<p>This means that process flows in the following way:</p>
<ol>
<li>Client Advisor works with client to determine needs</li>
<li>Client Advisor takes needs to Project Architect</li>
<li>Project Architect recommends a technology to use for the particular project, including the CMS, modules and other elements that might be necessary</li>
<li>Project Architect creates the project, indicates which skills are necessary for this project and either requests particular memebers to participate in this project or publicizes to Beecoop that these skills are necessary. People will fill in the roles and indicate the time necessary to fulfil their element of the project. (development lead is also selected based on the skills necessary for this project)</li>
<li>Project Architect assembles all the information from Developers and Development Lead and provides the information to Client Advisor</li>
<li>Project Architect works with Client Advisor to prepare a quote that includes, cost, time and technology</li>
<li>Client Advisor goes to client and presents the information</li>
<li>Client Advisor gets deposit and pays Project Architect for his/her role in building project requirements and costs</li>
<li>Client Advisor pays deposits to all developers and development lead and the development process begins</li>
</ol>
<p>Not too shabby only 9 steps. <img src='http://taras.cc/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>ok, this is a mind dump, so it&#8217;s not perfect. I&#8217;m looking forward to your feedback.</p>
]]></content:encoded>
			<wfw:commentRss>http://taras.cc/index.php/2008/07/02/seperation-of-duties-the-lines-are-so-merky/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Credits for my new blog.</title>
		<link>http://taras.cc/index.php/2008/06/18/hello-world/</link>
		<comments>http://taras.cc/index.php/2008/06/18/hello-world/#comments</comments>
		<pubDate>Wed, 18 Jun 2008 16:06:20 +0000</pubDate>
		<dc:creator>Taras</dc:creator>
				<category><![CDATA[Beecoop]]></category>
		<category><![CDATA[Drupal]]></category>
		<category><![CDATA[Joomla]]></category>
		<category><![CDATA[Positive Sum]]></category>
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://localhost/taras.cc/html/?p=1</guid>
		<description><![CDATA[I would like to dedicate my first blog post to the people who made it possible.
Designer: Elysha Poirier checkout her company site to see her portfolio, she&#8217;s greAT!
Template: Vasile Rusnac &#8211; good job man   Spacibo.
And last but not least, me  
Thanks for reading the first post on my blog.
Taras
]]></description>
			<content:encoded><![CDATA[<p>I would like to dedicate my first blog post to the people who made it possible.</p>
<p><span id="more-1"></span>Designer: <a href="http://www.elyshapoirier.com/">Elysha Poirier</a> checkout her company site to see her <a href="http://www.peartreedesign.ca/design.html">portfolio</a>, she&#8217;s greAT!<br />
Template: Vasile Rusnac &#8211; good job man <img src='http://taras.cc/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  Spacibo.</p>
<p>And last but not least, me <img src='http://taras.cc/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Thanks for reading the first post on my blog.</p>
<p>Taras</p>
]]></content:encoded>
			<wfw:commentRss>http://taras.cc/index.php/2008/06/18/hello-world/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
