<?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>JTeam Blog &#187; Contracts</title>
	<atom:link href="http://blog.jteam.nl/tag/contracts/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.jteam.nl</link>
	<description>Keep updated on what we&#039;re doing!</description>
	<lastBuildDate>Fri, 23 Jul 2010 07:32:56 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Evolution of a support process (part 2)</title>
		<link>http://blog.jteam.nl/2009/10/01/evolution-of-a-support-process-part-2/</link>
		<comments>http://blog.jteam.nl/2009/10/01/evolution-of-a-support-process-part-2/#comments</comments>
		<pubDate>Thu, 01 Oct 2009 12:01:10 +0000</pubDate>
		<dc:creator>Dennis de Boer</dc:creator>
				<category><![CDATA[Business]]></category>
		<category><![CDATA[Office]]></category>
		<category><![CDATA[Contracts]]></category>
		<category><![CDATA[Customer]]></category>
		<category><![CDATA[Process]]></category>
		<category><![CDATA[Relationship]]></category>
		<category><![CDATA[Sales]]></category>
		<category><![CDATA[Service Level]]></category>
		<category><![CDATA[Support]]></category>

		<guid isPermaLink="false">http://blog.jteam.nl/?p=1170</guid>
		<description><![CDATA[This blog entry is part 2 out of the series, where I discuss the process to structure support and maintenance work, at JTeam. In the previous part (part 1) of this series, I’ve discussed our first setup for a support structure in our company. As I said, this setup is not used anymore due to [...]]]></description>
			<content:encoded><![CDATA[<p>This blog entry is part 2 out of the series, where I discuss the process to structure support and maintenance work, at JTeam.</p>
<p>In the previous part (<a href="http://blog.jteam.nl/2009/09/23/evolution-of-a-support-process-part-1/">part 1</a>) of this series, I’ve discussed our first setup for a support structure in our company. As I said, this setup is not used anymore due to several reasons. In this blog post, I’ll clarify these reasons and take you in on our second setup of the support structure.<br />
<span id="more-1170"></span></p>
<p>Keep in mind the original problems we had to tackle to improve our support initiative:</p>
<ol>
<li> Knowledge stays within a select group of people. These people are not always available (e.g. when working on other projects). When these people are on holiday, sick or leave JTeam, work cannot continue. So, the ability to solve problems, or adding new features, depends on the availability of those people. JTeam becomes dependent on them.</li>
<li>People keep working on the same project over and over again which can become kind of tedious in the long run.</li>
</ol>
<h2>Problem description</h2>
<p><img class="alignleft size-thumbnail wp-image-1179" title="Tech-Support" src="http://blog.jteam.nl/wp-content/uploads/2009/09/Tech-Support-150x150.jpg" alt="Tech-Support" width="115" height="115" />Since the launch of version 1, we experienced some difficulty in realizing this plan. This was mostly due to the fact that people are outsourced, being unavailable at the office, or inability to get people away from the customer to take on the job of support member at JTeam. Depending on the customer, it is rather difficult to tell/ask a customer that our &#8216;empowering&#8217; colleagues working on their project should return to the JTeam office to handle support issues.</p>
<p>Secondly, it is a big risk for JTeam to have three people working on support, situated at JTeam HQ, with the risk of not having any support call to handle. They can fill up their time with researching innovative technologies or writing blogs, all also *very* valuable for JTeam, but they don’t do any billable work. Eventually this will simply cost too much money.</p>
<p>Third, mainly because of the first point, a lot of the same people were assigned support duty, which made the knowledge transferring requirement obsolete.</p>
<h2>Solution II</h2>
<p><em>(code name : <a title="you spin me round" href="http://www.youtube.com/watch?v=4ssNkJrmZ6g" target="_blank">only the lonely</a>) </em><br />
To solve the availability problem, we changed the process in a way that availability is not an issue anymore. In this version, one person, each week, a whole week, will function as the first contact for support calls. This person will gather all support calls and might directly know how to solve the problem or checks if a solution is already documented on our company Wiki (<a title="Confluence" href="http://www.atlassian.com/software/confluence/" target="_blank">Confluence</a>). If so, this person can help the customer immediately. If not, the call will be forwarded to the team of people knowing the most of this project. It is the <em>responsibility of the support person</em> to check up on/manage the person handling the bug. The Project Manager of this project can do this as well, but it remains an important task of the support person.</p>
<p>In practice this means that the first contact will listen to our support email address and picks up issues from there. If this person fixed it, and thinks the solution to this problem is handy for reference, he <em>has</em> to document it on Confluence, so the next person scheduled to be first contact can benefit from that information in the future.</p>
<h2>But…how do we let the customer contact support?</h2>
<p>Project managers will still receive emails and calls from customers, since they are used to calling a specific person. And they should. The development team can change, but the customer needs one contact person which knows about their functionality and can help them with requirements and decisions. In this case, the project manager takes note of the call/email, maybe already answering, and forwards the support call to the support member for further handling.</p>
<p><img class="alignright size-thumbnail wp-image-1184" title="HappyCustomer" src="http://blog.jteam.nl/wp-content/uploads/2009/09/HappyCustomer1-150x150.jpg" alt="HappyCustomer" width="125" height="125" />Since, as a support person, you only have to listen to the support email address, people who work at the location of a customer, can also function as the first contact. To the customer will be communicated that it can happen that you have to answer some emails, or put other people to work. For the customer, this is more acceptable, then having a member of their development team, leave the team to be at JTeam for three days to handle support. As was the purpose in version 1 of our support process.</p>
<p>Next to the above process, we also have some technical infastructure to facilitate our support process. Problems that are issued by email, are directly and automatically logged into our issue tracking system <a title="Jira" href="http://www.atlassian.com/software/jira/" target="_blank">Jira</a>, so the customer and the development team have a reference of the problem at hand (see a future blog post about the Jira setup).</p>
<p>This way of work allows us to make a planning upfront for the person who is going to be the 1st line helpdesk person for what week. Depending on the internal vacation schedule we planned a week for everyone. The schedule is publicly available, and rescheduling is always possible if it is mentioned upfront!</p>
<h2>Transferring knowledge</h2>
<p>So, if a lot of support calls are still assigned to the person with already the most knowledge of the project, how do we address the knowledge sharing and transfer issue? Not one person should have all the knowledge of the project! You’re right.<br />
Well, to solve this, when new features are to be created for these support projects, someone who is available will be pointed out to pair program / learn from the master himself. This way knowledge is transferred and more and more people will understand the code of the project, so every time even more people can pick up issues for this project.</p>
<p>Knowledge transfer is important. If, in the team planning meeting, we know that some work on new functionality is planned for a support project, we will check to see if someone with less knowledge of that project is available to learn from the person who is implementing the new features. This can for example mean, that people that work at the customer 4 days a week, will work on some new features of a support project,  the day of the week they are at JTeam. This way everyone will be familiar in a way with the projects at JTeam.</p>
<h2>So&#8230;</h2>
<p>this is the plan for now and is currently used at JTeam. As a true agile and pragmatic company, we’ll evaluate in a couple of weeks and review how this worked out in practice. If our structure is being modified I’ll let you know of course !</p>
<p><em>Any remarks and suggestions about our current support process, or other ways of implementing a decent support structure, are more then welcome.</em></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.jteam.nl/2009/10/01/evolution-of-a-support-process-part-2/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Evolution of a support process (Part 1)</title>
		<link>http://blog.jteam.nl/2009/09/23/evolution-of-a-support-process-part-1/</link>
		<comments>http://blog.jteam.nl/2009/09/23/evolution-of-a-support-process-part-1/#comments</comments>
		<pubDate>Wed, 23 Sep 2009 14:56:40 +0000</pubDate>
		<dc:creator>Dennis de Boer</dc:creator>
				<category><![CDATA[Business]]></category>
		<category><![CDATA[Office]]></category>
		<category><![CDATA[Contracts]]></category>
		<category><![CDATA[Customer]]></category>
		<category><![CDATA[Process]]></category>
		<category><![CDATA[Relationship]]></category>
		<category><![CDATA[Sales]]></category>
		<category><![CDATA[Service Level]]></category>
		<category><![CDATA[Support]]></category>

		<guid isPermaLink="false">http://blog.jteam.nl/?p=1103</guid>
		<description><![CDATA[This blog entry discusses the internal process at JTeam to structure our support and maintenance work, and at the same time exceeding the client’s expectations. As you might know, if you are a regular reader of this blog, JTeam is a software development company. We develop enterprise applications for our customers. See for example our [...]]]></description>
			<content:encoded><![CDATA[<p>This blog entry discusses the internal process at JTeam to structure our support and maintenance work, and at the same time exceeding the client’s expectations.</p>
<p>As you might know, if you are a regular reader of this blog, JTeam is a software development company. We develop enterprise applications for our customers. See for example our blog post about the <a title="Paazl post" href="http://blog.jteam.nl/2009/07/09/project-paazl-offers-choice-in-shipment/" target="_blank">Paazl</a> project for a description of one of our projects. After implementation, these applications often will be maintained and developed further by the customer&#8217;s own development team or is being outsourced. There are however some projects which stay at JTeam. We keep on maintaining the project and implement new features.</p>
<p>These kind of projects require a different type of development and management process than the other projects. Especially the support work for these projects (i.e. bugfixing) is something that involves a whole different approach.</p>
<p>Here at JTeam we’re constantly looking for ways to improve our development and management processes. This is why we wanted to create a better way to handle these support issues.</p>
<p><em>This blog entry discusses this process. It will feature multiple parts, so you can follow our strategies and conclusions. Maybe it will help you to find the perfect process for your own business.</em></p>
<p><span id="more-1103"></span></p>
<h2>Problem description</h2>
<p>As said, support and maintenance work is work for projects which are ‘done’ but are troubled by bugs or other problems. At JTeam most of the time the person who knew the most of the project was assigned to fix the problem. However, this solution is not without problems:</p>
<ol>
<li> Knowledge stays within a select group of people
<p>These people are not always available (e.g. when working on other projects). When these people are on holiday, sick or leave JTeam, work cannot continue. So, the ability to solve problems, or adding new features, depends on the availability of those people. JTeam becomes dependent on them.</li>
<li>People keep working on the same project over and over again which can become kind of tedious in the long run.</li>
</ol>
<p>We thought of a possible solution for these challenges and came up with the following initial solution.<br />
<br/></p>
<h2>Solution I</h2>
<p><em>(code name : <a title="you spin me round" href="http://www.youtube.com/watch?v=zJv5qLsLYoo" target="_blank">you spin me round</a>)</em></p>
<p>Our first official support initiative was a combination of support and maintenance work with rotating teams.</p>
<p>We assigned 3 people each week that had ‘support duty’. These 3 people were expected to pick up support and maintenance calls, for 16 hours a week, and handle them together to make knowledge transfer possible. Every week, one person left the group, to make room for a new person. This way, the two people who were already in the support team, and stayed in the support team, could transfer knowledge to the new person. Resulting in rotating teams with a lot of knowledge transferring. Additionally we made sure that every week there was a domain expert or a software architect assigned to participate in the support group, to teach the other members of the support group enough of that project.</p>
<p>With the big amount of knowledge transfer, a lot more people got acquainted with the running support projects at JTeam. The added value of this is that we, and in the end our customers, were no longer dependent on one or two people who knew how to fix the problem. More people knew enough of the project, so our availability factor increased drastically. Thus allowing JTeam to plan people more efficiently. They could be billable on a lot more projects then they were before. A Win-Win situation for both the customer and JTeam!</p>
<p>To make the support process more enjoyable for people, they were after all expected to be in the group for 3 weeks, we decided to invest in these people. At JTeam we believe in the personal development and improvement of our knowledge. We do this by training our colleagues and letting them investigate and work with new technologies. This is why we decided to let the people who work on support duty, investigate cool new innovative technologies when no support calls where due. </p>
<p><img class="alignleft size-thumbnail wp-image-1106" title="shaking_hands" src="http://blog.jteam.nl/wp-content/uploads/2009/09/sla_shaking_hands-150x150.jpg" alt="shaking_hands" width="114" height="114" /></p>
<p>Business wise, we offered our customers an Service Level Agreement (SLA). We needed 3 people to be available every week that could handle support calls. That meant those people had to discuss with their teamlead that they will be less available for the coming week(s). This has influence on the project they currently were working on. Guaranteeing availability is an added service to the customer, which can be agreed upon in an SLA. Customers with this SLA will be part of this process and will benefit from the advantages of this system.</p>
<h2>However&#8230;.</h2>
<p>this way of working was used for 3 months, but currently no longer used at JTeam due to several reasons. Next time I will describe these reasons along with our new support.<br/> <em>In the mean time,  I’d really appreciate your feedback on the above structure and solution. What do you think is wrong with this, and how could we improve? How does your company handle these challenges?</em></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.jteam.nl/2009/09/23/evolution-of-a-support-process-part-1/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Selling Agile Contracts Part II &#8211; The List of Contracts</title>
		<link>http://blog.jteam.nl/2009/04/20/selling-agile-contracts-part-ii-the-list-of-contracts/</link>
		<comments>http://blog.jteam.nl/2009/04/20/selling-agile-contracts-part-ii-the-list-of-contracts/#comments</comments>
		<pubDate>Mon, 20 Apr 2009 20:48:33 +0000</pubDate>
		<dc:creator>Alef Arendsen</dc:creator>
				<category><![CDATA[Business]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Agile]]></category>
		<category><![CDATA[Contracts]]></category>
		<category><![CDATA[Sales]]></category>

		<guid isPermaLink="false">http://blog.jteam.nl/?p=100</guid>
		<description><![CDATA[Okay, so we kind of concluded fixed-price contracts are evil but what are the alternatives? Before we move on, let&#8217;s get the terminology right. Erik van Oosten rightfully commented we might have to start using the terms fixed-feature and fixed-term on top of fixed-price. To take it to a bit more general level, in a [...]]]></description>
			<content:encoded><![CDATA[<p>Okay, so <a href="http://blog.jteam.nl/2009/04/08/selling-agile-projects-part-i/">we kind of concluded fixed-price contracts are evil</a> but what are the alternatives?</p>
<p>Before we move on, let&#8217;s get the terminology right. Erik van Oosten rightfully commented we might have to start using the terms fixed-feature and fixed-term on top of fixed-price. To take it to a bit more general level, in a project there are three basic variables: a collection of features (or scope), the deadline (or schedule) and the budget (or resources). I&#8217;m specifically naming them scope, schedule and resources as these are the exact same terms Scott Ambler came up with in his article titled <a href="http://www.ambysoft.com/essays/brokenTriangle.html">The Broken Iron Triangle Software Development Anti-Pattern</a>. In his paper, Scott argues that &#8216;refusing the recognize the implications of the iron triangle&#8217; is &#8216;one of management&#8217;s more popular approaches to hamstringing an IT project&#8217;. He goes on to say &#8216;<a href="http://www.ddj.com/architect/209101238?cid=Ambysoft">we really need to question the ethics of &#8220;fixed-price&#8221; IT projects</a>&#8216;, which confirms what we&#8217;ve already settled upon.</p>
<p>The next thing he says (and this is completely obvious, if you&#8217;ve ever encountered an agile project done right) is you should be prepared to vary one (or even two) of the factors involved. Vary the scope, schedule or the resources that is, based on what you encounter during a project.</p>
<p>That&#8217;s nicely said and all, especially if you&#8217;ve won the client&#8217;s trust already, but what are you going to tell a customer that has a budget of say €100k for which you&#8217;ll quite likely implement something nice that suits his needs. The client puts out an RFP and invites three suppliers to answer to the RFP. You now it&#8217;s best for the client to end up in a situation where in cooperation with the client you can vary either scope, schedule or resources, but you have to win the client&#8217;s trust first.</p>
<p>I think the answer lies in the response to the RFP plus a certain amount of risk you&#8217;re willing to take as supplier to win this deal and this is where the list of contracts comes in that I got from <a href="http://twitter.com/dashorst">Martijn Dashorst</a> of Wicket fame. <A href="http://alistair.cockburn.us/Agile+contracts">The list, by Alistair Cockburn</a> provides various options for drafting a cooperation between the client and the supplier, varying from fixed-everything to fixed-nothing.</p>
<p>I&#8217;ll be digging through this list in the coming weeks to see if there&#8217;s anything usable. In the meantime, one thought I had was to be upfront with a potential client and offer him the various options for drafting an agreement (or at least, the ones we feel comfortable with). I&#8217;m not sure this will work in all scenarios. There are plenty of RFPs for example that require you to come with a response without being able to discuss possible directions with a client (how weird that may sound).</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.jteam.nl/2009/04/20/selling-agile-contracts-part-ii-the-list-of-contracts/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Selling Agile Projects Part I &#8211; Setting the Stage</title>
		<link>http://blog.jteam.nl/2009/04/08/selling-agile-projects-part-i/</link>
		<comments>http://blog.jteam.nl/2009/04/08/selling-agile-projects-part-i/#comments</comments>
		<pubDate>Wed, 08 Apr 2009 22:19:13 +0000</pubDate>
		<dc:creator>Alef Arendsen</dc:creator>
				<category><![CDATA[Business]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Agile]]></category>
		<category><![CDATA[Contracts]]></category>
		<category><![CDATA[Sales]]></category>

		<guid isPermaLink="false">http://blog.jteam.nl/?p=64</guid>
		<description><![CDATA[At JTeam we&#8217;ve been doing projects for ages and generally speaking we&#8217;ve always done things the agile way. Convincing the customer of the importance of agility and flexibility is something we&#8217;ve never found to be a hard sell. How to write this up in a proposal and how to draw up a contract around such [...]]]></description>
			<content:encoded><![CDATA[<p>At JTeam we&#8217;ve been doing projects for ages and generally speaking we&#8217;ve always done things the agile way. Convincing the customer of the importance of agility and flexibility is something we&#8217;ve never found to be a hard sell. How to write this up in a proposal and how to draw up a contract around such an agile project however is rather challenging. In the past, the way we&#8217;ve written our proposals and drawn up our contracts has worked reasonably well, but it never hurts to try to improve it in order to satisfy our customers even more.</p>
<p>This is why I&#8217;ve been reading up on what others have to say about this subject. What I found was pretty interesting and I&#8217;d like to share my findings with you and also reflect a bit on these findings.</p>
<h3>Are fixed-price contracts evil?</h3>
<p>Generally speaking deals where for a fixed amount of money a project will be executed result in the client having no or little incentive to accept the project as being done or complete. After all, broadening or changing the scope of the project can be done at no cost, since the price has been fixed at the start of the project. The risk is entirely at the supplier side.</p>
<p>Naturally the supplier wants to minimize this risk, so usually demands or forces the customer to be very precise about the scope before the start of the project. In addition he asks for changes to be done using change requests, which subsequently are charged at a certain rate.</p>
<p>In his turn, the customer then puts as many feature in scope as possible, thinking that if he does so, the chances will increase that the features he <b>really</b> needs are among those in scope, hence not needing any change requests.</p>
<p>The end result:</p>
<ul>
<li>Way too many features initially in scope, many of which will be left unused in the end product</li>
<li>Too much time and money spent on these features</li>
<li>A situation where the customer is encouraged not change his mind too much</li>
<li>A situation where the supplier is not encourage to think along with the client during the process as this again results in change</li>
</ul>
<p>In other words: <b>fixed price deals result in fix bid projects where both budget and scope are tightly controlled and change is kept to a minimum</b>.</p>
<p>We&#8217;ve all concluded in the past that agility and flexibility during a project&#8217;s execution is something that&#8217;s desirable. Given this and the above, fixed price deals are not the way to go if you want agility and flexibility.</p>
<h3>So, what is the answer then?!</h3>
<p>So if we know that fixed price contracts are not the solution if projects that accommodate change are a desirable thing, what contractual agreement should be used? Well, this is a question not easily answered.</p>
<p>Seth Schubert states things very elegantly in his blog entry on <a href="http://www.codesqueeze.com/how-to-sell-agile-to-fixed-bid-contract-clients/">{codesqueeze}</a>:</p>
<blockquote><p>It is very difficult to arrange a contractual agreement that accommodates change. At the end of the day, your client’s accounting department is going to want to know how much the project will cost, and when they can expect to receive working software.</p></blockquote>
<p>A bit further on Seth states that</p>
<blockquote><p>a client will tend to perceive a fixed bid contract as less risky. By controlling the scope and budget in a project, the client’s stake in the project are seemingly protected. The risk of project failure by defining scope to early is not altogether intuitive or obvious.</p></blockquote>
<p>He talks about the exact risk that we identified above. The risk of implementing too many or useless features, the risk of the supplier not thinking along with the client to prevent him from running into pitfalls, et cetera.</p>
<p>Next, Seth states that:</p>
<blockquote><p>Even when presented with this information, a new client may still may be unwilling to enter into an open ended contract.</p></blockquote>
<p>This is what it comes down to: having no prior relationship with the supplier, customers often simply cannot relinquish control over either budget or scope right at the start of a new project. To some extent, I find this completely understandable; after all, how can a customer  trust the supplier in his doing the right thing? It&#8217;s the first time he&#8217;s met the supplier.</p>
<p>Based on this, the question still remains: what contractual agreement makes it possible for the customer to let go of budget or scope in the long term?</p>
<p>There&#8217;s in fact plenty of research out there and examples of contractual agreements that facilitate this, some of which I might highlight later on. For now, we&#8217;ll first discuss some of the alternative at JTeam and see which ones are suitable for our practice. I&#8217;ll report some more of my findings later on.</p>
<p>In the meantime, if you have experiences in this area, you&#8217;re obviously more than welcome to share them here <img src='http://blog.jteam.nl/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> .</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.jteam.nl/2009/04/08/selling-agile-projects-part-i/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
	</channel>
</rss>
