<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-2762098004688358629</id><updated>2011-04-21T15:41:42.037-07:00</updated><category term='Software Testing'/><category term='Requirements Management'/><category term='Team Management'/><category term='SDLC'/><category term='Project Management'/><category term='Risk Management'/><title type='text'>IT Project Management - Best Practices</title><subtitle type='html'>This blog is created to gather simple-to-follow and practical best practices in IT Project Management and Software Engineering. It is rewritten in a concise manner for ease of reading and reference. I ask that reader rationalize and internalize the best practices before adopting any of them.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://projectbestpractices.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2762098004688358629/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://projectbestpractices.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Michael</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>15</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-2762098004688358629.post-4008644711624358815</id><published>2009-03-28T09:00:00.001-07:00</published><updated>2009-03-28T09:01:05.573-07:00</updated><title type='text'>User Centered Design</title><content type='html'>User Centered Design answers questions about users and their tasks and goals, then use the findings to make decisions about development and design. It seeks to answer the following questions:&lt;br /&gt;&lt;br /&gt;    * Who are the users of the document?&lt;br /&gt;    * What are the users’ tasks and goals?&lt;br /&gt;    * What are the users’ experience levels with the document, and documents like it?&lt;br /&gt;    * What functions do the users need from the document?&lt;br /&gt;    * What information might the users need, and in what form do they need it?&lt;br /&gt;    * How do users think the document should work?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2762098004688358629-4008644711624358815?l=projectbestpractices.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://projectbestpractices.blogspot.com/feeds/4008644711624358815/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://projectbestpractices.blogspot.com/2009/03/user-centered-design.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2762098004688358629/posts/default/4008644711624358815'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2762098004688358629/posts/default/4008644711624358815'/><link rel='alternate' type='text/html' href='http://projectbestpractices.blogspot.com/2009/03/user-centered-design.html' title='User Centered Design'/><author><name>Michael</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2762098004688358629.post-5742696387042368478</id><published>2009-03-17T00:18:00.000-07:00</published><updated>2009-03-17T00:22:40.443-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Team Management'/><title type='text'>Developing High Performance Team</title><content type='html'>1. Ensure Team composition matches tasks&lt;br /&gt;&lt;br /&gt;2. Clearly define the project and team purpose&lt;br /&gt;&lt;br /&gt;3. Clearly define team members role, leveraging unique skills and talent&lt;br /&gt;&lt;br /&gt;4. Clearly define team member's responsibility to the team&lt;br /&gt;&lt;br /&gt;5. Create clear guidelines for deliverables&lt;br /&gt;&lt;br /&gt;6. Work as a Team to define team culture and identity&lt;br /&gt;&lt;br /&gt;7. Work as a Team to develop problem solving and conflict resolution guidelines&lt;br /&gt;&lt;br /&gt;8. Create an Environment that fosters respect and courtesy&lt;br /&gt;&lt;br /&gt;9. Recognize individual and group achievements&lt;br /&gt;&lt;br /&gt;10. Manage Team time efficiently&lt;br /&gt;&lt;br /&gt;11. Establish Communications Guideline&lt;br /&gt;&lt;br /&gt;12. Implement Technology to enhance real time communication and collaboration&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2762098004688358629-5742696387042368478?l=projectbestpractices.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://projectbestpractices.blogspot.com/feeds/5742696387042368478/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://projectbestpractices.blogspot.com/2009/03/developing-high-performance-team.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2762098004688358629/posts/default/5742696387042368478'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2762098004688358629/posts/default/5742696387042368478'/><link rel='alternate' type='text/html' href='http://projectbestpractices.blogspot.com/2009/03/developing-high-performance-team.html' title='Developing High Performance Team'/><author><name>Michael</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2762098004688358629.post-7752578989474019329</id><published>2009-03-16T02:21:00.000-07:00</published><updated>2009-03-17T23:21:45.169-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Software Testing'/><title type='text'>Software Test Strategy</title><content type='html'>In this strategy we assume that it's undoable to test everything. From a economic point of view it doesn't even make sense; spending lots of time to parts of a system where the chances of having a bug are low, or even if a bug has been found, where the impact of it will be low. Risk and requirements based testing helps you to determine what to test first, in which sequence, so you spend the time you have to the parts that really matter.&lt;br /&gt;&lt;br /&gt;The strategy starts with a risk analysis to determine the functions (requirements) with the highest risk, and plan your test activities guided by this analysis.&lt;br /&gt;&lt;br /&gt;To help you identify the risks involved in all your requirements, consider the following aspects:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Functions often used by the users&lt;/li&gt;&lt;li&gt;Complex functions&lt;/li&gt;&lt;li&gt;Functions that have a lot of updates or bug fixes&lt;/li&gt;&lt;li&gt;Functions that require high availability&lt;/li&gt;&lt;li&gt;Functions that require a consistent level of performance&lt;/li&gt;&lt;li&gt;Functions that are developed with new tools&lt;/li&gt;&lt;li&gt;Functions that require interfacing with external systems&lt;/li&gt;&lt;li&gt;Functions with requirements with a low level of quality&lt;/li&gt;&lt;li&gt;Functions developed by more programmers at the same time&lt;/li&gt;&lt;li&gt;New functions&lt;/li&gt;&lt;li&gt;Functions developed under extreme time pressure&lt;/li&gt;&lt;li&gt;Functions that are most important to the stakeholders&lt;/li&gt;&lt;li&gt;Functions that reflect a complex business process&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2762098004688358629-7752578989474019329?l=projectbestpractices.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://projectbestpractices.blogspot.com/feeds/7752578989474019329/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://projectbestpractices.blogspot.com/2009/03/software-test-strategy.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2762098004688358629/posts/default/7752578989474019329'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2762098004688358629/posts/default/7752578989474019329'/><link rel='alternate' type='text/html' href='http://projectbestpractices.blogspot.com/2009/03/software-test-strategy.html' title='Software Test Strategy'/><author><name>Michael</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2762098004688358629.post-4810723292904682407</id><published>2009-03-16T01:56:00.000-07:00</published><updated>2009-03-16T02:00:22.908-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Risk Management'/><title type='text'>Risk Checklist</title><content type='html'>1. Stakeholders&lt;br /&gt;&lt;br /&gt;Have you identified all stakeholders?&lt;br /&gt;Have you identified from all groups the leader or spokesman?&lt;br /&gt;Have you ever met the stakeholders?&lt;br /&gt;Do you have information on the background of the stakeholders (history)?&lt;br /&gt;&lt;br /&gt;1.1 Stakeholder's Fears&lt;br /&gt;Do you know what the fears are generally for the type of stakeholders you have (e.g. programmers)?&lt;br /&gt;Do you know what the fears are of the stakeholders per group?&lt;br /&gt;Do you know what the fears are for each individual?&lt;br /&gt;Do you know how this project affects the fears of the stakeholders?&lt;br /&gt;&lt;br /&gt;1.2 Stakeholder's Wishes&lt;br /&gt;Do you know what the wishes are generally for the type of stakeholders you have (e.g. programmers)?&lt;br /&gt;Do you know what the wishes are of the stakeholders per group?&lt;br /&gt;Do you know what the wishes are for each individual?&lt;br /&gt;Do you know how this project affects the wishes of the stakeholders?&lt;br /&gt;&lt;br /&gt;2. Requirements&lt;br /&gt;&lt;br /&gt;2.1 Product&lt;br /&gt;&lt;br /&gt;Are the cause and goal of the project clear to you?&lt;br /&gt;Is the project scope identified and does it include what you can change, what you must change, and what you can't change?&lt;br /&gt;&lt;br /&gt;2.2 Process&lt;br /&gt;&lt;br /&gt;Are the constraints identified (money, time, people)?&lt;br /&gt;Do you have any idea how much room there is to negotiate these constraints?&lt;br /&gt;If there are already estimations, do you know how much you can trust them?&lt;br /&gt;Is the project strategy clear and easy?&lt;br /&gt;Is the project organisation identified? Does every member have added value to the project?&lt;br /&gt;&lt;br /&gt;3 Project management&lt;br /&gt;&lt;br /&gt;Are you able to negotiate?&lt;br /&gt;Are you able to think in win-win situations?&lt;br /&gt;Are you risk averse?&lt;br /&gt;Do you include your own stakes into the process?&lt;br /&gt;Are you able to give the project back in case it smells like a trap?&lt;br /&gt;&lt;br /&gt;2.4 Feedback&lt;br /&gt;&lt;br /&gt;Is everyone aware for the need and use of giving feedback?&lt;br /&gt;Have you any idea how to provide feedback?&lt;br /&gt;Do you really understand the techniques you want to use?&lt;br /&gt;Did you schedule (time, money, people) activities to provide the feedback?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2762098004688358629-4810723292904682407?l=projectbestpractices.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://projectbestpractices.blogspot.com/feeds/4810723292904682407/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://projectbestpractices.blogspot.com/2009/03/risk-checklist.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2762098004688358629/posts/default/4810723292904682407'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2762098004688358629/posts/default/4810723292904682407'/><link rel='alternate' type='text/html' href='http://projectbestpractices.blogspot.com/2009/03/risk-checklist.html' title='Risk Checklist'/><author><name>Michael</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2762098004688358629.post-3561554035791262796</id><published>2009-03-16T00:18:00.001-07:00</published><updated>2009-03-16T01:01:45.131-07:00</updated><title type='text'>10 key principles of Agile Software Development</title><content type='html'>1. Active User Involvement&lt;br /&gt;It is imperative to have a senior and experienced user representative involved throughout. The benefits are:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Requirements are clearly communicated and understood (at a high level) at the outset&lt;/li&gt;&lt;li&gt;Requirements are prioritised appropriately based on the needs of the user and market&lt;/li&gt;&lt;li&gt;Requirements can be clarified on a daily basis with the entire project team, rather than resorting to lengthy documents that aren't read or are misunderstood&lt;/li&gt;&lt;li&gt;Emerging requirements can be factored into the development schedule as appropriate with the impact and trade-off decisions clearly understood&lt;/li&gt;&lt;li&gt;As iterations of the product are delivered, that the product meets user expectations&lt;/li&gt;&lt;li&gt;The product is more intuitive and easy to use&lt;/li&gt;&lt;li&gt;Developers are accountable, sharing progress openly with the user/business every day&lt;/li&gt;&lt;li&gt;The user/business shares responsibility for issues arising in development; it’s not a customer-supplier relationship but a joint team effort&lt;/li&gt;&lt;li&gt;Timely decisions can be made, about features, priorities, issues, and when the product is ready&lt;/li&gt;&lt;li&gt;Responsibility is shared; the team is responsible together for delivery of the product&lt;/li&gt;&lt;li&gt;Individuals are accountable, reporting for themselves in daily updates that involve the user/business&lt;/li&gt;&lt;/ul&gt;&lt;span id="fullpost"&gt;2. Agile Development Teams Must Be Empowered&lt;br /&gt;The project team must be empowered to make decisions in order to ensure that it is their responsibility to deliver the product and that they have complete ownership. Any interference with the project team is disruptive and reduces their motivation to deliver.&lt;br /&gt;&lt;br /&gt;The team must establish and clarify the requirements together, prioritise them together, agree to the tasks required to deliver them together, and estimate the effort involved &lt;em&gt;together&lt;/em&gt;.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;3. Requirements evolve but the timescale is fixed&lt;br /&gt;In Agile Development, requirements evolve, but timescales are fixed.  In Agile Development projects, requirements are allowed to evolve, but the timescale is fixed. So to include a new requirement, or to change a requirement, the user or product owner must remove a comparable amount of work from the project in order to accommodate the change.&lt;br /&gt;&lt;br /&gt;4. Capture requirements at a high level; lightweight &amp;amp; visual&lt;br /&gt;Agile Development teams capture requirements at a high level and on a piecemeal basis, just-in-time for each feature to be developed. &lt;span id="fullpost"&gt;Agile Development teams can build better products if they have a reasonably clear idea of the overall requirements before setting out on development, so that incorrect design decisions don’t lead the team down dead ends and also so a sensible investment case can be made to get the project funded.&lt;br /&gt;&lt;br /&gt;However any requirements captured at the outset should be captured at a high level and in a visual format, perhaps for example as a storyboard of the user interface. At this stage, requirements should be understood enough to determine the outline scope of the product and produce high level budgetary estimates and no more.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;5. Develop small, incremental releases and iterate&lt;br /&gt;One bite at a time! Likewise, agile software development projects are delivered in small bite-sized pieces, delivering small, incremental *releases* and iterating.&lt;br /&gt;&lt;br /&gt;6. Focus on frequent delivery of products&lt;br /&gt;Agile software development is all about frequent delivery of products. In a truly agile world, gone are the days of the 12 month project. In an agile world, a 3-6 month project is strategic!&lt;br /&gt;&lt;br /&gt;But how frequent is *frequent*?&lt;br /&gt;&lt;br /&gt;Scrum says break things into 30 day Sprints. That's certainly frequent compared to most traditional software development projects.&lt;br /&gt;&lt;br /&gt;Consider a major back-office system in a large corporation, with traditional projects of 6-12 months+, and all the implications of a big rollout and potentially training to hundreds of users. 30 days is a bit too frequent I think. The overhead of releasing the software is just too large to be practical on such a regular basis.&lt;br /&gt;&lt;br /&gt;But consider a web site, a web-based product - or even more dynamic something like my blog. There's no rollout overhead - it's an automated central deployment to all users, and for the blog it's a single click. No-one's paying for the service. If something's wrong, no-one dies. And it can be rolled back as quickly as it's deployed. There may be thousands of users, even millions of users of a web site every month. But none of them need to be trained. And you can evaluate the impact on the user experience, and the user's behaviour, through metrics within 24 hours and on an ongoing basis.&lt;br /&gt;&lt;br /&gt;So how frequent is *frequent enough*?&lt;br /&gt;&lt;br /&gt;Think carefully about your own situation. Think about the two extremes I've described above. Think about what's right for you; your organisation; your product; your market; your customers. Think about what's right for *you*, in your *particular situation*. There is no right or wrong answer. Only what works for you, and what doesn't.&lt;br /&gt;&lt;br /&gt;7. Complete each feature before moving on to the next&lt;br /&gt;In agile development, "done" should really mean "DONE!".&lt;br /&gt;&lt;br /&gt;Features developed within an iteration (Sprint in Scrum), should be 100% complete by the end of the Sprint.&lt;br /&gt;&lt;br /&gt;In an ideal situation, each iteration or Sprint should lead to a release of the product. Certainly that's the case on BAU (Business As Usual) changes to existing products. On projects it's not feasible to do a release after every Sprint, however completing each feature in turn enables a very precise view of progress and how far complete the overall project really is or isn't.&lt;br /&gt;&lt;br /&gt;8. Apply the 80/20 rulePareto's law is more commonly known as the 80/20 rule. The theory is about the law of distribution and how many things have a similar distribution curve. This means that *typically* 80% of your results may actually come from only 20% of your efforts!&lt;br /&gt;&lt;br /&gt;9. Testing is integrated throughout the project lifecycle – test early and often&lt;br /&gt;In agile development, testing is integrated throughout the lifecycle; testing the software continuously throughout its development.&lt;br /&gt;&lt;br /&gt;Agile development does not have a separate test phase as such. Developers are much more heavily engaged in testing, writing automated repeatable unit tests to validate their code.&lt;br /&gt;&lt;br /&gt;10. A collaborative &amp;amp; cooperative approach between all stakeholders is essential&lt;br /&gt;Agile development relies on close cooperation and collaboration between all team members and stakeholders. Agile development principles include keeping requirements and documentation lightweight, and acknowledging that change is a normal and acceptable reality in software development.&lt;br /&gt;&lt;br /&gt;This makes close collaboration particularly important to clarify requirements just-in-time and to keep all team members (including the product owner) 'on the same page' throughout the development.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2762098004688358629-3561554035791262796?l=projectbestpractices.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://projectbestpractices.blogspot.com/feeds/3561554035791262796/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://projectbestpractices.blogspot.com/2009/03/10-key-principles-of-agile-software.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2762098004688358629/posts/default/3561554035791262796'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2762098004688358629/posts/default/3561554035791262796'/><link rel='alternate' type='text/html' href='http://projectbestpractices.blogspot.com/2009/03/10-key-principles-of-agile-software.html' title='10 key principles of Agile Software Development'/><author><name>Michael</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2762098004688358629.post-8829209083911682979</id><published>2009-03-15T10:25:00.000-07:00</published><updated>2009-03-15T10:28:29.679-07:00</updated><title type='text'>What makes a good Project Manager?</title><content type='html'>by Deborah Bigelow, PMP&lt;br /&gt;&lt;br /&gt;From recent articles and highlights of successful projects, there appears to be some common threads woven into the personalities of successful PMs:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Love of their work … and embracing the challenges&lt;/li&gt;&lt;li&gt; Clear vision … and communicating this vision&lt;/li&gt;&lt;li&gt; Strong team building skills…and setting positive tones&lt;/li&gt;&lt;li&gt; Structure and alignment…creating the environment and direction&lt;/li&gt;&lt;li&gt; Strong interpersonal skills…listening to and leading their teams&lt;/li&gt;&lt;li&gt; Discipline…completing each phase of the project properly&lt;/li&gt;&lt;li&gt; Communication skills…knowing when and to whom to communicate&lt;/li&gt;&lt;/ul&gt;Frank Toney reports in the newsletter Project Management Best Practices Report that a study of The Top 500 Project Management Benchmarking Forum identified traits of a best practice project manager.&lt;br /&gt;&lt;br /&gt;According to the study, the best PMs:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;are recognized by stakeholders as the single most important factor in project goal achievement&lt;/li&gt;&lt;li&gt;are truthful in all dealings and relationships&lt;/li&gt;&lt;li&gt;exhibit eagerness to organize and lead groups&lt;/li&gt;&lt;li&gt;exhibit evidence of a strong desire for goal achievement&lt;/li&gt;&lt;li&gt;are even-tempered&lt;/li&gt;&lt;li&gt;have faith that the future will have a positive outcome&lt;/li&gt;&lt;li&gt;have confidence their personal performance will result in a positive outcome&lt;/li&gt;&lt;/ul&gt;These champions bring a &lt;span style="font-weight: bold;"&gt;can-do structure and discipline&lt;/span&gt; to organizations, helping them &lt;span style="font-weight: bold;"&gt;transform informal processes into a project management culture and force&lt;/span&gt;. A recent article in Compuworld featured a story of a senior vice president of a Fortune 500 organization. This VP's project management staff initially resisted his program of &lt;span style="font-weight: bold;"&gt;discipline, structure, tools, training, and leadership&lt;/span&gt;. They were accustomed to mediocrity. But as his staff became more effective at their jobs, they realized his way was better. In fact, he and his team of 25 were able to reduce the project cycle time 15% to 25% and cut personnel expenses by 10% per year while taking on bigger and more complex projects. The “Expert Series” is a collection of articles, papers and writings by PM Solutions’ associates and other industry experts that provides insight into the practice and value of project management.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2762098004688358629-8829209083911682979?l=projectbestpractices.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://projectbestpractices.blogspot.com/feeds/8829209083911682979/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://projectbestpractices.blogspot.com/2009/03/what-makes-good-project-manager.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2762098004688358629/posts/default/8829209083911682979'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2762098004688358629/posts/default/8829209083911682979'/><link rel='alternate' type='text/html' href='http://projectbestpractices.blogspot.com/2009/03/what-makes-good-project-manager.html' title='What makes a good Project Manager?'/><author><name>Michael</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2762098004688358629.post-441806309801515820</id><published>2009-03-15T09:45:00.000-07:00</published><updated>2009-03-15T09:47:00.151-07:00</updated><title type='text'>Why do IT projects fail?</title><content type='html'>1. Project Initiation and Planning Issues&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Unclear or unconvincing business case&lt;/li&gt;&lt;li&gt;Insufficient or non-existent approval process&lt;/li&gt;&lt;li&gt;Poor definition of project scope and objectives&lt;/li&gt;&lt;li&gt;Insufficient time or money given to project&lt;/li&gt;&lt;li&gt;Lack of business ownership and accountability&lt;/li&gt;&lt;li&gt;Insufficient and/or over-optimistic planning&lt;/li&gt;&lt;li&gt;Poor estimating&lt;/li&gt;&lt;li&gt;Long or unrealistic timescales; forcing project end dates despite best estimates&lt;/li&gt;&lt;li&gt;Lack of thoroughness and diligence in the project startup phases&lt;/li&gt;&lt;/ul&gt;2. Technical and Requirements Issues&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Lack of user involvement (resulting in expectation issues)&lt;/li&gt;&lt;li&gt;Product owner unclear or consistently not available&lt;/li&gt;&lt;li&gt;Scope creep; lack of adequate change control&lt;/li&gt;&lt;li&gt;Poor or no requirements definition; incomplete or changing requirements&lt;/li&gt;&lt;li&gt;Wrong or inappropriate technology choices&lt;/li&gt;&lt;li&gt;Unfamiliar or changing technologies; lack of required technical skills&lt;/li&gt;&lt;li&gt;Integration problems during implementation&lt;/li&gt;&lt;li&gt;Poor or insufficient testing before go-live&lt;/li&gt;&lt;li&gt;Lack of QA for key deliverables&lt;/li&gt;&lt;li&gt;Long and unpredictable bug fixing phase at end of project&lt;/li&gt;&lt;/ul&gt;3. Stakeholder Management and Team Issues&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Insufficient attention to stakeholders and their needs; failure to manage expectations&lt;/li&gt;&lt;li&gt;Lack of senior management/executive support; project sponsors not 100% committed to the objectives; lack understanding of the project and not actively involved&lt;/li&gt;&lt;li&gt;Inadequate visibility of project status&lt;/li&gt;&lt;li&gt;Denial adopted in preference to hard truths&lt;/li&gt;&lt;li&gt;People not dedicated to project; trying to balance too many different priorities&lt;/li&gt;&lt;li&gt;Project team members lack experience and do not have the required skills&lt;/li&gt;&lt;li&gt;Team lacks authority or decision making ability&lt;/li&gt;&lt;li&gt;Poor collaboration, communication and teamwork&lt;/li&gt;&lt;/ul&gt;4. Project Management Issues&lt;br /&gt;&lt;ul&gt;&lt;li&gt;No project management best practices&lt;/li&gt;&lt;li&gt;Weak ongoing management; inadequately trained or inexperienced project managers&lt;/li&gt;&lt;li&gt;Inadequate tracking and reporting; not reviewing progress regularly or diligently enough&lt;/li&gt;&lt;li&gt;Ineffective time and cost management&lt;/li&gt;&lt;li&gt;Lack of leadership and/or communication skills&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2762098004688358629-441806309801515820?l=projectbestpractices.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://projectbestpractices.blogspot.com/feeds/441806309801515820/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://projectbestpractices.blogspot.com/2009/03/why-do-it-projects-fail.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2762098004688358629/posts/default/441806309801515820'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2762098004688358629/posts/default/441806309801515820'/><link rel='alternate' type='text/html' href='http://projectbestpractices.blogspot.com/2009/03/why-do-it-projects-fail.html' title='Why do IT projects fail?'/><author><name>Michael</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2762098004688358629.post-8730514466335206676</id><published>2009-03-15T09:25:00.000-07:00</published><updated>2009-03-15T23:20:47.056-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Project Management'/><title type='text'>Project Success Factor</title><content type='html'>Identify which of these success factors are missing in your project and ask why - this will help you plan for risk mitigation action.&lt;br /&gt;&lt;br /&gt;1. Executive Support&lt;br /&gt;This is the number one important factor. If executives are not supportive, they're unlikely to assign needed resources (labour hour, dollars, equipment etc) to the project. Additionally, they are less likely to defend the project if it runs into trouble or gets bogged down by corporate politics.&lt;br /&gt;&lt;br /&gt;2. User Involvement&lt;br /&gt;Many IT managers find it difficult to involve users early on for two key reasons. First, users are typically uneducated about IT processes, whether it's software development or infrastructure upgrades. Without understanding how things work in IT, most users come up with fairly unrealistic expectations about how and when things should be done.&lt;br /&gt;&lt;br /&gt;A second big complaint from the IT department is scope creep - the requirements for the project keep growing even as the project is underway. On the other side, users complain that they are left out of the loop until it's too late to make any changes to the project.&lt;br /&gt;&lt;br /&gt;From a user's perspective, the IT department often comes in, asks a few questions and months later unveils the new system, application, or solution. Users are not asked about requirements ahead of time, are often not involved in usability and functionality testing, and sometimes not trained until after the fact.&lt;br /&gt;&lt;br /&gt;3. Experienced Project Manager&lt;br /&gt;There are strong evidence that having a trained, experienced project manager has an enormous impact on a project's chance of success. In fact, according to the Standish Group's research, 97% of all successful projects have an experienced project manager.&lt;br /&gt;&lt;br /&gt;4. Clearly Defined Project Objectives&lt;br /&gt;There are a number of reasons why projects lack defined objectives. Laziness is one explanation, of course, but not the best one. Most of the time there are numerous organizational factors including politics, shifting priorities, cash flow/financial problems, extremely tight timelines, and organization restructuring that sometimes make defining project objectives difficult or impossible. Project objectives essentially define the scope of the project.&lt;br /&gt;&lt;br /&gt;5. Clearly Defined (and Smaller) Scope&lt;br /&gt;Studies have shown that the longer a project runs (scheduled duration), the less likely it is to be successful, so there is an inverse relationship between project success and time.&lt;br /&gt;&lt;br /&gt;6. Shorter Schedules, Multiple Milestones&lt;br /&gt;Milestones are simply markers to help you navigate through your project plan and indicate important checkpoints or events.  The sooner you notice the project is heading off-course, the easier it is to make small adjustments.  It makes sense, then, that the more often you have a checkpoint, the more successful your project is likely to be.&lt;br /&gt;&lt;br /&gt;7. Clearly Defined Project Management Process&lt;br /&gt;A clearly defined project management process is important for project success for several reasons. First, when processes are clearly defined, you avoid reinventing the wheel each time and you can re-use processes that worked and tweak those that didn't. Also, clearly defined processes reduce or eliminate some of the project re-work.&lt;br /&gt;&lt;br /&gt;8. Standard Infrastructure&lt;br /&gt;Standardizing the infrastructure of the code's foundation leads to both efficiency and stability in the code. Some of the infrastructure code is unique to the application, but often there are components that can be purchased from an infrastructure vendor to alleviate the need to develop unique infrastructure solutions.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2762098004688358629-8730514466335206676?l=projectbestpractices.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://projectbestpractices.blogspot.com/feeds/8730514466335206676/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://projectbestpractices.blogspot.com/2009/03/project-success-factor.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2762098004688358629/posts/default/8730514466335206676'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2762098004688358629/posts/default/8730514466335206676'/><link rel='alternate' type='text/html' href='http://projectbestpractices.blogspot.com/2009/03/project-success-factor.html' title='Project Success Factor'/><author><name>Michael</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2762098004688358629.post-4405037090388635689</id><published>2009-03-15T09:08:00.000-07:00</published><updated>2009-03-15T09:22:36.260-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Requirements Management'/><title type='text'>Ten Requirements Gathering Techniques</title><content type='html'>1. Brainstorming - to get as many ideas as possible, generally used to identify solutions to problems.&lt;br /&gt;&lt;br /&gt;2. Document Analysis - for creation of AS-IS process documents, driving gap analysis for migration projects, reviewing the requirements the drove the creation of existing system and use it for validating requirements completeness.&lt;br /&gt;&lt;br /&gt;3. Focus Group - gather representatives of users / customers to get product feedback. The feedback can be needs / opportunities / problems to identify requirements. There is danger in "following the crowd" with this technique.&lt;br /&gt;&lt;br /&gt;4. Interface Analysis - Interfaces for a software product can be human or machine. Interface analysis - reviewing the touch points with other external systems - is important to make sure we don’t overlook requirements that &lt;em&gt;aren’t&lt;/em&gt; immediately visible to users.&lt;br /&gt;&lt;br /&gt;5. Interviews of stakeholders and users are critical to creating the great software. Recognizing the perspective of the interviewees to properly weigh and address their inputs. Listen carefully to get more value out of the interview.&lt;br /&gt;&lt;br /&gt;6. Observation - By observing users, an analyst can identify a process flow, awkward steps, pain points and opportunities for improvement. Observation can be passive or active (asking questions while observing). Passive observation is better for getting feedback on a prototype (to refine requirements), where active observation is more effective at getting an understanding of an existing business process.&lt;br /&gt;&lt;br /&gt;7. Prototyping - Often, when people can not articulate a particular need in the abstract, they can quickly assess if a design approach would address the need. Prototypes are most efficiently done with quick sketches of interfaces and storyboards.&lt;br /&gt;&lt;br /&gt;8. Requirements Workshop - One way to conducting effective workshop is with creation of domain-model artifacts (like static diagrams, activity diagrams). A workshop will be more effective with two analysts than with one, where a facilitator and a scribe work together.&lt;br /&gt;&lt;br /&gt;9. Reverse Engineering - When a migration project does not have access to sufficient documentation of the existing system, reverse engineering will identify what the system does. It will not identify what the system should do, and will not identify when the system does the wrong thing.&lt;br /&gt;&lt;br /&gt;10. Survey - Well designed survey would provide qualitative guidance for characterizing the market. However, it should not be used for prioritization of features or requirements.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2762098004688358629-4405037090388635689?l=projectbestpractices.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://projectbestpractices.blogspot.com/feeds/4405037090388635689/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://projectbestpractices.blogspot.com/2009/03/ten-requirements-gathering-techniques.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2762098004688358629/posts/default/4405037090388635689'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2762098004688358629/posts/default/4405037090388635689'/><link rel='alternate' type='text/html' href='http://projectbestpractices.blogspot.com/2009/03/ten-requirements-gathering-techniques.html' title='Ten Requirements Gathering Techniques'/><author><name>Michael</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2762098004688358629.post-2882228587864152246</id><published>2009-03-15T01:23:00.000-07:00</published><updated>2009-03-15T01:34:00.294-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SDLC'/><title type='text'>Scrum</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_htahcww_veg/Sby9b4OuqOI/AAAAAAAAAKg/dIGrPWV5Qrc/s1600-h/scrum.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 245px;" src="http://4.bp.blogspot.com/_htahcww_veg/Sby9b4OuqOI/AAAAAAAAAKg/dIGrPWV5Qrc/s400/scrum.jpg" alt="" id="BLOGGER_PHOTO_ID_5313329947038623970" border="0" /&gt;&lt;/a&gt;1. Flow&lt;br /&gt;&lt;br /&gt;1.1 Start of iteration: Reviews and select shippable functionality to implement&lt;br /&gt;&lt;br /&gt;1.2 Rest of iteration: Implement the selected functionality&lt;br /&gt;&lt;br /&gt;1.3 End of iteration: presents the increment of functionality for stakeholder to inspect&lt;br /&gt;&lt;br /&gt;2. Roles&lt;br /&gt;&lt;br /&gt;2.1 Product Owner: achieves initial and ongoing funding for the project by creating the project’s initial overall requirements, return on investment (ROI) objectives, and release plans. The list of requirements is called the Product Backlog.&lt;br /&gt;&lt;br /&gt;2.2 Team: The Team is responsible for developing functionality. Teams are self-managing,  self-organizing, and cross-functional, and they are responsible for figuring out  how to turn Product Backlog into an increment of functionality within an  iteration and managing their own work to do so.&lt;br /&gt;&lt;br /&gt;2.3 The ScrumMaster: The ScrumMaster is responsible for the Scrum process, for teaching Scrum to  everyone involved in the project, for implementing Scrum so that it fits within  an organization’s culture and still delivers the expected benefits, and for  ensuring that everyone follows Scrum rules and practices.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2762098004688358629-2882228587864152246?l=projectbestpractices.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://projectbestpractices.blogspot.com/feeds/2882228587864152246/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://projectbestpractices.blogspot.com/2009/03/scrum.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2762098004688358629/posts/default/2882228587864152246'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2762098004688358629/posts/default/2882228587864152246'/><link rel='alternate' type='text/html' href='http://projectbestpractices.blogspot.com/2009/03/scrum.html' title='Scrum'/><author><name>Michael</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_htahcww_veg/Sby9b4OuqOI/AAAAAAAAAKg/dIGrPWV5Qrc/s72-c/scrum.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2762098004688358629.post-3519878955940377858</id><published>2009-03-15T00:41:00.000-07:00</published><updated>2009-03-15T01:34:55.146-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SDLC'/><title type='text'>Extreme Programming Rules</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_htahcww_veg/Sby9juTtvLI/AAAAAAAAAKo/yk4lwVfJO2k/s1600-h/extreme.gif"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 188px;" src="http://2.bp.blogspot.com/_htahcww_veg/Sby9juTtvLI/AAAAAAAAAKo/yk4lwVfJO2k/s400/extreme.gif" alt="" id="BLOGGER_PHOTO_ID_5313330081814133938" border="0" /&gt;&lt;/a&gt;1. Planning&lt;br /&gt;&lt;br /&gt;1.1 User stories are written.&lt;br /&gt;1.2 Release planning creates the schedule.&lt;br /&gt;1.3 Make frequent small releases.&lt;br /&gt;1.4 The Project Velocity is measured.&lt;br /&gt;1.5 The project is divided into iterations.&lt;br /&gt;1.6 Iteration planning starts each iteration.&lt;br /&gt;1.7 Move people around.&lt;br /&gt;1.8 A stand-up meeting starts each day.&lt;br /&gt;1.9 Fix XP when it breaks.&lt;br /&gt;&lt;br /&gt;2. Designing&lt;br /&gt;&lt;br /&gt;2.1 Simplicity.&lt;br /&gt;2.2 Choose a system metaphor.&lt;br /&gt;2.3 Use CRC cards for design sessions.&lt;br /&gt;2.4 Create spike solutions to reduce risk.&lt;br /&gt;2.5 No functionality is added early.&lt;br /&gt;2.6 Refactor whenever and wherever possible.&lt;br /&gt;&lt;br /&gt;3. Coding&lt;br /&gt;&lt;br /&gt;3.1 The customer is always available.&lt;br /&gt;3.2 Code must be written to agreed standards.&lt;br /&gt;3.3 Code the unit test first.&lt;br /&gt;3.4 All production code is pair programmed.&lt;br /&gt;3.5 Only one pair integrates code at a time.&lt;br /&gt;3.6 Integrate often.&lt;br /&gt;3.7 Use collective code ownership.&lt;br /&gt;3.8 Leave optimization till last.&lt;br /&gt;3.9 No overtime.&lt;br /&gt;&lt;br /&gt;4. Testing&lt;br /&gt;&lt;br /&gt;4.1 All code must have unit tests.&lt;br /&gt;4.2 All code must pass all unit tests before it can be released.&lt;br /&gt;4.3 When a bug is found tests are created.&lt;br /&gt;4.4 Acceptance tests are run often and the score is published.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2762098004688358629-3519878955940377858?l=projectbestpractices.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://projectbestpractices.blogspot.com/feeds/3519878955940377858/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://projectbestpractices.blogspot.com/2009/03/extreme-programming-rules.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2762098004688358629/posts/default/3519878955940377858'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2762098004688358629/posts/default/3519878955940377858'/><link rel='alternate' type='text/html' href='http://projectbestpractices.blogspot.com/2009/03/extreme-programming-rules.html' title='Extreme Programming Rules'/><author><name>Michael</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_htahcww_veg/Sby9juTtvLI/AAAAAAAAAKo/yk4lwVfJO2k/s72-c/extreme.gif' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2762098004688358629.post-3065652801583945034</id><published>2009-03-15T00:37:00.000-07:00</published><updated>2009-03-15T00:40:18.482-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SDLC'/><title type='text'>Principles behind the Agile Manifesto</title><content type='html'>1. Our highest priority is to satisfy the customer through early and continuous delivery of valuable software.&lt;br /&gt;&lt;br /&gt;2. Welcome changing requirements, even late in development. Agile processes harness change for the customer's competitive advantage.&lt;br /&gt;&lt;br /&gt;3. Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale.&lt;br /&gt;&lt;br /&gt;4. Business people and developers must work together daily throughout the project.&lt;br /&gt;&lt;br /&gt;5. Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done.&lt;br /&gt;&lt;br /&gt;6. The most efficient and effective method of conveying information to and within a development team is face-to-face conversation.&lt;br /&gt;&lt;br /&gt;7. Working software is the primary measure of progress.&lt;br /&gt;&lt;br /&gt;8. Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely.&lt;br /&gt;&lt;br /&gt;9. Continuous attention to technical excellence and good design enhances agility.&lt;br /&gt;&lt;br /&gt;10. Simplicity--the art of maximizing the amount of work not done--is essential.&lt;br /&gt;&lt;br /&gt;11. The best architectures, requirements, and designs emerge from self-organizing teams.&lt;br /&gt;&lt;br /&gt;12. At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2762098004688358629-3065652801583945034?l=projectbestpractices.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://projectbestpractices.blogspot.com/feeds/3065652801583945034/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://projectbestpractices.blogspot.com/2009/03/principles-behind-agile-manifesto.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2762098004688358629/posts/default/3065652801583945034'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2762098004688358629/posts/default/3065652801583945034'/><link rel='alternate' type='text/html' href='http://projectbestpractices.blogspot.com/2009/03/principles-behind-agile-manifesto.html' title='Principles behind the Agile Manifesto'/><author><name>Michael</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2762098004688358629.post-2508636728235028816</id><published>2009-03-14T05:27:00.000-07:00</published><updated>2009-03-14T05:35:13.408-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Requirements Management'/><title type='text'>Changing Software Requirements</title><content type='html'>Craig offers his insight into why software requirements keep changing in his blog at http://www.softwareprojects.org:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;&lt;div align="justify"&gt;Clients jump into their solution work before they properly understand their problem&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;In multi-stakeholder environments (i.e. large organizations) there is rarely one clear voice singing the requirements tune,&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;The people you put into project management and requirements management roles don't have the right skills and knowledge&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;The external market conditions are changing fast and it's just hard to get the product lined up with the market &lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;Here's the solutions to first three problems (the fourth is rather impossible):&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Identify the problems that the solution is solving, insist on details of the requirements and walk through the requirements document with all the stakeholders involved&lt;/li&gt;&lt;li&gt;Identify the most influential groups of stakeholders and involved them in requirements gathering as well as approval.&lt;/li&gt;&lt;li&gt;Get the right people in the project team, and if that is not possible, send them for proper training.&lt;/li&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2762098004688358629-2508636728235028816?l=projectbestpractices.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://projectbestpractices.blogspot.com/feeds/2508636728235028816/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://projectbestpractices.blogspot.com/2009/03/changing-software-requirements.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2762098004688358629/posts/default/2508636728235028816'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2762098004688358629/posts/default/2508636728235028816'/><link rel='alternate' type='text/html' href='http://projectbestpractices.blogspot.com/2009/03/changing-software-requirements.html' title='Changing Software Requirements'/><author><name>Michael</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2762098004688358629.post-3100560903303535559</id><published>2009-03-13T23:20:00.000-07:00</published><updated>2009-03-14T00:38:17.597-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Requirements Management'/><title type='text'>Managing Software Requirements</title><content type='html'>1. Plan in advance for Software Requirements Management.&lt;br /&gt;&lt;br /&gt;2. Involve Project Manager, Development Team, All Stakeholders, Client, End Users and Testing Team in requirements gathering.&lt;br /&gt;&lt;br /&gt;3. Convince client that they need to spend time in this area as they may:&lt;br /&gt;- not be capable of explaining what they need&lt;br /&gt;- not have the time to meet you&lt;br /&gt;- not look through your draft&lt;br /&gt;- thinks they know better and give you the wrong ideas&lt;br /&gt;- approve your specifications without looking at them&lt;br /&gt;&lt;br /&gt;4. Hold long, boring meeting, and then "translate" their needs for the programmers and developers. If customers or end-users are not available, despite your best efforts, you can use "surrogates" to simulate the actual users.&lt;br /&gt;&lt;br /&gt;5. Remain in close contact with Client for the duration of the entire process - their needs may change or they may find out something they forgot to tell you in the beginning. Inform them that you are always available to meet them and look at all options again.&lt;br /&gt;&lt;br /&gt;6. Understand that software requirements management process ends only when your system is fully implemented, and the client is satisfied by it.&lt;br /&gt;&lt;br /&gt;7.  You should be able to trace your requirements all the time. If the requirements does not meet the projects objectives, it could be that the requirements are not captured properly, or that the project objectives is not well defined.&lt;br /&gt;&lt;br /&gt;8. Tracing requirements also involves additional tests, performed from time to time, to insure that the process runs smoothly and errors are identified and corrected early on.&lt;br /&gt;&lt;br /&gt;9. When a certain design is implemented for a certain requirements, make a note about the effects and the alternatives.&lt;br /&gt;&lt;br /&gt;10. The first level consists of the specific business requirements - business background and market needs, objectives, dependencies, scope and constraints. They should never be self implied and are to be discussed in detail and captured in "Vision and Scope" documents.&lt;br /&gt;&lt;br /&gt;11. Clients are not always very cooperative when you start discussing requirements, and it is your job to convince them.&lt;br /&gt;&lt;br /&gt;12. Don't take for granted everything they say, insist on every single detail, and insist on talking directly to the final users of the program, or on getting information from them in one way or another. In the end, if something goes wrong, it will be your fault, since you can't blame the client.&lt;br /&gt;&lt;br /&gt;13. Users will use all types of meaningless words, such the "the best", "the easiest", "user-friendly", "fully compatible with", and so on. It's your job to turn these into clear, measurable and traceable requirements.&lt;br /&gt;&lt;br /&gt;14. Besides user requirements, you need to consider other external, non-functional requirements, which are not related to your client.&lt;br /&gt;&lt;br /&gt;15. It is vital to prioritize the requirements - be realistic, some things may not be ready in time, others may not even be possible. You may categorise them into "absolutely necessary", "necessary - but can be implemented later on", "really useful to have - but can be skipped if deadline is tight".&lt;br /&gt;&lt;br /&gt;16. If you think that the client asked for an unnecessary requirements, charge them for it if possible. Usually, when faced with the cost/usefulness ration, many people change their mind or review the situation more carefully. &lt;br /&gt;&lt;br /&gt;17. When something changes, make sure everybody is aware it, don't just inform the developer directly about what has changed. The entire team should have a strict set of rules, and all the changes should be written down for every stage affected.&lt;br /&gt;&lt;br /&gt;18. For every requirement document you write, make sure you also record, right on top, which version it is and when it was written/modified. Organized, efficient communication is vital.&lt;br /&gt;&lt;br /&gt;19. For complex projects, it may be a good idea to organize a control board to approve or reject changes at regular intervals, and to make sure everybody is informed about the change and its status.&lt;br /&gt;&lt;br /&gt;20. When formulating a requirement statement, you have to think of several elements: the actor (or the owner), the action performed, the target (or, again, the owner, as the case may be), the object, the localization and the constraints that apply. A statement may not contain all of these elements, but, if it refers to them, make sure they are specified.&lt;br /&gt;&lt;br /&gt;21. Check to see that you didn't include two different requirements in the same sentence - this is a sure way to make the developers ignore one of them.&lt;br /&gt;&lt;br /&gt;22. When writing in the natural language, use the words as precisely as possible. he IEEE standards have pretty clear definitions for words that you are sure to use, such as failure, error, fault - make sure you stick to those definitions.&lt;br /&gt;&lt;br /&gt;23. Give as many examples and create as many scenarios as possible. You can test your work, particularly when you're new at this, by asking several people to read your requirements and to tell you what they've understood and how they see the possible solutions. Ask people from several departments, just to make sure that they all understand the same.&lt;br /&gt;&lt;br /&gt;24. It's vital that your requirements can be tested and measures, otherwise they are simply useless.&lt;br /&gt;&lt;br /&gt;25. When you have the full set of requirements, make sure it is complete, at least from the point of view of the current stage of the project. Now, check them one by one and see that they don't contradict each other.&lt;br /&gt;&lt;br /&gt;26. Remember that the requirements have to make sense as a whole, as well as each taken individually. Also, all of them and each one separately have to be measurable and verifiable.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2762098004688358629-3100560903303535559?l=projectbestpractices.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://projectbestpractices.blogspot.com/feeds/3100560903303535559/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://projectbestpractices.blogspot.com/2009/03/managing-software-requirements.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2762098004688358629/posts/default/3100560903303535559'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2762098004688358629/posts/default/3100560903303535559'/><link rel='alternate' type='text/html' href='http://projectbestpractices.blogspot.com/2009/03/managing-software-requirements.html' title='Managing Software Requirements'/><author><name>Michael</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2762098004688358629.post-5206313026263072432</id><published>2009-03-13T22:04:00.000-07:00</published><updated>2009-03-14T05:34:54.412-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Team Management'/><title type='text'>Motivating your team</title><content type='html'>1. Start with yourself. If you are motivated, you can be a role model for the team.&lt;br /&gt;&lt;br /&gt;2. Share information and give the team a sense of ownership - it is their project.&lt;br /&gt;&lt;br /&gt;3. Take your problems to them to ask them for solution.&lt;br /&gt;&lt;br /&gt;4. Keep your work environment as informal as possible. People usually work better without the boss breathing down their neck.&lt;br /&gt;&lt;br /&gt;5. Arrange for special celebrations upon reaching the milestones on time.&lt;br /&gt;&lt;br /&gt;6. Always appreciate your team members, saying ‘thank you’ can make people strive harder for appreciation.&lt;br /&gt;&lt;br /&gt;7. During evaluation do not try to pin the blame on anyone as it creates an environment of distrust - either the team succeed, or fails. Not individual.&lt;br /&gt;&lt;br /&gt;8. Provide feedback in a positive manner; give them what was done right, mention the shortcomings and how the team can do better.&lt;br /&gt;&lt;br /&gt;9. Take individual team members out to lunch, discuss trivial things as well as work related matters and just let them enjoy the time.&lt;br /&gt;&lt;br /&gt;10. Listen to your team members talk; give them your ear from time to time and really listen. This should be a ritual every few days to get their perspectives.&lt;br /&gt;&lt;br /&gt;11. When a team member comes to you with a problem be positive in your analysis, try to find a definite solution and back him to work it out,&lt;br /&gt;&lt;br /&gt;12. Always support your team, give them confidence and give them opportunities to fulfill your confidence.&lt;br /&gt;&lt;br /&gt;13. Not everyone can handle every job. Pick the right person for the right job.&lt;br /&gt;&lt;br /&gt;14. Eat together. You can have team lunches where someone gives a work related presentation.&lt;br /&gt;&lt;br /&gt;15. Allow your team to try out their ideas.&lt;br /&gt;&lt;br /&gt;16. What do people work best for? It could be money, emotional or personal attachments. Find out and instill a sense of ownership in the team. .&lt;br /&gt;&lt;br /&gt;17. Give them something fun to look forward to. That can be some time off at a gathering or pot luck party.&lt;br /&gt;&lt;br /&gt;18. When someone does well, be generous in your praise. Be honest and sincere though.&lt;br /&gt;&lt;br /&gt;19. Give shy member a chance to present their ideas. Listen carefully and evaluate ideas on merit, make sure not to discourage anyone though;&lt;br /&gt;&lt;br /&gt;20. Clarify all points to avoid misunderstanding.&lt;br /&gt;&lt;br /&gt;21. Spot the motivators within your team; there are individuals that put a spark in the atmosphere, they are active and they compel others to show the same energy without ever saying it.&lt;br /&gt;&lt;br /&gt;22. Brainstorming sessions produce some great ideas and when they are one on one they show your team members they are considered important.&lt;br /&gt;&lt;br /&gt;23. Divide the project into parts where you can give individuals smaller achievable goals.&lt;br /&gt;&lt;br /&gt;24. Achievement of organizational goals should lead to benefits. These can be monetary benefits as well as packages that provide the team members, e.g. medical cover or something similarly advantageous.&lt;br /&gt;&lt;br /&gt;25. Last but not the least, keep Maslow's Hierarchy of needs in mind; not every individual has the same motivational needs.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2762098004688358629-5206313026263072432?l=projectbestpractices.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://projectbestpractices.blogspot.com/feeds/5206313026263072432/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://projectbestpractices.blogspot.com/2009/03/motivate-your-team.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2762098004688358629/posts/default/5206313026263072432'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2762098004688358629/posts/default/5206313026263072432'/><link rel='alternate' type='text/html' href='http://projectbestpractices.blogspot.com/2009/03/motivate-your-team.html' title='Motivating your team'/><author><name>Michael</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
