<?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>MarkoPyhajarvi.Com</title>
	<atom:link href="http://markopyhajarvi.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://markopyhajarvi.com</link>
	<description></description>
	<lastBuildDate>Tue, 10 Nov 2009 08:23:44 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>What Is Your Preferred Leadership Style?</title>
		<link>http://markopyhajarvi.com/2009/11/10/what-is-your-preferred-leadership-style/</link>
		<comments>http://markopyhajarvi.com/2009/11/10/what-is-your-preferred-leadership-style/#comments</comments>
		<pubDate>Tue, 10 Nov 2009 08:22:07 +0000</pubDate>
		<dc:creator>Marko Pyhajarvi</dc:creator>
				<category><![CDATA[Leadership]]></category>

		<guid isPermaLink="false">http://markopyhajarvi.com/?p=166</guid>
		<description><![CDATA[What is your preferred leadership style? In which areas you feel comfortable and in which areas you need improvement? There are many aspects you need to know in order to become better in leading your project team.]]></description>
			<content:encoded><![CDATA[<p>How would you define the term &#8220;<strong>leadership</strong>&#8220;? What does it actually mean?</p>
<p>According to Wikipedia leadership has been described as the “<em>process of social influence in which one person can enlist the aid and support of others in the accomplishment of a common task</em>”. A definition more inclusive of followers comes from Alan Keith of Genentech who said &#8220;<em>leadership is ultimately about creating a way for people to contribute to making something extraordinary happen</em>.&#8221;</p>
<p>Leadership is about influencing people in order to reach goals. It is also about coaching and motivating people so that they can give their best and reach a goal as a team. Leadership can be described many ways, but one thing is sure. Leadership skills are in the core of project management skills. Project management is leading people.</p>
<p style="text-align: center;"><img class="size-full wp-image-175 aligncenter" title="Steve Jobs is known as a charismatic leader" src="http://markopyhajarvi.com/wp-content/uploads/2009/11/steve-jobs.jpg" alt="Steve Jobs is known as a charismatic leader" width="460" height="332" /></p>
<p>Leadership skills become important when project team faces conflicts or changes, or when difficult decisions must be made. In order to lead a team a project manager must gain respect and appreciation. Without authority project managers does not have much chances to survive in a difficult or pressurized situation. Authority and respect must be earned, and one&#8217;s preferred leadership style plays here an important role.</p>
<p>People have different leadership styles, and different leadership styles work in different situations. Although project manager should select the best matching leadership style to a certain situation, his/her personality contains certain dominating leadership styles. Check the table below and think what is your preferred leadership style? With which behaviors you are doing well and with which behaviors you need to develop? Leadership style includes behavior, communication, attitudes, decision making processes, delegating, etc.</p>
<p>The following table is used in IPMA C certification.</p>
<table border="1">
<tbody>
<tr>
<td><strong>Good behavior</strong></td>
<td><strong>Needs improvement</strong></td>
</tr>
<tr>
<td>Delegates and trusts others, provides coaching and training.</td>
<td>Does not delegate and does not provide coaching.</td>
</tr>
<tr>
<td>Has a vision and communicates it clearly, and is on his/her way to reach goals</td>
<td>Can be selfish,  changes direction easily, has no vision, and does not support ideas.</td>
</tr>
<tr>
<td>Has a natural authority, people listen to him/her, and they trust on him/her.</td>
<td>Brings always his/her own viewpoints, people are suspicious on him/her.</td>
</tr>
<tr>
<td>Delegates work packages with SMART-technique (Specific, Measurable, Achievable, Realistic, Time-bound) to team members who have the needed skills to do it.</td>
<td>Does not apply SMART-technique in leadership. Instead uses &#8220;command and control&#8221; to limit empowerment.</td>
</tr>
<tr>
<td>Is a skillful negotiator.</td>
<td>Is not able to solve conflicts.</td>
</tr>
<tr>
<td>Combines power and charisma.</td>
<td>Looks weak and diminutive</td>
</tr>
<tr>
<td>Encourages and makes people proud to be working with him/her.</td>
<td>People do not like his/her personality.</td>
</tr>
<tr>
<td>Rewards team members.</td>
<td>Does not reward team members.</td>
</tr>
<tr>
<td>Takes the overall responsibility, and delegates in fair way.</td>
<td>Does not take responsibility, and forwards all responsibility to team members.</td>
</tr>
<tr>
<td>Makes sure project goals are understood, and keeps skeptics away from interfering the team.</td>
<td>Blames team members and allows external pressure to change project goals and time schedule.</td>
</tr>
<tr>
<td>Controls team members in a enhancing way, keeps order and provides time for communication.</td>
<td>Does not have clear understanding of control mechanisms, blames lack of time, and avoids discussion.</td>
</tr>
<tr>
<td>Commits team members to decision making or has a clear right to make decisions by him/herself.</td>
<td>Makes all decisions by him/herself and does not communicate decisions to team members.</td>
</tr>
<tr>
<td>Is a good example of leadership and enjoys the trust of stakeholders.</td>
<td>Others do not accept his/her behavior and therefore does not enjoy their trust.</td>
</tr>
<tr>
<td>Keeps calm during crisis and avoids panic.</td>
<td>Loses self-control and gets into panic.</td>
</tr>
</tbody>
</table>
<p>Looks scary? Don&#8217;t worry, nobody is perfect. We all can find ourselves in both sides, although everybody&#8217;s wish is to stay more on the right side. It is important for a project manager to recognize own preferred leadership style and weaknesses, and by that start improving.</p>
]]></content:encoded>
			<wfw:commentRss>http://markopyhajarvi.com/2009/11/10/what-is-your-preferred-leadership-style/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Five Practices to Improve Software Quality</title>
		<link>http://markopyhajarvi.com/2009/10/20/five-practices-to-improve-software-quality/</link>
		<comments>http://markopyhajarvi.com/2009/10/20/five-practices-to-improve-software-quality/#comments</comments>
		<pubDate>Tue, 20 Oct 2009 20:27:36 +0000</pubDate>
		<dc:creator>Marko Pyhajarvi</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Acceptance Tests]]></category>
		<category><![CDATA[Continuous Integration]]></category>
		<category><![CDATA[Quality]]></category>
		<category><![CDATA[Refactoring]]></category>
		<category><![CDATA[Regression Tests]]></category>
		<category><![CDATA[Software Development]]></category>
		<category><![CDATA[Software Testing]]></category>
		<category><![CDATA[Test Driven Development]]></category>
		<category><![CDATA[Test Driven Requirements]]></category>
		<category><![CDATA[Unit Tests]]></category>

		<guid isPermaLink="false">http://markopyhajarvi.com/?p=158</guid>
		<description><![CDATA[Software quality depends on various things, but these five practices help to improve software quality in all kinds of projects. Read more to learn how to get rid off defects and reach higher software quality level.]]></description>
			<content:encoded><![CDATA[<p>Some might say that discussing about software quality and software development practices in my project management blog does not make sense, but I believe it really makes sense, because project manager is a key person to get commitment from management in order to apply the following practices in projects.</p>
<p style="text-align: center;"><img class="alignnone size-full wp-image-159" title="You can improve software quality with several different practices" src="http://markopyhajarvi.com/wp-content/uploads/2009/10/quality.jpg" alt="You can improve software quality with several different practices" width="550" height="554" /></p>
<p>I have seen similar mistakes repeating in many projects, and one of those is the lack of continuous integration and testing. A while ago I discussed <a href="http://markopyhajarvi.com/2009/10/07/problem-with-late-integration-and-test/" target="_self">about the problem of late integration and tests</a>, and actually these following practices help removing the problem. So, if you think you are having quality problems in your project, consider utilizing these practices.</p>
<h1>Test Driven Requirements</h1>
<p>Tet Driven Requirements is a practice that calls for the customer to provide requirements in an unambiguous format, such as acceptance tests. This not a one-time practice, but repeated in the beginning of each iteration or sprint. The benefit of Test Driven Requirements is that it drives the system architecture to right direction. Unlike waterfall processes it also helps focusing on the most important in the iteration or sprint, because developers build only what is required.</p>
<p>In order to get Test Driven Requirements happen you need customer representative in your project team, and naturally he/she must be willing and competent enough to develop Test Driven Requirements.</p>
<h1>Test Driven Development</h1>
<p>Test Driven Development is much like the previous practice, but the focus in this case is in creation of automated developer tests. The basic idea is to first write a test case  for a requirement and then implement the requirement. In XP a test case is understood as a requirements, but many people are still used to differentiate requirements and test cases.</p>
<p>Tehe benefit of Test Driven Development is that it produces loosely-coupled designs which are easy to maintain, reduces defect counts and enables building only what is needed.</p>
<p>It is not easy to get your team practicing Test Driven Development if they have never done it before. You are quickly faced with high resistance because so many developers are strongly used to go straight into coding phase. It is best to have an experienced Test Driven Development mentor or consultant to help applying Test Driven Development. If you succeed, you definitely see the results. Test Driven Development is something I always emphasize because I have seen it pays back.</p>
<h1>Continuous Refactoring</h1>
<p>Refactoring could be understood like &#8220;cleaning up&#8221; the code but not totally redesigning. Refactoring changes the structure of the code and aims in better design. Continuous refactoring during iterations or sprints leads to incremental improvements of the products, which again leads to higher quality. Without continuous refactoring the design can degrade over time, which usually leads to difficulties in code maintenance and fixes.</p>
<p>Refactoring should be done in every iteration of sprint before checking in to version control. Project manager should arrange time for continuous refactoring by emphasizing the meaning and importance of refactoring from quality perspective.</p>
<h1>Automated Unit Regression Tests</h1>
<p>Unit tests are pieces of code that validate implementation, and in most cases unit tests are automated. Unit tests are done by developers, and a set of unit tests form so called unit level regression test suite. This regression test suite is automatically or manually executed right after an automated or manual build process has completed.</p>
<p>One of the biggest benefits of Automated Unit Regression Tests is that bugs are found very early during development. Another great benefit of (any) regression test suite is that team can verify that latest changes did not break existing functionality. Certainly I have to point out that no test suite is able to verify 100%, so by building, maintaining and executing Unit Regression Test suite team can lower the risk of serious defects in the end of a project.</p>
<p>It is important to notice that building an Automated Unit Regression Test suite takes time and requires discipline. Project manager should emphasize the importance of unit tests and encourage team members to keep on building the test suite.</p>
<h1>Automated Acceptance Tests</h1>
<p>Automate Acceptance Tests are written in the beginning of the iretation or sprint. These tests basically answer the question &#8220;What will this requirement look like when it has been implemented?&#8221;. Execution of the test case typically fails several times during development, but when it passes, in theory no more development is needed.</p>
<p>Just like the automated unit tests, also Automated Acceptance tests are gathered into a regression test suite. They provide similar benefits, such as early defect detection and higher quality. The difference is that Automated Acceptance tests are built on different level where focus is different from unit level tests.</p>
]]></content:encoded>
			<wfw:commentRss>http://markopyhajarvi.com/2009/10/20/five-practices-to-improve-software-quality/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Rejection-Then-Retreat or Get What You Need</title>
		<link>http://markopyhajarvi.com/2009/10/11/rejection-then-retreat-or-get-what-you-need/</link>
		<comments>http://markopyhajarvi.com/2009/10/11/rejection-then-retreat-or-get-what-you-need/#comments</comments>
		<pubDate>Sun, 11 Oct 2009 08:05:54 +0000</pubDate>
		<dc:creator>Marko Pyhajarvi</dc:creator>
				<category><![CDATA[ProjectManagement]]></category>
		<category><![CDATA[Time Management]]></category>
		<category><![CDATA[Persuasion]]></category>
		<category><![CDATA[Planning]]></category>
		<category><![CDATA[Project Management]]></category>
		<category><![CDATA[Rejection-Then-Retreat]]></category>
		<category><![CDATA[Resource Estimations]]></category>
		<category><![CDATA[Robert B. Cialdini]]></category>

		<guid isPermaLink="false">http://markopyhajarvi.com/?p=148</guid>
		<description><![CDATA[How can you make sure that you get enough resources to your project? Should you use an optimal plan or a plan with risk buffer? How about asking for extremely much an finally getting what you need? This is called "rejection-then retreat" and it is based on science of persuasion.]]></description>
			<content:encoded><![CDATA[<p>In his bestseller book, <a href="http://www.amazon.com/gp/product/0205609996?ie=UTF8&amp;tag=thlada-20&amp;linkCode=as2&amp;camp=1789&amp;creative=390957&amp;creativeASIN=0205609996" target="_blank">Influence: Science and Practice</a>, doctor Robert B. Cialdini describes dozens of valuable persuasion tactics in detail. Mr. Cialdini is probably the best known thought leader in the field of persuasion, and together with his science team he has studied a number of powerful tactics.</p>
<p>One of the persuasion tactics Robert B. Cialdini describes is &#8220;<strong>rejection-the-retreat</strong>&#8220;, which shortly means &#8220;ask extremely much and finally receive what you really need&#8221;. Although most of the persuasion tactics are used in marketing and sales, can some of them be applied also in project management. I believe &#8220;rejection-then-retreat&#8221; tactic fits perfectly well in the toolbox of a project manager.</p>
<h1>Estimate what you need and then ask a lot more</h1>
<p>I used to plan my projects in optimum way, and after several missed deadlines and milestones I had to figure out a better tactic. I started using a risk buffer. I multiplied all my time estimates by two and later by three, but soon I realized it does not make sense because also the non-risky tasks are multiplied. Next I tried to multiply only the risky ones, but my plan became a chaos..</p>
<p>Few years ago I had a subcontractor who by accident told me that they multiply all their optimal time schedules by seven. At that moment I understood why they had been so expensive. Also I realized that it was risky for them to work with us..</p>
<p>So, why am I talking about time estimates in relation to &#8220;rejection-then-retreat&#8221;? There are similarities. With a project plan (talking only about time schedule) I ask resources from line management. I know big up-front plans and milestones do not exist in agile projects, but in traditional &#8220;old fashioned&#8221; industries such as factory automation this kind of plans and milestones are an every day life. So when I go and ask for resources from lines management, I must show my plan with time and resource estimates.</p>
<p>If I show my optimal plan, I most probably get 80% of the resources I need, but sometimes even 100%. Unfortunately software projects are impossible to predict and plan 100%, so most probably my optimal plan fails. Therefore I need to ask more than I need in order to get what I actually need, and by adding this buffer to my project plan I can do this. Does this make sense? Well, If your project is successful after resourcing like this, then I would say yes. Now the trick is to ask a lot more than needed in order to get what is actually needed. All right, but what is the theory behind this?</p>
<p>Let&#8217;s see what Mr. Cialdini says.</p>
<p><em>Suppose you want me to agree to a certain request. One way to increase the chances that I will comply is first to make a larger request of me, one that I will most likely turn down. Then, after I have refused, you make the smaller request that you were really interested in all along. Provided that you structured your request skillfully, I should view your second request as a concession to me and should feel inclined to respond with a concession of my own &#8211; compliance with your second request</em>.</p>
<h2>A true story of rejection from Calvin and Hobbes</h2>
<p>Calvin: <em>Mom, can I set fire to my bed mattress?</em></p>
<p>Mom: <em>No, Calvin</em>.</p>
<p>Calvin: <em>Can I ride my tricycle on the roof?</em></p>
<p>Mom: <em>No, Calvin</em>.</p>
<p>Calvin: <em>Then can I have a cookie?</em></p>
<p>Mom: <em>No, Calvin</em>.</p>
<p>Calvin: <em>She&#8217;s on to me</em>.</p>
<p>Shortly said, plan and estimate your resource needs first. Add some risk buffer as you know optimal plans never work. Then multiply your plan by five or what ever figure you see the best. Next walk to you manager&#8217;s room and proudly present your plan and resource needs. You most probably will drive him/her nuts, and your request will most probably get rejected. Then make your concession and come up with smaller request that is closer to your real needs. Now you should get what you need. Walk away and be happy.</p>
<p><em>This is 50% serious, 50% joke. You know what I mean.</em></p>
]]></content:encoded>
			<wfw:commentRss>http://markopyhajarvi.com/2009/10/11/rejection-then-retreat-or-get-what-you-need/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Problem With Late Integration and Test</title>
		<link>http://markopyhajarvi.com/2009/10/07/problem-with-late-integration-and-test/</link>
		<comments>http://markopyhajarvi.com/2009/10/07/problem-with-late-integration-and-test/#comments</comments>
		<pubDate>Wed, 07 Oct 2009 19:35:41 +0000</pubDate>
		<dc:creator>Marko Pyhajarvi</dc:creator>
				<category><![CDATA[ProjectManagement]]></category>
		<category><![CDATA[Integration]]></category>
		<category><![CDATA[Project Plan]]></category>
		<category><![CDATA[Test]]></category>
		<category><![CDATA[Waterfall]]></category>

		<guid isPermaLink="false">http://markopyhajarvi.com/?p=140</guid>
		<description><![CDATA[Waterfall processes typically define integration and system tests in the end of project, which causes some challenges. So, what is the problem with late integration and test?]]></description>
			<content:encoded><![CDATA[<p>Although many thought leaders and researchers have doomed so called waterfall model, it still goes strong. I have worked with many companies, and most of them apply waterfall model in some form. I won&#8217;t discuss about the reasons for applying waterfall model in this blog post, but I point out one important problem related to waterfall approach, which is the <strong>problem with late integration and test</strong>.</p>
<p>Imagine a 1-2 years long project with huge up-front specification phase, loooong development phase, and finally a busy integration and system test phase. All this is planned on MS Project chart, requirements are frozen, hundreds of pages long specs have been written and signed off long time ago, and so on. This is a classic project managed with waterfall model.</p>
<p>Management and project leader have agreed that development team creates a system defined in the specs, and all stakeholders are waiting for the delivery. People change their thoughts of things by sending email. Sometimes they talk about the project in front of coffee machine, but most of the discussion is done in emails. Time goes on, and one day project manager realizes that he/she is in trouble. Time has come. System must be integrated and tested before delivery.</p>
<p>&#8220;<em>Houston, we have a problem</em>&#8220;.</p>
<h1>Why late integration and test can cause a big trouble?</h1>
<p>Once a colleague told me &#8220;<em>in my next project I will make sure ALL requirements are found, and after that I will drop them one by one to a huge MS project plan in order to make sure nothing goes wrong and nothing gets forgotten in my project</em>&#8220;. I replied, &#8220;<em>you know what? It won&#8217;t work. You won&#8217;t succeed. Just welcome change and use adaptive planning</em>&#8220;. He didn&#8217;t understand, and kept on repeating his idea..</p>
<p>Shortly said, the problems have been there but nobody has noticed them. Integration activities finally force the team to face the problems that should have been fixed long time before. For example during integration huge amounts of interface problems show up, and much refactoring and recoding is needed. There are fundamental misunderstandings, wrong assumptions, communication gaps, blaming and a chaos. Project runs in crisis mode and steering group takes the lead. What&#8217;s the problem?</p>
<p>The problem is that applying waterfall model to software project, which is <a href="http://markopyhajarvi.com/2009/10/04/software-development-new-product-development/" target="_self">always new product development</a>, does not work. Software projects are inventive, and because of that predictive planning is not possible. In big software projects things change, and therefore creating big up-front specs and plans fail. Such predictive planning doesn&#8217;t welcome change, and it is rather unrealistic and risky.</p>
<p>When predictive planning and waterfall model is used, integration and test is usually planned in the end of the project. Software developers need feedback from testing in order to clarify requirements and develop code that fulfills the requirements. If integration and testing is done after months of coding, it is obvious that problems show up, and usually there is no time to fix the problems. For some reason waterfall based plans typically include delivery right after system tests.</p>
<h1>How the problem could be fixed?</h1>
<p>Iterative and agile processes apply adaptive and continuous planning. After initial planning and staging phase team starts 2-4 weeks long sprints that include continuous integration and tests. In fact XP process requires daily builds and automated regression tests, which is very much different from waterfall approach.</p>
<p>By combining agile or iterative process and <a href="http://markopyhajarvi.com/2009/10/05/when-to-use-risk-driven-or-client-driven-project-planning/" target="_blank">risk-driven project planning</a> we can pretty well avoid the problem of late integration and test.</p>
<p>How do you see this? Do you different experiences or thoughts about the problem of late integration and test?</p>
<p>Photo: <a href="http://www.flickr.com/photos/certified_su/" target="_blank">certified_su</a></p>
]]></content:encoded>
			<wfw:commentRss>http://markopyhajarvi.com/2009/10/07/problem-with-late-integration-and-test/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Inglorious Scrumnerds are Here</title>
		<link>http://markopyhajarvi.com/2009/10/06/inglorious-scrumnerds-are-here/</link>
		<comments>http://markopyhajarvi.com/2009/10/06/inglorious-scrumnerds-are-here/#comments</comments>
		<pubDate>Tue, 06 Oct 2009 21:50:11 +0000</pubDate>
		<dc:creator>Marko Pyhajarvi</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[Miscellaneous]]></category>
		<category><![CDATA[Scrum]]></category>
		<category><![CDATA[Agile Methods]]></category>

		<guid isPermaLink="false">http://markopyhajarvi.com/?p=135</guid>
		<description><![CDATA[There's a big project starting and deadlines are tight. Who do you call? The Inglorious Scrumnerds, of course. Can you deliver?]]></description>
			<content:encoded><![CDATA[<p>It seems that inglorious scrumnerds are here to stay. Who? Check the trailer below.</p>
<p style="text-align: center;"><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="560" height="340" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube.com/v/yeJ19IuvRpA&amp;hl=en&amp;fs=1&amp;" /><param name="allowfullscreen" value="true" /><embed type="application/x-shockwave-flash" width="560" height="340" src="http://www.youtube.com/v/yeJ19IuvRpA&amp;hl=en&amp;fs=1&amp;" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
]]></content:encoded>
			<wfw:commentRss>http://markopyhajarvi.com/2009/10/06/inglorious-scrumnerds-are-here/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>When to Use Risk-Driven or Client-Driven Project Planning?</title>
		<link>http://markopyhajarvi.com/2009/10/05/when-to-use-risk-driven-or-client-driven-project-planning/</link>
		<comments>http://markopyhajarvi.com/2009/10/05/when-to-use-risk-driven-or-client-driven-project-planning/#comments</comments>
		<pubDate>Mon, 05 Oct 2009 20:45:46 +0000</pubDate>
		<dc:creator>Marko Pyhajarvi</dc:creator>
				<category><![CDATA[ProjectManagement]]></category>
		<category><![CDATA[Client]]></category>
		<category><![CDATA[Customer]]></category>
		<category><![CDATA[Iteration Planning]]></category>
		<category><![CDATA[Project Planning]]></category>
		<category><![CDATA[Risk Management]]></category>
		<category><![CDATA[Sprint Planning]]></category>

		<guid isPermaLink="false">http://markopyhajarvi.com/?p=127</guid>
		<description><![CDATA[What are risk-driven and client-driven project planning approaches and when should you use one, and how about using a combination of both? In this article I provide couple of examples of using risk-driven and client-driven project planning approaches.]]></description>
			<content:encoded><![CDATA[<p>As we know, projects need to be planned on level that satisfies both project manager and customer or project owner. There are a number of different project management methods and frameworks, and because of that there are also a number of different ways to plan projects. Question is &#8220;what should I emphasize in project planning?&#8221;. Agile and iterative methods suggest either risk-driven or client-driven approach, or a combination of both. I prefer using the combination of risk-driven and client-driven project planning, but let&#8217;s first take a look at those two approaches.</p>
<h1>Risk-driven project planning &#8211; Mitigating risks first</h1>
<p>In risk-driven project planning we focus on working the most risky items first. In sprint planning or iteration planning sessions team identifies the most risky requirements or the most difficult architectural solutions, and prioritizes them by voting. Highest priority tasks are dropped into sprint one, next ones to sprint two, etc. After the planning session project manager should have a release plan with highest risk items in the first sprints.</p>
<p>The idea behind risk-driven planning is to make sure the most difficult or highest risk requirements get done as soon as possible. There can be many reasons to use risk-driven approach in project management, but one example could be launching a new weather forecasting system with recently developed algorithm. In order to capture market share and attention development team focuses on implementing and testing the risky algorithm first instead of fancy and intuitive user interface.</p>
<h1>Client-driven project planning &#8211; Highest business value first</h1>
<p>In client-driven project planning we let client sit behind the steering wheel. In practice the client prioritizes requirements and decides the order in which they get implemented. Whatever the reasons are, client gets what they perceive as the highest business value, as soon as possible. In software development projects requirements tend to change, so in agile and iterative projects client-driven project planning gives client several chances to redefine their priorities.</p>
<p>The idea behind client-driven planning is to make sure the highest priority requirements from client&#8217;s perspective get done as soon as possible. Again there can be many reasons to use client-driven approach, but for example in case of the weather forecasting system customer knows that market is especially interested in fancy and intuitive user interface, it makes sense to implement requirements in the order client wants.</p>
<h1>Best solution is to use both risk-driven and client-driven project planning</h1>
<p>Although compromises do not always work, I believe a combination of risk-driven and client-driven project planning is the best solution in most cases. In pure risk-driven approach meaningful market requirements might not be noticed because development team does not understand client&#8217;s market. Also in pure client-driven approach it is possible to miss important requirements from architectural or design point of view. Therefore I recommend having both team and client representative in project, sprint or iteration planning meetings in order to plan together with risk-driven and client-driven approaches in mind.</p>
<p>Photo: <a href="http://www.flickr.com/photos/perhapstoopink/" target="_blank">perhapstoopink</a></p>
]]></content:encoded>
			<wfw:commentRss>http://markopyhajarvi.com/2009/10/05/when-to-use-risk-driven-or-client-driven-project-planning/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Software Development == New Product Development</title>
		<link>http://markopyhajarvi.com/2009/10/04/software-development-new-product-development/</link>
		<comments>http://markopyhajarvi.com/2009/10/04/software-development-new-product-development/#comments</comments>
		<pubDate>Sun, 04 Oct 2009 11:39:34 +0000</pubDate>
		<dc:creator>Marko Pyhajarvi</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[ProjectManagement]]></category>
		<category><![CDATA[Agility]]></category>
		<category><![CDATA[Manufacturing]]></category>
		<category><![CDATA[Processes]]></category>
		<category><![CDATA[Waterfall Process]]></category>

		<guid isPermaLink="false">http://markopyhajarvi.com/?p=123</guid>
		<description><![CDATA[Why some companies keep on leading their software development projects with "waterfall approach"? There are probably many reasons, but I guess one reason is related to the mismatch between predictable manufacturing and new product development.]]></description>
			<content:encoded><![CDATA[<p>It is interesting to notice that some companies develop software with methods from 1980&#8217;s. I am referring to so called waterfall approach. Even though everybody says &#8220;waterfall doesn&#8217;t work&#8221;, I see companies doing it. Why? Why on Earth they do something that doesn&#8217;t work well?</p>
<p>I have no definite answer to my question above, but I believe the reason is that in many technology companies management compares software development to assembly lines or factory work. Imagine you have a car factory and your job is to plan of project of creating 500 new cars. You have a long list of various activities needed in order to build a car. Those activities include assembling components that have been developed and tested many times before. All you need to do is to pick up the needed activities, put them on time line and calculate how much time is needed to complete the job. Mass manufacturing is predictable manufacturing.</p>
<p>Software development is far from that example. Even though there are components also in software development, but unlike car factories software projects always include new design and coding or tailoring of old software. Therefore software development is always new product development, and because of that software development projects are very difficult to estimate. Software projects are inventive projects that are difficult to predict.</p>
<p>In predictable manufacturing it is possible to first complete specifications and then build the product. In new product development it is rarely possible to create unchanging and detailed specifications. In predictable manufacturing one can estimate effort and cost near the start, while in new product development estimations can be done step by step as empirical data emerges.In predictable manufacturing it is possible to identify, define and order the needed activities, but in new product development also this must be done in steps as feedback is gathered from build cycles.</p>
<p>In addition to the nature of software development, we must take into account the added complexity from third party components that can sometimes be even more buggy that our own product.</p>
<p>Based on above, I believe many companies keep on leading their software projects with &#8220;waterfall style&#8221;. Instead of  realizing this mismatch and changing their development process they keep on requiring big up-front specs, and detailed plans and estimates. Even <a href="http://markopyhajarvi.com/2009/09/26/project-charter-gives-you-mandate-to-lead-your-project/" target="_self">usage of project charter</a> can feed this mismatch, although it absolutely should not.</p>
<p>We should understand that building software always includes high change rates, and therefore applying &#8220;waterfall style&#8221; predictable manufacturing process is not beneficial. One solution <a href="http://markopyhajarvi.com/2009/10/02/9-principles-for-agile-project-manager/" target="_self">I recommend is agile project management</a>.</p>
<p>Photo <a href="http://www.flickr.com/photos/jiazi/" target="_blank">Jazi</a></p>
]]></content:encoded>
			<wfw:commentRss>http://markopyhajarvi.com/2009/10/04/software-development-new-product-development/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Project Management Links #1</title>
		<link>http://markopyhajarvi.com/2009/10/03/project-management-links-1/</link>
		<comments>http://markopyhajarvi.com/2009/10/03/project-management-links-1/#comments</comments>
		<pubDate>Sat, 03 Oct 2009 13:03:25 +0000</pubDate>
		<dc:creator>Marko Pyhajarvi</dc:creator>
				<category><![CDATA[Documentation]]></category>
		<category><![CDATA[Links]]></category>
		<category><![CDATA[ProjectManagement]]></category>

		<guid isPermaLink="false">http://markopyhajarvi.com/?p=105</guid>
		<description><![CDATA[It is Saturday morning and I'm spending some quality time with my youngest son. While he is still sleeping, I discovered few interesting project management articles. Check out these 10+1 articles of professional project management.]]></description>
			<content:encoded><![CDATA[<p>There are quite many great project management blogs around. I follow mainly few of them, but every now and then I find good articles from their RSS feeds. Here are 10 good articles to read for this Saturday morning.</p>
<p>1# <a href="http://pmcrunch.com/soft_skills/stakeholders-are-like-shareholders/" target="_blank">Stakeholders are like shareholders</a></p>
<p>2# <a href="http://project-and-program-management.com/?p=516#more-516" target="_blank">PMP exam &#8211; 10 frequently asked questions</a></p>
<p>3# <a href="http://agileguru.blogspot.com/2008/12/team-building-tips-for-project-managers.html" target="_blank">Team building tips for project managers</a></p>
<p>4# <a href="http://blog.brodzinski.com/2009/09/value-of-lessons-learned-art-of-good.html" target="_blank">The value of lessons learned</a></p>
<p>5# <a href="http://agilediary.wordpress.com/2009/08/19/when-should-you-implement-scrum-or-agile/" target="_blank">When should you implement Scrum or agile?</a></p>
<p>6# <a href="http://www.pm4girls.elizabeth-harrin.com/2009/09/interview-with-chuck-pearson-ceo-of-projecturf/" target="_blank">Interview with Chuck Pearson</a></p>
<p>7# <a href="http://pm411.org/2009/09/29/podcast-episode-047-schedule-killers-bad-multitasking/" target="_blank">Podcast: Schedule killers &#8211; Bad multitasking</a></p>
<p>8# <a href="http://www.prince2blog.net/2009/09/brief-introduction-to-prince2_30.html" target="_blank">A brief introduction to PRINCE2</a></p>
<p>9# <a href="http://plamenbalkanski.blogspot.com/2009/06/do-something-special.html" target="_blank">Do something S.P.E.C.I.A.L.!</a></p>
<p>10# <a href="http://scalingsoftwareagility.wordpress.com/2009/08/17/new-whitepaper-the-big-picture-of-enterprise-agility/" target="_blank">The big picture of enterprise agility</a></p>
<p>Bonus link: <a href="http://blog.mountaingoatsoftware.com/ssssh-agile-is-all-about-micromanaging" target="_blank">Ssssh&#8230; Agile is all about micromanaging</a></p>
<p><em>Photo: <a href="http://www.flickr.com/photos/tnwanderer/" target="_blank">Tennessee Wanderer</a></em></p>
]]></content:encoded>
			<wfw:commentRss>http://markopyhajarvi.com/2009/10/03/project-management-links-1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>9 Principles for Agile Project Manager</title>
		<link>http://markopyhajarvi.com/2009/10/02/9-principles-for-agile-project-manager/</link>
		<comments>http://markopyhajarvi.com/2009/10/02/9-principles-for-agile-project-manager/#comments</comments>
		<pubDate>Fri, 02 Oct 2009 09:57:23 +0000</pubDate>
		<dc:creator>Marko Pyhajarvi</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[ProjectManagement]]></category>
		<category><![CDATA[Agile Methods]]></category>
		<category><![CDATA[Agile Processes]]></category>
		<category><![CDATA[Agile Projet Manager]]></category>

		<guid isPermaLink="false">http://markopyhajarvi.com/?p=95</guid>
		<description><![CDATA[What agile project management actually means? What an agile project manager does in practice? Jim Highsmith has defined nine principles for agile project manager. In this aricle we go through these principles one by one.]]></description>
			<content:encoded><![CDATA[<p><strong>Agile Project management</strong> is often connected with things such as</p>
<ul>
<li>daily stand-up meetings</li>
<li>frequent communication</li>
<li>self-organizing teams</li>
<li>short iterations</li>
<li>etc.</li>
</ul>
<p>There are many ways to describe agile project management, but what it actually is? What agile project manager does in practice? Jim Highsmith (founder of Agile Alliance) has summarized nice <strong>principles for agile project manager</strong>.</p>
<ol>
<li>Deliver something useful to the client</li>
<li>cultivate committed stakeholders</li>
<li>Employ a leadership-collaboration style</li>
<li>Build competent, collaborative teams</li>
<li>Enable team decision making</li>
<li>Use short timeboxed iterations to quickly deliver features</li>
<li>Encourage adaptability</li>
<li>Champion technical excellence</li>
<li>Focus on delivery activities, not process-compliance activities</li>
</ol>
<p>Mr. Highsmith&#8217;s Nine principles for agile project manager pretty well describe what an agile project manager does in practice, but let&#8217;s take a closer look on each principle.</p>
<h2>Deliver something useful to the client</h2>
<p>As an agile project manager, your job is to provide value to customer. In order to do that, you need to understand what customer values. Some folks simplify this by stating &#8220;focus on coding, forget documentation&#8221;. Although in most cases customer values a functioning software, some customer actually value documentation. Focus on providing what customer values. If it is a functioning software, lead your team to create such instead of focusing on planning and documentation, for example.</p>
<h2>Cultivate committed stakeholders</h2>
<p>Are you frustrated with &#8220;lazy&#8221; stakeholders who only seem to focus on sending emails? If yes, cultivate them. Your job is to cultivate or activate stakeholders. Take them with you when planning your sprint, assign them tasks, require, ask and demand. Keep them alive and kicking! In most cases you just need to stand up, walk to the person, show what you need from him/her, set a deadline together, and follow up his/her progress.</p>
<h2>Employ a leadership-collaboration style</h2>
<p>Agile project managers don&#8217;t give orders. Instead they facilitate, coach, provide resources, maintain vision, promote agile principles, remove obstacles, keep skeptics away, etc. If you have never acted as an agile project manager, you might need some time and few projects to learn to your new role. Collaborative leadership differs much from traditional &#8220;leader-employee&#8221; style.</p>
<h2>Build competent, collaborative teams</h2>
<p>Agile project teams are self-organizing, and self-organizing teams require more from team members than a traditional &#8220;leader says what to do&#8221;-team. You need competent, active, adaptive and committed team members, and one of the best ways to get such a team is to continuously build the competence and collaboration of team members. There are many ways to do this. Anyhow, your goal is to have a team of very competent people who actively collaborate with each other and possible external stakeholders.</p>
<h2>Enable team decision making</h2>
<p>It might be surprising for many, but agile project managers don&#8217;t actually set <a href="http://markopyhajarvi.com/2009/09/25/the-meaning-of-defining-roles-responsibilities-in-projects/" target="_self">rules and responsibilities</a> and give orders. Instead the self-organizing team itself makes decisions within the boundaries set by the project manager. As a project manager your ob is to facilitate, coach, motivate and remove obstacles. Anyhow, I must say point out that this kind of set up does not usually exist, because of many reasons. One good reason is that many times project manager understands the agile world, but line management and team does not. In that kind of situation it is very difficult to create team based decision making, so some kind of &#8220;middle-level&#8221; solution could work better.</p>
<h2>Use short timeboxed iterations to quickly deliver features</h2>
<p>Scrum sprints are usually timeboxed to 2 weeks or 4 weeks, and in the end of a sprint product is delivered. Sprint length doesn&#8217;t always need to be the same, but the important point is to keep sprints or iterations truly timeboxed. This means no time schedule slippage. If team cannot get everything done, sprint or iteration scope can be changed, but time schedule not. Timeboxed approach forces to faster and more effective working, which again leads to shorter projects.</p>
<h2>Encourage adaptability</h2>
<p>Software development is always new product development (I&#8217;ll explain in later articles). Software development team sails in the sea of constant changes, while project manager stands behind the steering helm (or steering wheel). Software projects evolve, so don&#8217;t even try to fight against the nature of software projects. Instead encourage adaptability, which in practice means reactive planning, adapting to new and changing requirements, quick decision making, etc. Talk about the nature of software projects, and encourage people to adapt with changing environment.</p>
<h2>Champion technical excellence</h2>
<p>In most projects you need gurus who master certain technical skills, frameworks, tools, etc. Encourage people to use part of their time with learning, testing new techniques, collaborating and sharing their knowledge, planning their career as technical experts, etc. If you manage to create a positive and continues spiral of learning, you are sailing good waters.</p>
<h2>Focus on delivery activities, not process-compliance activities</h2>
<p>Have you seen MS Project charts that clearly follow company processes? If yes, have you ever seen MS Project charts that clearly follow company processes AND are always up to date? I have not. Therefore I strongly recommend focusing on delivery activities instead of maintaining your MS Project plan and trying to lead your team by giving tasks or work orders. Together with your team, sit down twice a week to brainstorm activities that are needed in order to deliver the product. Maintain those activities in your Scrum backlog and follow the progress daily. Ask your team, &#8220;<em>is this all we need to do in order to deliver by the end of the sprint, or are there other activities that we haven&#8217;t recognized yet?</em>&#8220;.</p>
]]></content:encoded>
			<wfw:commentRss>http://markopyhajarvi.com/2009/10/02/9-principles-for-agile-project-manager/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>So You Have Adopted Iterative Processes into Your Project &#8211; Have You?</title>
		<link>http://markopyhajarvi.com/2009/10/01/so-you-have-adopted-iterative-processes-into-your-project-have-you/</link>
		<comments>http://markopyhajarvi.com/2009/10/01/so-you-have-adopted-iterative-processes-into-your-project-have-you/#comments</comments>
		<pubDate>Thu, 01 Oct 2009 20:30:25 +0000</pubDate>
		<dc:creator>Marko Pyhajarvi</dc:creator>
				<category><![CDATA[Literature]]></category>
		<category><![CDATA[Iterative Process]]></category>
		<category><![CDATA[Process Models]]></category>
		<category><![CDATA[Project Leading]]></category>
		<category><![CDATA[ProjectManagement]]></category>
		<category><![CDATA[Waterfall Process]]></category>

		<guid isPermaLink="false">http://markopyhajarvi.com/?p=87</guid>
		<description><![CDATA[It is amazing how many companies talk about their iterative approach in project management, while in practice projects are managed with waterfall process. Read more and learn why software development projects should not be managed with waterfall process.]]></description>
			<content:encoded><![CDATA[<p>Does this sound familiar?</p>
<p>&#8220;<em>No, we don&#8217;t anymore run our projects with waterfall process. Actually we apply iterative methods, such as RUP (Rational Unified Process) and Evo (Evolutionary Process). In this current project we have been analyzing our requirements for the last few weeks, and as soon as our requirements are frozen, we&#8217;ll start our first iteration. Our system test phase is scheduled in six months, so we gotta hurry up..&#8221;</em>.</p>
<p>What is wrong with that typical scenario? I have heard it many times, and I can quickly tell you what is wrong with it, but let&#8217;s think about it a little more.</p>
<h1>Waterfall process was the first step towards structured projects</h1>
<p>The problem with the scenario above is that the person talks about applying iterative processes in project management, but in practice the project is managed in waterfall fashion. You can clearly notice the phases, such as requirements analysis, development and system tests. The person clearly knows something about iterative processes, but still keeps on leading his project with waterfall style.</p>
<p style="text-align: center;"><img class="alignnone size-full wp-image-89" title="Many times iterative projects are managed with waterfall style" src="http://markopyhajarvi.com/wp-content/uploads/2009/10/foto.jpg" alt="Many times iterative projects are managed with waterfall style" width="550" height="186" /></p>
<p>Waterfall process is a sequential process. In its most simple example, waterfall process includes a number of separated phases connected from beginning to the end. Those separated phases are</p>
<ol>
<li>Requirements gathering and analysis</li>
<li>Software architecture and design creation</li>
<li>Implementation (programming)</li>
<li>Integrating and testing, and finally delivery</li>
</ol>
<p>Basically the product should be ready after step four has been completed. Anyhow, it usually does not really work like that. Waterfall process was invented during the ad-hoc style hacking of 1960&#8217;s. It was the first step towards structured software development. I bet introducing waterfall process actually caused more harm than good, because running big projects with waterfall process increases risks and lowers productivity.</p>
<p>The interesting dilemma is that waterfall process is probably used because it is easy to manage, while it is unsuitable for complex projects. You probably did not know that the founder of waterfall process (Winston Royce) has said that waterfall process was only applicable for the most straightforward projects. Software development projects do not belong to that category.</p>
<p>Have you noticed that in waterfall projects difficulties tend to gather to the end of the project? It is the nature of waterfall process to push risky elements toward the end of a project, while iterative methods aim in resolving the hardest and riskiest elements early. Probably one the most annoying thing with waterfall process is the large steps with overwhelming degrees of complexity.</p>
<h1>Iterative projects should not be executed waterfall style</h1>
<p>Although it is clear that iterative processes provide better results in software development, many managers and organizations still require project to develop software in waterfall style. May be the reason is that these managers studied their diplomas during 1970&#8217;s, and they have missed the iterative train long time ago. It is totally understandable.</p>
<p>While waterfall projects contain higher risks, iterative projects contain lower risks. This is due to many reasons, but one reason is that risk-driven iterative projects discover and mitigate risks very early. In iterative projects tasks are continuously prioritized, and because of that the riskiest problems are addressed first.</p>
<p>Iterative processes can be managed with waterfall style, but that does not really make sense. Therefore projects managers leading iterative projects should make sure they really understand how iterative processes work. Leading an iterative project is usually a bit more difficult than leading a waterfall project, even though waterfall projects tend to have serious problems. If you are not familiar with iterative processes, check these books in order to learn more.</p>
<ul>
<li><a href="http://www.amazon.com/gp/product/0321150783?ie=UTF8&amp;tag=thlada-20&amp;linkCode=as2&amp;camp=1789&amp;creative=390957&amp;creativeASIN=0321150783" target="_blank">Mary Poppendiek &#8211; Lean Software Development</a></li>
<li><a href="http://www.amazon.com/gp/product/0321437381?ie=UTF8&amp;tag=thlada-20&amp;linkCode=as2&amp;camp=1789&amp;creative=390957&amp;creativeASIN=0321437381" target="_blank">Mary Poppendiek &#8211; Implementing Lean Software Development: From Concept to Cash</a></li>
<li><a href="http://www.amazon.com/gp/product/0201699699?ie=UTF8&amp;tag=thlada-20&amp;linkCode=as2&amp;camp=1789&amp;creative=390957&amp;creativeASIN=0201699699" target="_blank">Alistair Cockburn &#8211; Agile Software Development</a></li>
</ul>
<p>By the way, whenever someone in your project talks about <em>signing off a requirements specification</em>, or <em>freezing the requirements</em> in order to avoid changes, you know it is time to suggest the person the books listed above.</p>
]]></content:encoded>
			<wfw:commentRss>http://markopyhajarvi.com/2009/10/01/so-you-have-adopted-iterative-processes-into-your-project-have-you/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
