<?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-36930149</id><updated>2012-01-27T13:55:43.545-08:00</updated><category term='stakeholder management'/><category term='test'/><category term='buffers'/><category term='QA engineer'/><category term='Communications Management'/><category term='Project Management'/><category term='Software Engineering'/><category term='Risk Management'/><category term='agile'/><category term='QA'/><category term='schedule'/><category term='test engineer'/><category term='innovation'/><category term='Procurement Management'/><category term='Cost management'/><category term='Vendor management'/><category term='padding'/><category term='Software Requirements Specification'/><category term='waterfall'/><category term='testing'/><category term='project schedule'/><category term='Project Manager'/><category term='Software Project Management'/><title type='text'>mosgot's World of Software Project Management</title><subtitle type='html'>Let's talk about the issues in Software Project Management.
I have a lot of experience, a lot of ideas and a lot of opinions.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://mosgot.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36930149/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://mosgot.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>mosgot</name><uri>http://www.blogger.com/profile/01197862673904109978</uri><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>17</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-36930149.post-1463253738142051940</id><published>2007-02-04T01:14:00.001-08:00</published><updated>2007-02-04T01:22:12.495-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Software Project Management'/><category scheme='http://www.blogger.com/atom/ns#' term='agile'/><category scheme='http://www.blogger.com/atom/ns#' term='Project Manager'/><category scheme='http://www.blogger.com/atom/ns#' term='Software Engineering'/><category scheme='http://www.blogger.com/atom/ns#' term='Software Requirements Specification'/><category scheme='http://www.blogger.com/atom/ns#' term='Project Management'/><title type='text'>"My" Agile Documentation</title><content type='html'>&lt;p&gt;In the last &lt;a href="http://mosgot.blogspot.com/2007/01/agile-documentation.html"&gt;post&lt;/a&gt; I discussed agile programming and noted that I was managing documentation development in my projects the "agile way", even though I did not realize I was doing agile. Here I will summarize briefly some of "my" agile documentation principles.&lt;/p&gt; &lt;h4&gt;At least do the Software Requirements Specification&lt;/h4&gt; &lt;p&gt;I have written about this before - see &lt;a href="http://mosgot.blogspot.com/2006/11/requirements-specification-is-king.html"&gt;here&lt;/a&gt; and &lt;a href="http://mosgot.blogspot.com/2006/11/software-requirements-specification-is.html"&gt;here&lt;/a&gt;, so I will not repeat here. Just to recap. I can accept not writing any product documentation, except the SRS. But this one is not optional.&lt;/p&gt; &lt;h4&gt;Start with something&lt;/h4&gt; &lt;p&gt;I never thought that writing a full, complete, "perfect" document up-front was feasible. It almost never is. Trying to enforce that is futile. It will stress the team members, take an inordinate amount of time and effort and will become increasingly out of date as the project progresses. Soon, large parts of its content will be obsolete, which means (among others) that we have wasted a great deal of time and money.&lt;/p&gt; &lt;p&gt;Instead, start the document with a minimum and flash it out as you go. In the beginning, most everything is fuzzy and changing, hence, write only more general, more high-level things. As the project progresses, more and more things stabilize. update the docs with these things.&lt;/p&gt; &lt;h4&gt;Update on the fly&lt;/h4&gt; &lt;p&gt;As the project progresses, no need to go into heavyweight documentation cycles. Just update the documents as soon as new information is identified. Any team members can do that at any time. This makes the project dynamic and makes it easier to develop the documents quickly.&lt;/p&gt; &lt;h4&gt;Review, approve, disseminate&lt;/h4&gt; &lt;p&gt;Documents are useless if nobody uses them regularly. To make them useful you must make sure that what they say is &lt;/p&gt; &lt;ul&gt; &lt;li&gt;Acceptable - make sure the right people review the documentation and ultimately approve it.&lt;/li&gt; &lt;li&gt;Known - the best document in the world is useless if people don't use it. Most team members will not if you do not distribute the document formally and make sure people use it.&lt;/li&gt;&lt;/ul&gt; &lt;h4&gt;Keep changes at bay&lt;/h4&gt; &lt;p&gt;As I noted in previous posts, unlike the agile principle, I do not "welcome" change. I treat change as unavoidable (don't want to say "evil") in the project. So, I know very well that it will come. However, nobody says you must accept it unquestionably. On the contrary, do question the need for any change. If you can avoid the change, all the better. If not, make sure it's reflected in the documentation, especially, if the documents already cover this topic.&lt;/p&gt; &lt;h4&gt;Keep the documentation in sync with the code&lt;/h4&gt; &lt;p&gt;Ideally, the documentation should drive the code. In reality a lot of changes are decided and implemented in the code without updating the document. This renders the documents obsolete very fast. Get your team into the habit of updating the documentation at the same time they update the code. It's actually easy because if they keep it up to date all the time, the updates are done in many small steps, rather than major update efforts.&lt;/p&gt; &lt;h4&gt;Formatting is not critical&lt;/h4&gt; &lt;p&gt;I had cases where we did cut-and-paste directly from emails or from comments in code into the document. This creates a rather sloppy-looking document but it's much better than no document at all and often better than spending all that time/money on high-quality tech-writing. The high quality can follow later. Just make sure that the document is understandable, updated and correct.&lt;/p&gt; &lt;h4&gt;Solidify as the release approaches&lt;/h4&gt; &lt;p&gt;Changes and updates to the documentation should be harder as the release gets closer. If the project is managed properly, this will be natural. If changes continue to arrive in large quantities even as the release is near, something is wrong. To me, it will indicate that the product is immature and unstable. this will prompt me to consider pushing the release date out. on the other hand, if things are done right, the pressure for changes will go down as the release approaches.&lt;/p&gt; &lt;p&gt;But this is not enough. You (project manager) should implement some process that will intentionally make it harder to get new changes in as the release approaches. People should have stronger and stronger justification to incorporate changes as the release approaches.&lt;/p&gt; &lt;p&gt;Instead, concentrate more on changes to the documentation that do not imply changes to the product (code). Corrections and more details are always good. They improve the documentation without requiring changes in the code.&lt;/p&gt; &lt;p&gt;I can probably think of some more but this is a good start and it's getting late...&lt;/p&gt; &lt;p&gt;-----------------------------------------------------------------------------&lt;/p&gt;&lt;div class="tag_list"&gt;Technorati Tags: &lt;span class="tags"&gt;&lt;a href="http://technorati.com/tag/agile" rel="tag"&gt;agile&lt;/a&gt;, &lt;a href="http://technorati.com/tag/Project+Management" rel="tag"&gt;Project Management&lt;/a&gt;, &lt;a href="http://technorati.com/tag/Project+Manager" rel="tag"&gt;Project Manager&lt;/a&gt;, &lt;a href="http://technorati.com/tag/Software+Engineering" rel="tag"&gt;Software Engineering&lt;/a&gt;, &lt;a href="http://technorati.com/tag/Software+Project+Management" rel="tag"&gt;Software Project Management&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36930149-1463253738142051940?l=mosgot.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mosgot.blogspot.com/feeds/1463253738142051940/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36930149&amp;postID=1463253738142051940' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36930149/posts/default/1463253738142051940'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36930149/posts/default/1463253738142051940'/><link rel='alternate' type='text/html' href='http://mosgot.blogspot.com/2007/02/agile-documentation.html' title='&amp;quot;My&amp;quot; Agile Documentation'/><author><name>mosgot</name><uri>http://www.blogger.com/profile/01197862673904109978</uri><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>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36930149.post-6840781121443146926</id><published>2007-01-28T22:22:00.001-08:00</published><updated>2007-01-28T22:27:01.654-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='waterfall'/><category scheme='http://www.blogger.com/atom/ns#' term='Software Project Management'/><category scheme='http://www.blogger.com/atom/ns#' term='agile'/><category scheme='http://www.blogger.com/atom/ns#' term='Project Manager'/><category scheme='http://www.blogger.com/atom/ns#' term='Software Engineering'/><category scheme='http://www.blogger.com/atom/ns#' term='Project Management'/><title type='text'>Agile Documentation</title><content type='html'>&lt;p&gt;In a previous post - &lt;a href="http://mosgot.blogspot.com/2007/01/waterfall-or-agile-neither.html"&gt;Waterfall or Agile? Neither&lt;/a&gt;, there was a discussion (see the comments) on various points. One of the more interesting points was documentation. I argued against what I thought was the attitude to documentation by the agile community. From my personal experience, people generally interpreted the principle of &lt;em&gt;face-to-face-discussion is preferable to documentation&lt;/em&gt; as a license to abandon documentation altogether. Today I still experience this attitude from many professionals, who regard documentation with contempt and rely on agile theory to argue that documentation is not required (even bad) for software development. And that I could not accept. I have seen enough how crazy things are without documentation.&lt;/p&gt; &lt;p&gt;So, I decided to do some further googling to see what people say about documentation and about agile documentation in particular. And I had a pleasant surprise. I came across an excellent white paper by Scott Ambler, titled: &lt;a href="http://www.agilemodeling.com/essays/agileDocumentation.htm"&gt;Agile Documentation: Strategies for Agile Software Development&lt;/a&gt;. It was really a delight to read it. Finally, I saw a very well balanced analysis of the issue of documentation in software development. With very few exceptions, I liked and agreed with everything Scott writes.&lt;/p&gt; &lt;p&gt;In one of the comments in my post above, I said that my goal in the post was to move the agile pendulum a bit back from its extreme swing. From Scott's paper I can see I did not have to do that. The pendulum has already moved back from its extreme position. At least for those professionals who learn agile principles carefully and thoroughly. And now, I think, the pendulum is right where it should be. Not tough, rigid documentation regiment, nor no-documentation at all. Just Agile Documentation. I don't need to repeat hear the principles of agile documentation. Just read Scott's paper above. great read.&lt;/p&gt; &lt;p&gt;If what Scott writes represents the agile community position about proper SW documentation strategy than I am certainly more supportive of agile methods than I was a week ago. The only sad thing is that I find that too many people have not yet realized the correct position on agile on documentation and still think: Agile documentation = no documentation.&lt;/p&gt; &lt;p&gt;And final note to &lt;a href="http://www.davenicolette.net/agile"&gt;Dave Nicolette&lt;/a&gt; - thanks for your very good comment in the post above. I now have a better and more supportive perspective of Agile methodology. It is definitely maturing.&lt;/p&gt; &lt;p&gt;In my next post, I will describe some of my "techniques" for generating SW documentation and show that, at least to some degree, I have been doing agile documentation without realizing it.&lt;/p&gt; &lt;p&gt;----------------------------------------------------------------------------&lt;/p&gt;&lt;div class="tag_list"&gt;Technorati Tags: &lt;span class="tags"&gt;&lt;a href="http://technorati.com/tag/Agile" rel="tag"&gt;Agile&lt;/a&gt;, &lt;a href="http://technorati.com/tag/Waterfall" rel="tag"&gt;Waterfall&lt;/a&gt;, &lt;a href="http://technorati.com/tag/Project+Management" rel="tag"&gt;Project Management&lt;/a&gt;, &lt;a href="http://technorati.com/tag/Project+Manager" rel="tag"&gt;Project Manager&lt;/a&gt;, &lt;a href="http://technorati.com/tag/Software+Engineering" rel="tag"&gt;Software Engineering&lt;/a&gt;, &lt;a href="http://technorati.com/tag/Software+Project+Management" rel="tag"&gt;Software Project Management&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36930149-6840781121443146926?l=mosgot.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mosgot.blogspot.com/feeds/6840781121443146926/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36930149&amp;postID=6840781121443146926' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36930149/posts/default/6840781121443146926'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36930149/posts/default/6840781121443146926'/><link rel='alternate' type='text/html' href='http://mosgot.blogspot.com/2007/01/agile-documentation.html' title='Agile Documentation'/><author><name>mosgot</name><uri>http://www.blogger.com/profile/01197862673904109978</uri><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>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36930149.post-6149667912934492805</id><published>2007-01-20T21:28:00.000-08:00</published><updated>2007-01-21T02:15:04.675-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Software Project Management'/><category scheme='http://www.blogger.com/atom/ns#' term='Project Manager'/><category scheme='http://www.blogger.com/atom/ns#' term='innovation'/><category scheme='http://www.blogger.com/atom/ns#' term='Software Engineering'/><category scheme='http://www.blogger.com/atom/ns#' term='Project Management'/><title type='text'>Innovation and Project Management - Mutually Exclusive?</title><content type='html'>One of the most common complaints we hear against project management is that it kills innovation. "Oh, here come those project cops. They will put rules on everything, force us to do all kinds of unimportant things. This is the end of innovation. This project is dead because the project manager won't not let us work freely so we can innovate. Because only innovation will bring the really great products".&lt;br /&gt;&lt;br /&gt;Sounds familiar? So many PMs have to struggle with teams (mostly engineers) who don't believe in project management. Who see project management as a damaging force that will stop any real production and will eventually kill the project. Over time, everybody begins to accept this mindset. Where there is project management, there cannot be innovation. And, where there is innovation, project management will suffocate it.&lt;br /&gt;&lt;br /&gt;Powerful argument. Not because it has any merit, because it doesn't. But still, it's powerful because everybody seems to accept it as some kind of tautology. Too often, executives are scared to bring project management into the company (or group) because they are afraid to kill this wonderful tender baby - innovation. PMs are also at a loss as to how to make projects and innovation live in piece together and so, they end up unintentionally fulfilling exactly the "curse" they want to avoid.&lt;br /&gt;&lt;br /&gt;This whole concept of "project management kills innovation" comes from a misunderstanding about what innovation involves. Everybody knows intuitively what innovation is and what it is supposed to give us. The problem is that most people usually interpret "innovation" (often subconsciously) as "give us a free hand to do whatever we want, however we want, whenever we want.  We are artists and therefore, must have full freedom from schedules, scope, planning, cost constraints, etc. But don't worry, if you give us this essential freedom, we will do great things for you. Not quite sure what, not sure when. Not even sure we will deliver. But trust us, if and when we are done, it will be great. Because it's innovation." So, move aside project management, here comes innovation.&lt;br /&gt;&lt;br /&gt;Not so. I hope, everybody realizes that complete freedom does not work. Yes, if you remove all the annoying restrictions (schedule, scope, cost, etc.), the engineers, given enough time, will eventually do something very nice and innovation will have proven itself. What I mean is that in our industry, we usually do not have this luxury. The customer wants its product with the agreed scope, on time and within budget. To the executives and the customer, innovation is not the goal. At best, it's the means. The goal is the exchange of added value (deliverables for money), and on time. If the PM is not going to manage the project and try to ensure the team hits the above constraints, he/she will be considered to have failed and even the project itself may fail. A failed project means a great deal of money that was invested for nothing and non-materialized revenue.&lt;br /&gt;&lt;br /&gt;Now, in order to prevent misunderstanding, let me make it very clear:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Innovation is good! Innovation is very important. Every company should have some.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The trick is, how do we have innovation &lt;span style="font-weight: bold;"&gt;and &lt;/span&gt;project management?&lt;br /&gt;&lt;br /&gt;The points that I'm trying to make are:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Innovation must not exclude project management (and vice verse).&lt;/li&gt;&lt;li&gt;Innovation and project management &lt;span style="font-weight: bold;"&gt;can &lt;/span&gt;live together.&lt;/li&gt;&lt;/ul&gt;Yes, innovation and project management don't have to be mutually exclusive. &lt;span style="font-size:130%;"&gt;&lt;span style="font-size:100%;"&gt;The trick here is:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Innovation should not be prevented. It should be controlled.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-size:100%;"&gt;Many people will think that this statement is an oxymoron. Controlled innovation? I say yes. You can do great innovation even with some control mechanisms.  This is done all the time in R&amp;D organizations. &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-size:100%;"&gt;Even innovators should (and can) do some planning and execute to the plan. The difference is that with innovation, the plan should be less restrictive and more flexible.&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-size:100%;"&gt; But there must be some plan and tracking of execution to the plan. So, say "No" to &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-size:100%;"&gt;something, &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-size:100%;"&gt;someway&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-size:100%;"&gt;, sometime. It's OK to ask even innovators What? How? and when?&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-size:100%;"&gt;Let's&lt;/span&gt;&lt;/span&gt; look at two general cases:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Innovation within a regular project.&lt;/li&gt;&lt;li&gt;Innovation as a project.&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;Innovation Within a Regular Project&lt;span style="font-size:100%;"&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;With the right planning, innovation can live within a project. Project Managers must be very careful not to completely block innovation within their project. Instead, they need to plan for some innovation and be prepared to accommodate it. &lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Do not allow ambiguity in the innovation work in the project. Instead:&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;ul&gt;&lt;li&gt;Innovation work must be officially identified, requested and approved. This is the most important part. Innovation must not be in "Skunk works mode". It should be presented, and justified. Not only why this is a good idea but also why now, in this project?&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Innovation work must be incorporated into the plan and tracked as a risk.&lt;/li&gt;&lt;li&gt;Mechanisms should be in place to allow termination of the innovation work, if it exceeds its planned constraints.&lt;/li&gt;&lt;li&gt;If a project no longer can accommodate the innovation activity, have in place plan to:&lt;/li&gt;&lt;ul&gt;&lt;li&gt;Complete the project without the innovation part.&lt;/li&gt;&lt;li&gt;Spin the innovation work off to a stand-alone effort or into another project.&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;Innovation as a Project&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;This, IMHO, is the best way to go. As I note above, innovation is very important for a company and any company should cultivate it. However, within a regular project, this is possible only on a limited basis. To really cultivate it, the company should recognize that innovation work should be given its own, separate space. When a company prepares its high-level strategy, it should include R&amp;D project work. By including it at the strategic-level planning, it makes the commitment to allow and support innovation. This means dedicated R&amp;amp;D projects that go in parallel with the "regular" (revenue generating) projects. This means the company will put aside the resources and money to cultivate innovation. This way, innovation will have its own life to prosper and ultimately benefit the company.&lt;br /&gt;&lt;br /&gt;Note that I don't say "innovation work". I say "innovation projects". This is not accidental. Even in its own "innovation track" innovation work still cannot be allowed to do something, sometime, somehow. Any work in a commercial enterprise, even innovation work, must be subject to (at least) the famous 3 constraints - scope, time, cost.&lt;br /&gt;&lt;br /&gt;Innovation and project management are not mutually exclusive.&lt;br /&gt;---------------------------------------------------------&lt;br /&gt;&lt;div class="tag_list"&gt;Technorati Tags: &lt;span class="tags"&gt;&lt;a href="http://technorati.com/tag/Innovation" rel="tag"&gt;Innovation&lt;/a&gt;, &lt;a href="http://technorati.com/tag/Project+Management" rel="tag"&gt;Project Management&lt;/a&gt;, &lt;a href="http://technorati.com/tag/Project+Manager" rel="tag"&gt;Project Manager&lt;/a&gt;, &lt;a href="http://technorati.com/tag/Software+Engineering" rel="tag"&gt;Software Engineering&lt;/a&gt;, &lt;a href="http://technorati.com/tag/Software+Project+Management" rel="tag"&gt;Software Project Management&lt;/a&gt;&lt;br /&gt;---------------------------------------------------------&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36930149-6149667912934492805?l=mosgot.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mosgot.blogspot.com/feeds/6149667912934492805/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36930149&amp;postID=6149667912934492805' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36930149/posts/default/6149667912934492805'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36930149/posts/default/6149667912934492805'/><link rel='alternate' type='text/html' href='http://mosgot.blogspot.com/2007/01/innovation-and-project-management.html' title='Innovation and Project Management - Mutually Exclusive?'/><author><name>mosgot</name><uri>http://www.blogger.com/profile/01197862673904109978</uri><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>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36930149.post-6039016151249912696</id><published>2007-01-15T01:59:00.001-08:00</published><updated>2007-01-15T02:09:18.721-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='waterfall'/><category scheme='http://www.blogger.com/atom/ns#' term='Software Project Management'/><category scheme='http://www.blogger.com/atom/ns#' term='agile'/><category scheme='http://www.blogger.com/atom/ns#' term='Project Manager'/><category scheme='http://www.blogger.com/atom/ns#' term='Software Engineering'/><category scheme='http://www.blogger.com/atom/ns#' term='Project Management'/><title type='text'>Waterfall or Agile? Neither</title><content type='html'>&lt;p&gt;This is the debate of the century. Waterfall or agile? Everybody has an opinion, emotions run high on both sides of the line and those who don't have an opinion are confused. It looks like everyone must have an opinion to be respectable. OK, I want to be respectable too so here is my opinion.&lt;/p&gt; &lt;p&gt; &lt;/p&gt; &lt;p&gt;The first and IMHO, most important point is that the debate makes it look like there are only two alternatives for the "right" software development methodology. If it's not waterfall, then it must be agile. If it's not agile, then it must be waterfall. I say "not so". There are more alternatives. For me it's not waterfall, nor agile. Or should I say "both"? The closest methodology to what I like (and try to do) is Iterative Development. Yes, many of you will say that iterative development is a fundamental component of agile development and they will be right. However, agile development also has several things that I don't like. So, I cannot honestly say that I support agile principles.&lt;/p&gt; &lt;p&gt; &lt;/p&gt; &lt;p&gt;Let me say up-front that, in my mind, classical waterfall is completely out of the question. I think that this methodology is so defunct that there is no need for me to explain and justify this position. So, in regards the question "waterfall or agile?", one half of the answer is straight forward: surely not waterfall. But if not waterfall, then what? Well, for me it's not agile either.&lt;/p&gt; &lt;p&gt; &lt;/p&gt; &lt;p&gt;Let's cover briefly the major principles of agile and see what I think about them. I will take the principles directly from the original &lt;a href="http://agilemanifesto.org/"&gt;Agile Manifesto&lt;/a&gt;:&lt;/p&gt; &lt;p&gt;&lt;strong&gt;&lt;em&gt;&lt;u&gt;Our highest priority is to satisfy the customer through early and continuous delivery of valuable software.&lt;/u&gt;&lt;/em&gt; &lt;/strong&gt;&lt;/p&gt; &lt;p&gt;This I like. At the end of the day, customer satisfaction is the ultimate goal. I also like the important principle of &lt;u&gt;useful&lt;/u&gt; software. With regard to rapid and continuous, I like that too, but remember that it takes two to tango. Meaning, the customer needs to agree and work with us to accept our deliverable and rapidly test and provide feedback. You might be surprised, not all customers will want that.&lt;/p&gt; &lt;p&gt;Which brings me to the an important point. Agile experts agree that full customer cooperation with the project team is essential for the success of the agile methodology. This means that the customer must:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;Thoroughly understand agile techniques.  &lt;/li&gt;&lt;li&gt;Agree to work with the project team by the agile principles.  &lt;/li&gt;&lt;li&gt;Do their part in the "deal".&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;The above requires significantly more involvement, commitment and resource allocation from the customer. So, not only you need all of the above from your own company, you need the customer to deliver too. Double challenge. My experience:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;Rarely will the customer deliver on the above requirements.  &lt;/li&gt;&lt;li&gt;Most companies that try to implement agile methodology fail to secure the customer's cooperation but still go ahead with the methodology. In this tango you dance alone and the results are accordingly.&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;&lt;strong&gt;&lt;em&gt;&lt;u&gt;Welcome changing requirements, even late in development. Agile processes harness change for the customer's competitive advantage.&lt;/u&gt;&lt;/em&gt; &lt;/strong&gt;&lt;/p&gt; &lt;p&gt;I have a problem with this. Change is usually unavoidable in software projects, but welcome? No, I don't think so. This is engineer talk. Project managers call it Scope Creep. I am not saying that change must be blocked "at any price". I am saying that change has to be controlled carefully and allowed only under the right circumstances. Both the project team and the customer (again the customer) have to answer the following questions:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;Is the change really necessary?  &lt;/li&gt;&lt;li&gt;Is it necessary &lt;u&gt;now&lt;/u&gt;?  &lt;/li&gt;&lt;li&gt;What will be the benefit?  &lt;/li&gt;&lt;li&gt;What will be the cost?&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;If the answers show that the change must happen, then so be it. But welcome? Changes are a necessary evil. Sorry, I am the old fashioned type.&lt;/p&gt; &lt;p&gt;&lt;strong&gt;&lt;em&gt;&lt;u&gt;Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale.&lt;/u&gt;&lt;/em&gt; &lt;/strong&gt;&lt;/p&gt; &lt;p&gt;I like that. It's a good technique and it works of you are disciplined enough. Agile is even more strict. It requires timeboxing - even better.&lt;/p&gt; &lt;p&gt;&lt;strong&gt;&lt;em&gt;&lt;u&gt;Business people and developers must work together daily throughout the project.&lt;/u&gt;&lt;/em&gt; &lt;/strong&gt;&lt;/p&gt; &lt;p&gt;Absolutely. But I think this is true and critical in any methodology. Show me a methodology that will disagree. So, even though this is true, it's not unique to Agile.&lt;/p&gt; &lt;p&gt;&lt;strong&gt;&lt;em&gt;&lt;u&gt;Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done&lt;/u&gt;&lt;/em&gt;. &lt;/strong&gt;&lt;/p&gt; &lt;p&gt;There are two parts here:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;&lt;u&gt;Support the team members&lt;/u&gt;. Again, true but universal. Not unique to agile.  &lt;/li&gt;&lt;li&gt;&lt;u&gt;Trust them&lt;/u&gt;. Well, where I come from, we had a saying (crude translation): "Respect him and suspect him". As an experienced project manager, I like that better. Not that I think that team members are evil or anything. Just that they are human beings. And that includes me - the project manager - too, of course.&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;&lt;strong&gt;&lt;em&gt;&lt;u&gt;The most efficient and effective method of conveying information to and within a development team is face-to-face conversation.&lt;/u&gt;&lt;/em&gt; &lt;/strong&gt;&lt;/p&gt; &lt;p&gt;This one probably irks me most. Not because of what it says but because of what it does not say. What it does not say is: "we hate documentation". Yes, I know. We all hate documentation. More precisely, we hate to &lt;u&gt;write&lt;/u&gt; the documents. I have never met a project team member that did not like (and actually appreciated) documentation if:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;It was good quality  &lt;/li&gt;&lt;li&gt;Other people wrote it&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;It's much easier and more fun to communicate verbally. But verbal communication has serious drawbacks. This is a significant issue that deserves its own post, so I will not go into detail. I will just note here: face-to-face conversation has no records (other then in people's minds) and, therefore, no memory. Again and again, experience shows us that there is no escaping documentation. The big trick is to cleverly decide what documentation, how much? how? etc. But there is no alternative to good documentation. Don't get me wrong, face-to-face conversation is a great and vital means of communication but, sorry, it cannot make documentation unnecessary.&lt;/p&gt; &lt;p&gt;&lt;strong&gt;&lt;em&gt;&lt;u&gt;Working software is the primary measure of progress.&lt;/u&gt;&lt;/em&gt; &lt;/strong&gt; &lt;/p&gt;&lt;p&gt;I agree assuming the working software does what the customer wants.  &lt;/p&gt;&lt;p&gt;&lt;strong&gt;Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely. &lt;/strong&gt; &lt;/p&gt;&lt;p&gt;OK, this is not really a guideline. It's more of a promise. I do not have enough statistics to make a determination if this has proven itself. I will be glad if someone can enlighten me on this.  &lt;/p&gt;&lt;p&gt;&lt;strong&gt;Continuous attention to technical excellence and good design enhances agility. &lt;/strong&gt; &lt;/p&gt;&lt;p&gt;Again, this is not unique to agile. All methodologies support this, even those that do not call it out specifically.  &lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;em&gt;&lt;u&gt;Simplicity--the art of maximizing the amount of work not done--is essential.&lt;/u&gt;&lt;/em&gt; &lt;/strong&gt;&lt;/p&gt; &lt;p&gt;I like this. The KISS principle is a good principle.&lt;/p&gt; &lt;p&gt;&lt;strong&gt;&lt;em&gt;&lt;u&gt;The best architectures, requirements, and designs emerge from self-organizing teams.&lt;/u&gt;&lt;/em&gt; &lt;/strong&gt;&lt;/p&gt; &lt;p&gt;Here again, I do not have enough insight to make a judgement. Let me know if you have any concrete info about this.&lt;/p&gt; &lt;p&gt;&lt;strong&gt;&lt;u&gt;&lt;em&gt;At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly.&lt;/em&gt;&lt;/u&gt; &lt;/strong&gt; &lt;/p&gt;&lt;p&gt;This is what the PMBOK calls Lessons Learned and is basic project management. It's good and again not unique to agile techniques.  &lt;/p&gt;&lt;p&gt;   &lt;/p&gt;&lt;p&gt;So this is a brief summary on how I feel about agile development. I will sometime write about my own technique for which there is no formal name but I will characterize it as a combination of iterative and flexible waterfall.  &lt;/p&gt;&lt;p&gt;   &lt;/p&gt;&lt;p&gt;Let me know what you think.&lt;/p&gt;&lt;p&gt;-----------------------------------------------------------------&lt;/p&gt;&lt;p&gt;Technorati Tags: &lt;span class="tags"&gt;&lt;a href="http://technorati.com/tag/agile" rel="tag"&gt;agile&lt;/a&gt;, &lt;a href="http://technorati.com/tag/waterfall" rel="tag"&gt;waterfall&lt;/a&gt;, &lt;a href="http://technorati.com/tag/Project+Management" rel="tag"&gt;Project Management&lt;/a&gt;, &lt;a href="http://technorati.com/tag/Project+Manager" rel="tag"&gt;Project Manager&lt;/a&gt;, &lt;a href="http://technorati.com/tag/Software+Engineering" rel="tag"&gt;Software Engineering&lt;/a&gt;, &lt;a href="http://technorati.com/tag/Software+Project+Management" rel="tag"&gt;Software Project Management&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span class="tags"&gt;&lt;a href="http://technorati.com/tag/Software+Project+Management" rel="tag"&gt;-----------------------------------------------------------------&lt;br /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36930149-6039016151249912696?l=mosgot.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mosgot.blogspot.com/feeds/6039016151249912696/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36930149&amp;postID=6039016151249912696' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36930149/posts/default/6039016151249912696'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36930149/posts/default/6039016151249912696'/><link rel='alternate' type='text/html' href='http://mosgot.blogspot.com/2007/01/waterfall-or-agile-neither.html' title='Waterfall or Agile? Neither'/><author><name>mosgot</name><uri>http://www.blogger.com/profile/01197862673904109978</uri><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>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36930149.post-8179444531510793174</id><published>2007-01-06T22:31:00.000-08:00</published><updated>2007-01-09T21:54:05.239-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Software Project Management'/><category scheme='http://www.blogger.com/atom/ns#' term='Project Manager'/><category scheme='http://www.blogger.com/atom/ns#' term='Vendor management'/><category scheme='http://www.blogger.com/atom/ns#' term='Project Management'/><category scheme='http://www.blogger.com/atom/ns#' term='Procurement Management'/><title type='text'>Vendor Management - a Project within a Project</title><content type='html'>In previous posts (&lt;a href="http://mosgot.blogspot.com/2006/11/cost-management-is-not-optional.html"&gt;Cost Management is not Optional&lt;/a&gt; and &lt;a href="http://mosgot.blogspot.com/2006/12/risk-management-is-not-hard-do-it.html"&gt;Risk Management is not Hard - do it&lt;/a&gt;), I covered two very important project management Knowledge Areas (PMI terminology) which are not practiced enough in the software industry. I noted that they can be practiced relatively easily (at least at the basic level). Vendor management, on the other hand, is the opposite. It is something most SW projects have to deal with and it's not easy. The reason: if you look at it closely, it actually comprises a whole project unto itself. A project within a project. You need to plan and execute a special version of all Knowledge Areas for the vendor management, separately (yet interdependently) from your own project. And then some.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;The vendor represents its own stakeholders that require stakeholder management.&lt;/li&gt;&lt;li&gt;You need to develop the vendor schedule..&lt;/li&gt;&lt;li&gt;You need to define the scope of the vendor work.&lt;/li&gt;&lt;li&gt;You need to work out the financial part.&lt;/li&gt;&lt;li&gt;And you need to plan and execute all the other areas: Human Resources, Quality, Risk, Communication, etc.&lt;/li&gt;&lt;/ul&gt;And, as I note above, there is more that is unique to the vendor management:&lt;br /&gt;&lt;ul&gt;&lt;li&gt; The vendor's interests are usually contradictory to yours. You want maximum scope with minimum cost. The vendor wants minimum scope with maximum pay (that's cost for you). This forces you to&lt;/li&gt;&lt;ul&gt;&lt;li&gt;Negotiate.&lt;/li&gt;&lt;li&gt;Be extra vigilant.&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;There is the whole legal part. There must be a contract between your company and the vendor. Although putting the contract together is not your job, you, as the project manager, have a responsibility to ensure it happens. Don't dare to work without one. it may work out a couple of times but then there will be that one time when things go wrong, there is no contract in place and you'll regret it for the rest of your life. Besides, agreeing to work without a contract demonstrates that you are not professional.&lt;/li&gt;&lt;/ul&gt;All of the above introduce a full range of activities of a typical project into your project. As I said: a project within a project. Make sure to manage your vendor as a project.&lt;br /&gt;---------------------------------------------------------------------------------&lt;br /&gt;&lt;div class="tag_list"&gt;Technorati Tags: &lt;span class="tags"&gt;&lt;a href="http://technorati.com/tag/Vendor+management" rel="tag"&gt;Vendor management&lt;/a&gt;, &lt;a href="http://technorati.com/tag/Procurement+Management" rel="tag"&gt;Procurement Management&lt;/a&gt;, &lt;a href="http://technorati.com/tag/Project+Management" rel="tag"&gt;Project Management&lt;/a&gt;, &lt;a href="http://technorati.com/tag/Project+Manager" rel="tag"&gt;Project Manager&lt;/a&gt;, &lt;a href="http://technorati.com/tag/Software+Engineering" rel="tag"&gt;Software Engineering&lt;/a&gt;, &lt;a href="http://technorati.com/tag/Software+Project+Management" rel="tag"&gt;Software Project Management&lt;/a&gt;&lt;br /&gt;---------------------------------------------------------------------------------&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36930149-8179444531510793174?l=mosgot.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mosgot.blogspot.com/feeds/8179444531510793174/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36930149&amp;postID=8179444531510793174' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36930149/posts/default/8179444531510793174'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36930149/posts/default/8179444531510793174'/><link rel='alternate' type='text/html' href='http://mosgot.blogspot.com/2007/01/vendoe-management-project-within.html' title='Vendor Management - a Project within a Project'/><author><name>mosgot</name><uri>http://www.blogger.com/profile/01197862673904109978</uri><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>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36930149.post-9055784819465369234</id><published>2006-12-30T22:32:00.000-08:00</published><updated>2006-12-31T00:34:34.664-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Risk Management'/><category scheme='http://www.blogger.com/atom/ns#' term='Project Manager'/><category scheme='http://www.blogger.com/atom/ns#' term='stakeholder management'/><category scheme='http://www.blogger.com/atom/ns#' term='Software Requirements Specification'/><title type='text'>Risk Management is not hard, do it</title><content type='html'>&lt;span style="font-family: trebuchet ms;"&gt;&lt;/span&gt; &lt;span style="font-family: trebuchet ms;"&gt;This is another area where Software Project Managers are not very good at: Risk Management. Why not? I found 2 main things and both are typical of the SW industry:&lt;br /&gt;&lt;/span&gt;&lt;ul&gt;&lt;li&gt;There is no pressure on PMs and no expectation that they perform risk management. Most executives know about risk management but they don't realize that it's part of a PM's responsibilities.&lt;/li&gt;&lt;li&gt;Too many PMs in the SW industry just don't have hard skills, so even if they understand the importance of risk management, they don't know how to do it. So they just don't.&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-family: trebuchet ms;"&gt;Interesting anecdote: I occasionally teach SW Project Management at the local community college. One of my ex-students asked me to come to his workplace and make a presentation to the PMs in the company. In order to decide the topic, he ran a poll among the PMs, asking them for the topic they would most be interested in. Interestingly, Risk Management came in first with 22 votes (second place had a much lower rank - Stakeholder Management with 16 votes). So, this was clearly at the top of their mind. Not big statistics but I was not surprised. I have not yet given the presentation (scheduled for late January) but I will try to understand why they were so concerned about Risk Management.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: trebuchet ms;"&gt;Anyway, just as I noted in &lt;a href="http://mosgot.blogspot.com/2006/11/cost-management-is-not-optional.html"&gt;Cost Management is not Optional&lt;/a&gt;, I think that Risk Management shouldn't be optional either. It's important for the project and for the PM as a skill.&lt;/span&gt; A&lt;span style="font-family: trebuchet ms;"&gt;nd, it's really pretty easy. I don't want to "teach" Risk Management here. As I noted before, text books can do it much better than a blog. But I do want to give some tips here:&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-family: trebuchet ms;"&gt;&lt;span style="font-weight: bold;"&gt;It's not hard&lt;/span&gt;. Any basic book on project management gives the basics of Risk Management. Take a little time to learn it. It has a lot of overlap with Issue Management, which most PMs do regularly.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family: trebuchet ms;"&gt;&lt;span style="font-weight: bold;"&gt;Use mitigation to avoid contingency&lt;/span&gt;. A lot of PMs forget that it's much better to get rid of the risk before the risk event happens, rather than execute the contingency plan after the risk event has happened. Why be the smart guy (or gal) if you can be the wise one?&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family: trebuchet ms;"&gt;&lt;span style="font-weight: bold;"&gt;Assign risk owners&lt;/span&gt;. You don't have to resolve all the risks all by yourself. You have a team. Let them help out. In fact, there will be risks which you are not the right person to own anyway.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family: trebuchet ms;"&gt;&lt;span style="font-weight: bold;"&gt;Track regularly&lt;/span&gt;. Risks are like issues. You need to track them regularly to make sure they are being taken care of.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family: trebuchet ms; font-weight: bold;"&gt;Find a risk log template &lt;/span&gt;&lt;span style="font-family: trebuchet ms;"&gt;. Templates make life so much easier. Don't waste time re-inventing the wheel. There are zillions of templates out there.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-family: trebuchet ms;"&gt;Once you start to do regular risk management on your projects, you will see that it's not hard and you'll enjoy the benefit of better project control and the appreciation of all of your stakeholders.&lt;br /&gt;&lt;br /&gt;Let me know what you think.&lt;br /&gt;---------------------------------------------------------------&lt;br /&gt;&lt;/span&gt;&lt;div class="tag_list"&gt;Technorati Tags: &lt;span class="tags"&gt;&lt;a href="http://technorati.com/tag/Risk+Management" rel="tag"&gt;Risk Management&lt;/a&gt;, &lt;a href="http://technorati.com/tag/Project+Management" rel="tag"&gt;Project Management&lt;/a&gt;, &lt;a href="http://technorati.com/tag/Project+Manager" rel="tag"&gt;Project Manager&lt;/a&gt;, &lt;a href="http://technorati.com/tag/Software+Engineering" rel="tag"&gt;Software Engineering&lt;/a&gt;, &lt;a href="http://technorati.com/tag/Software+Project+Management" rel="tag"&gt;Software Project Management&lt;/a&gt;&lt;br /&gt;------------------------------------------------------&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36930149-9055784819465369234?l=mosgot.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mosgot.blogspot.com/feeds/9055784819465369234/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36930149&amp;postID=9055784819465369234' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36930149/posts/default/9055784819465369234'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36930149/posts/default/9055784819465369234'/><link rel='alternate' type='text/html' href='http://mosgot.blogspot.com/2006/12/risk-management-is-not-hard-do-it.html' title='Risk Management is not hard, do it'/><author><name>mosgot</name><uri>http://www.blogger.com/profile/01197862673904109978</uri><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>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36930149.post-3543863909776825532</id><published>2006-12-23T23:00:00.000-08:00</published><updated>2006-12-23T22:59:39.791-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Software Project Management'/><category scheme='http://www.blogger.com/atom/ns#' term='Project Manager'/><category scheme='http://www.blogger.com/atom/ns#' term='Communications Management'/><category scheme='http://www.blogger.com/atom/ns#' term='Software Engineering'/><category scheme='http://www.blogger.com/atom/ns#' term='Project Management'/><title type='text'>The Engineer as a Communication Tool for Remote Teams</title><content type='html'>&lt;span style="font-family: trebuchet ms;"&gt;We all have experience working with remote teams. And it's most likely not a very good experience. Remote is hard. Many experienced professionals will tell you that the shortcomings outweigh the benefits and that, therefore, companies should not allow dispersed teams. But we all know better - ain't gonna happen. The lure of cheap labor is too strong for the executives. So, remote teams are here to stay - at least for a while.&lt;br /&gt;&lt;br /&gt;One of the most painful problems that I have experienced with remote teams is the communications issue. Mostly, the members of the remote team are very good professionals. They know their job. They have to. They have to prove themselves even more than the local team members. The problem is the difficulties in the communications. Distance also means time. They are not only far away, they are also usually asleep when we are awake and visa versa. They have a different culture (including work culture). But the most important factor (IMHO) is: Being remote means not being involved. Not that they don't want to. The time-space difference just makes it so hard. And it goes both ways. Not only are they not able to be involved with our work, we can't be involved with theirs. So we are all familiar with frustration around this disconnect. If we don't understand these dynamics we just conclude that they are just lousy professionals. Those of us who are more experienced know better: it's the communications, idiot!&lt;br /&gt;&lt;br /&gt;Now, you are the PM and you have a local team plus a remote one (or more than one). How do you handle this communications problem?  Well, the first thing you should do is probably something you haven't considered: try to see if you can avoid the remote team altogether. Yes! Remote teams are not something from God. Just from the executives. Your first reaction should be: "Do I really have to work with them?" Find the answer to the following:&lt;br /&gt;&lt;/span&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-family: trebuchet ms;"&gt;Do I need their skills in my project?&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family: trebuchet ms;"&gt;Are there available local professionals who can do the same job?&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-family: trebuchet ms;"&gt;Go to your manager/executive and try to convince them to allow you to replace the remote team with locals. I know that this attitude does not sound so nice. Where is the team spirit? Where is globalization embracing? Where is your tolerance for openness to other cultures? You know... My answer is: if the project fails, nobody will give you credit for having team spirit, embracing globalization or being open to other cultures. Your job and commitment are to complete the project successfully and if you think remote teams are a risk, it's your responsibility and right to try to eliminate this problematic element. Now, we all know that you don't have a lot of chance to succeed. This is usually something that is imposed on you and it's not optional. But it does not heart to try and who knows, maybe this is going to be your lucky day...&lt;br /&gt;&lt;br /&gt;Assuming you must work with the remote team, how do you handle the communications problem? &lt;/span&gt;&lt;span style="font-family: trebuchet ms;"&gt;Textbooks offer a variety of techniques (email, con calls, Video conferencing, status reports, etc.), so I'm not going to repeat that here. Textbooks can do it much better than a blog. What I'm going to recommend is one technique which is slightly more radical but has proven extremely beneficial. Not theory, real experience.&lt;br /&gt;&lt;br /&gt;The idea is: have an engineer from the remote team come and stay with the local team and act as a liaison between the local and remote teams. The engineers from the remote team will rotate in the liaison role. Each engineer should stay for &lt;/span&gt;&lt;span style="font-family: trebuchet ms;"&gt;an extended period (typically one to three months) so they can get really knowledgeable about how things work locally. This person will spend a significant period of his/her time on the following:&lt;br /&gt;&lt;/span&gt;&lt;ul&gt;&lt;li&gt;Talk with team members to get to know them well.&lt;/li&gt;&lt;li&gt;Thoroughly learn the product (code, docs, etc.)&lt;/li&gt;&lt;li&gt;Learn and understand the local team's development "culture" (tools, processes, etc.)&lt;/li&gt;&lt;li&gt;Learn and understand the business aspects (time pressures, clients, executive perspectives, etc.)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Participate in most meetings, to understand exactly what is going on with the team, product and project.&lt;/li&gt;&lt;li&gt;Be the main communication "tool" with his/her "home" team. Typically, have a regular, daily (probably more like nightly) phone call with the remote team to update them on what has been going on locally and ensure that the remote team is well updated.&lt;/li&gt;&lt;li&gt;Represent the remote team locally.&lt;/li&gt;&lt;/ul&gt;I think that the benefits of this technique are veryu clear to see. I have experienced this twice in my career and was very happy with the results.&lt;br /&gt;&lt;br /&gt;Needless to say that this also has disadvantages:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Costly. You have to pay for the liaison's transportation, food, accommodations, etc.&lt;/li&gt;&lt;li&gt;Complicated logistics.&lt;/li&gt;&lt;li&gt;A large chunck of the liaison's time is spent on the communications part, so they contribute less to the generation of the product artifacts.&lt;/li&gt;&lt;li&gt;Their time schedule is typically somewhat shifted - they work late into the night and report to work late in the morning.&lt;/li&gt;&lt;/ul&gt;Yet, my experience is that the benefits of this arrangement far exceed the disadvantages. I highly recommend this. Talk to your manager tomorrow.&lt;br /&gt;&lt;br /&gt;Let me know what you think.&lt;br /&gt;---------------------------------------------------------------&lt;br /&gt;&lt;span style="font-family: trebuchet ms;"&gt;&lt;/span&gt;&lt;div class="tag_list"&gt;Technorati Tags: &lt;span class="tags"&gt;&lt;a href="http://technorati.com/tag/Communications+Management" rel="tag"&gt;Communications Management&lt;/a&gt;, &lt;a href="http://technorati.com/tag/Project+Management" rel="tag"&gt;Project Management&lt;/a&gt;, &lt;a href="http://technorati.com/tag/Project+Manager" rel="tag"&gt;Project Manager&lt;/a&gt;, &lt;a href="http://technorati.com/tag/Software+Engineering" rel="tag"&gt;Software Engineering&lt;/a&gt;, &lt;a href="http://technorati.com/tag/Software+Project+Management" rel="tag"&gt;Software Project Management&lt;/a&gt;&lt;br /&gt;---------------------------------------------------------------&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36930149-3543863909776825532?l=mosgot.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mosgot.blogspot.com/feeds/3543863909776825532/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36930149&amp;postID=3543863909776825532' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36930149/posts/default/3543863909776825532'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36930149/posts/default/3543863909776825532'/><link rel='alternate' type='text/html' href='http://mosgot.blogspot.com/2006/12/engineer-as-communication-tool-for.html' title='The Engineer as a Communication Tool for Remote Teams'/><author><name>mosgot</name><uri>http://www.blogger.com/profile/01197862673904109978</uri><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>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36930149.post-1327432136882546033</id><published>2006-12-17T22:34:00.000-08:00</published><updated>2006-12-17T22:45:03.351-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Software Project Management'/><category scheme='http://www.blogger.com/atom/ns#' term='Project Manager'/><category scheme='http://www.blogger.com/atom/ns#' term='Software Engineering'/><category scheme='http://www.blogger.com/atom/ns#' term='Project Management'/><title type='text'>Excellent Blog:  David's Software Development Survival Guide</title><content type='html'>&lt;span style="font-family:trebuchet ms;"&gt;Hi everybody.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:trebuchet ms;"&gt;I just came across this  blog: &lt;a href="http://softwaresurvival.blogspot.com/"&gt;David's Software Development Survival Guide&lt;/a&gt;.  I like it a lot and if you like my blog (more or less), you'll like that one too.&lt;br /&gt;&lt;br /&gt;David writes about similar topics as I write. His material is very informative, very practical. It clearly shows that he's been around and learned a thing or two (and more). He provides a good mix of theory and practice, formal and informal. Highly recommended. I have also blogrolled him (on the right). Take a look.&lt;br /&gt;&lt;br /&gt;Keep up the good work David and thanks.&lt;br /&gt;---------------------------------------------------------------------------------------&lt;br /&gt;&lt;/span&gt;&lt;div class="tag_list"&gt;Technorati Tags: &lt;span class="tags"&gt;&lt;a href="http://technorati.com/tag/+Project+Management" rel="tag"&gt; Project Management&lt;/a&gt;, &lt;a href="http://technorati.com/tag/Project+Manager" rel="tag"&gt;Project Manager&lt;/a&gt;, &lt;a href="http://technorati.com/tag/Software+Engineering" rel="tag"&gt;Software Engineering&lt;/a&gt;, &lt;a href="http://technorati.com/tag/Software+Project+Management" rel="tag"&gt;Software Project Management&lt;/a&gt;&lt;br /&gt;---------------------------------------------------------------------------&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36930149-1327432136882546033?l=mosgot.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mosgot.blogspot.com/feeds/1327432136882546033/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36930149&amp;postID=1327432136882546033' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36930149/posts/default/1327432136882546033'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36930149/posts/default/1327432136882546033'/><link rel='alternate' type='text/html' href='http://mosgot.blogspot.com/2006/12/excellent-blog-davids-software.html' title='Excellent Blog:  David&apos;s Software Development Survival Guide'/><author><name>mosgot</name><uri>http://www.blogger.com/profile/01197862673904109978</uri><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-36930149.post-8609539045374804161</id><published>2006-12-15T19:42:00.000-08:00</published><updated>2006-12-15T21:41:44.622-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Software Project Management'/><category scheme='http://www.blogger.com/atom/ns#' term='stakeholder management'/><category scheme='http://www.blogger.com/atom/ns#' term='Software Engineering'/><category scheme='http://www.blogger.com/atom/ns#' term='Project Management'/><title type='text'>Story Time - Stakeholder Management</title><content type='html'>&lt;span style="font-family: trebuchet ms;"&gt;This really happened to me. Naturally, I hide identifying details.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: trebuchet ms;"&gt;Several years ago I got a contract position as Program Manager for a startup company. The company had just signed their first contract with a very large client. This was a do-or-die thing, so they figured it was time to bring someone in to make sure the project gets done properly.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: trebuchet ms;"&gt;The company had four executives: &lt;/span&gt;&lt;br /&gt;&lt;ul style="font-family: trebuchet ms;"&gt;&lt;li&gt;CEO, who was also the founder&lt;/li&gt;&lt;li&gt;CTO who was also a co-founder&lt;/li&gt;&lt;li&gt;VP1 who was the son of the chair of the board (smell trouble? No kidding)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;VP2&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-family: trebuchet ms;"&gt;It took me two weeks to realize that I had landed right in the middle of a major war within the executive layer. The war was over the future strategy of the company. Actually, over the future of the company.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: trebuchet ms;"&gt;&lt;span style="font-weight: bold;"&gt;Camp 1&lt;/span&gt;: CEO and CTO: think the company is viable, has a great future and needs to continue with the current strategy.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: trebuchet ms;"&gt;&lt;span style="font-weight: bold;"&gt;Camp 2&lt;/span&gt;: Chair (daddy) and VP1 (son): think that the company is OK right now but will not succeed long term. Therefore, it should be sold ASAP to recover the investment.&lt;br /&gt;&lt;br /&gt;I was the only manager in the company (other than the executives), so I had to somehow keep the boat afloat while the gods were fighting. I focused on the success of the project and did my best to stay out of the line of fire. But, as these things go, the line of fire chased me. I soon became their secret ally. One day one camp would sit down with me, tell me their secret war plans and urge me not to tell the other camp. The next day, the other camp would do the same.  I listened politely but stubbornly avoided  becoming a part of that in any way.  From my perspective, each one of the  executives could fire me in a blink of the eye if he thought I was siding with the other camp, so it was clear to me that the smartest thing was to stay out of that war as much as I could. So I continued to "stay the course" (ouch, not the smartest choice of words these days...) and concentrate on the project execution.&lt;br /&gt;&lt;br /&gt;But things turned very problematic very quickly. It turns out that as the war intensified, the camps started with more personal and direct criticism and accusations. And so, an argument (one of many) broke-out: was our product ready for prime time or not? VP1 and VP2 claimed that the product was in a prototype state - not ready for prime time, which proved that CEO and CTO were incompetent. CEO and CTO claimed that the product was mature and ready for prime time, hence, they were doing a good job. Daddy-chair secretly sided with his son (VP1) but could not do so openly. So, the BOD was looking for somebody neutral but knowledgeable to "tell them the truth". And guess who they found. Right, me. My manager (VP1... Son) notified me that I was invited to the BOD's next meeting to  "testify".&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: trebuchet ms;"&gt;&lt;br /&gt;And then, to make matters worse, the CEO fired VP1 (my boss) ! So, I get a phone call from (ex) VP1 telling me that he had &lt;/span&gt;&lt;span style="font-family: trebuchet ms;"&gt;just &lt;/span&gt;&lt;span style="font-family: trebuchet ms;"&gt;been fired. He explained to me that he was sure he would be reinstated because his daddy would take care of that. Oh, and also, now, it was more important than ever that I deliver the right message to the BOD. Get it?&lt;br /&gt;&lt;br /&gt;So what do I do?  &lt;/span&gt;&lt;span style="font-family: trebuchet ms;"&gt;Here I was, just doing my job and suddenly, I decide the future of the world. And what's worse, the way I looked at it from my perspective, this was a lose-lose case. If I support camp 1, camp 2 will get rid of me. &lt;/span&gt;&lt;span style="font-family: trebuchet ms;"&gt;If I support camp 2, camp 1 will get rid of me. Damned if I do, damned if I don't. Either way, once I "testify", my employment with the company would be very short.&lt;/span&gt;&lt;span style="font-family: trebuchet ms;"&gt; This was still the dot com bust time and losing a job was even less fun than usual. I will admit that I had a few not easy days. I had a family to support and all that.&lt;br /&gt;&lt;br /&gt;So, I thought and thought and strategised and &lt;/span&gt;&lt;span style="font-family: trebuchet ms;"&gt;strategised: which side should I support and yet survive?. I saw no way out. And then I had this eureka: to choose a side is the wrong consideration altogether! I must not choose sides in a political-power war. I must not think what's good for me, I must do what's right! I am first and foremost a professional and I must act professionally. And if I loose my job (I was sure of that) so be it. I just refuse to play along with this political power struggle.&lt;br /&gt;&lt;br /&gt;So, the next day, I met with both camps (separately) and officially notified them that they should not expect me to support any camp and that what I would tell the BOD will be my true and honest professional judgment of the status of the project and the product. And after making that statement, I closed my eyes and waited for the ax to come down.&lt;br /&gt;&lt;br /&gt;How big was my surprise. First I should say how big was &lt;span style="font-weight: bold;"&gt;their &lt;/span&gt;surprise. That, obviously was the one answer they had &lt;span style="font-weight: bold;"&gt;not &lt;/span&gt;expected. But when they heard it, they liked it! They apologized for dragging me into that war and said that all they wanted from me from now on was just to continue with my work and make sure that the project was successful. Which was what I wanted to do all along :)&lt;br /&gt;&lt;br /&gt;I was so happy and proud that I had made the decision not to play the wrong game and promised myself that I would continue to conduct my job by this simple principle:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;Be professional.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;These are not empty words, It's important, it's the right way and sometimes it even works :).&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: trebuchet ms;"&gt;So, happy ending to this story. Talk about stakeholder management...&lt;br /&gt;------------------------------------------------------------------------------------&lt;br /&gt;&lt;/span&gt;&lt;div class="tag_list"&gt;Technorati Tags: &lt;span class="tags"&gt;&lt;a href="http://technorati.com/tag/stakeholder+management" rel="tag"&gt;stakeholder management&lt;/a&gt;, &lt;a href="http://technorati.com/tag/Project+Management" rel="tag"&gt;Project Management&lt;/a&gt;, &lt;a href="http://technorati.com/tag/Project+Manager" rel="tag"&gt;Project Manager&lt;/a&gt;, &lt;a href="http://technorati.com/tag/Software+Engineering" rel="tag"&gt;Software Engineering&lt;/a&gt;, &lt;a href="http://technorati.com/tag/Software+Project+Management" rel="tag"&gt;Software Project Management&lt;/a&gt;&lt;br /&gt;------------------------------------------------------------------------&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36930149-8609539045374804161?l=mosgot.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mosgot.blogspot.com/feeds/8609539045374804161/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36930149&amp;postID=8609539045374804161' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36930149/posts/default/8609539045374804161'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36930149/posts/default/8609539045374804161'/><link rel='alternate' type='text/html' href='http://mosgot.blogspot.com/2006/12/story-time-stakeholder-management.html' title='Story Time - Stakeholder Management'/><author><name>mosgot</name><uri>http://www.blogger.com/profile/01197862673904109978</uri><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-36930149.post-7565345213006502877</id><published>2006-12-08T23:38:00.000-08:00</published><updated>2006-12-09T22:09:17.606-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Software Project Management'/><category scheme='http://www.blogger.com/atom/ns#' term='QA'/><category scheme='http://www.blogger.com/atom/ns#' term='Project Manager'/><category scheme='http://www.blogger.com/atom/ns#' term='QA engineer'/><category scheme='http://www.blogger.com/atom/ns#' term='testing'/><category scheme='http://www.blogger.com/atom/ns#' term='Software Engineering'/><category scheme='http://www.blogger.com/atom/ns#' term='test'/><category scheme='http://www.blogger.com/atom/ns#' term='test engineer'/><category scheme='http://www.blogger.com/atom/ns#' term='Project Management'/><title type='text'>The Test Engineer is the Project Manager's Best Friend</title><content type='html'>Or should be...&lt;br /&gt;&lt;br /&gt;Over the years, the status of the QA profession has evolved (or, more correctly, devolved). For some reason, it has become the norm to view the QA engineer as some kind of a "second rate citizen" in the project team. Most other professionals, in particular the development engineers, look down on them. The test engineer is considered some sort of a failing development engineer. If you try to be a developer and  And, as it often times happens in life, this misconception becomes sort of a self-fulfilling prophecy. Because of the poor image, nobody really wants to be a QA engineer, so only the no-so-good engineers end up "falling" down into this "lower caste" profession.&lt;br /&gt;&lt;br /&gt;QA engineers are usually treated with resentment and viewed as a necessary evil and an obstacle on the way to the product release. Engineers treat them dismissively,try to order them around and pressure them to not delay the release. Usually, the QA group is officially subordinated to the engineering group, reporting to the Director or VP of Engineering. &lt;span style="font-weight: bold;"&gt;This is a clear conflict of interest!&lt;/span&gt; The QA people are managed by the development manager whom they are supposed to audit and whose product code they are required to test.&lt;br /&gt;&lt;br /&gt;But for you - the project manager - the test engineer is the best friend! The QA engineer is your last "line of defense" in the release process before the product goes to the customer. He/she gives you the last chance to find the problems, catch the unacceptable bugs and generally, give you a professional, impartial assessment of the readiness of the product for release. And they are, by their profession, the most qualified to do that job. As a project manager you know (I hope) that it is so much better if the annoying QA engineer finds all these embarrassing issues, rather than the  annoyed customer.  So, the QA engineer can save you a lot of embarrassment and headache.&lt;br /&gt;&lt;br /&gt;And it is actually not at all true that QA engineering is less sophisticated and technically challenging than the job of the developer. A good QA engineer must have the same technical skill level as the developers. A major reason for the misunderstanding is because too many people think: "QA Engineer = black-box testing".  Indeed,black-box testing is not rocket science. However, any good QA engineer must be skilled in white-box testing and this is a whole different game altogether. I can easily find development engineers who will be challenged by QA engineers who implement white-box testing. And what about test automation? How many developers are skilled in building test automation tools? And what about testing of real-time, embedded software?&lt;br /&gt;&lt;br /&gt;So, in your project, be sure to get the best QA engineers you can; protect them and support them and take their test findings seriously. If you don't the customer will. And do not save effort to change the team's attitude towards them Everybody must realize once and for all that testing is one of the best things in the release process.&lt;br /&gt;&lt;br /&gt;Let me know what you think.&lt;br /&gt;-----------------------------------------------------------------------------------------&lt;br /&gt;&lt;div class="tag_list"&gt;Technorati Tags: &lt;span class="tags"&gt;&lt;a href="http://technorati.com/tag/test" rel="tag"&gt;test&lt;/a&gt;, &lt;a href="http://technorati.com/tag/testing" rel="tag"&gt;testing&lt;/a&gt;, &lt;a href="http://technorati.com/tag/QA" rel="tag"&gt;QA&lt;/a&gt;, &lt;a href="http://technorati.com/tag/test+engineer" rel="tag"&gt;test engineer&lt;/a&gt;, &lt;a href="http://technorati.com/tag/QA+engineer" rel="tag"&gt;QA engineer&lt;/a&gt;, &lt;a href="http://technorati.com/tag/Project+Management" rel="tag"&gt;Project Management&lt;/a&gt;, &lt;a href="http://technorati.com/tag/Project+Manager" rel="tag"&gt;Project Manager&lt;/a&gt;, &lt;a href="http://technorati.com/tag/Software+Engineering" rel="tag"&gt;Software Engineering&lt;/a&gt;, &lt;a href="http://technorati.com/tag/Software+Project+Management" rel="tag"&gt;Software Project Management&lt;/a&gt;,&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36930149-7565345213006502877?l=mosgot.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mosgot.blogspot.com/feeds/7565345213006502877/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36930149&amp;postID=7565345213006502877' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36930149/posts/default/7565345213006502877'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36930149/posts/default/7565345213006502877'/><link rel='alternate' type='text/html' href='http://mosgot.blogspot.com/2006/12/test-engineer-is-project-managers-best.html' title='The Test Engineer is the Project Manager&apos;s Best Friend'/><author><name>mosgot</name><uri>http://www.blogger.com/profile/01197862673904109978</uri><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-36930149.post-1382800134468097589</id><published>2006-11-24T20:31:00.000-08:00</published><updated>2006-11-28T22:50:28.623-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Software Project Management'/><category scheme='http://www.blogger.com/atom/ns#' term='Cost management'/><category scheme='http://www.blogger.com/atom/ns#' term='Project Manager'/><category scheme='http://www.blogger.com/atom/ns#' term='Software Engineering'/><category scheme='http://www.blogger.com/atom/ns#' term='project schedule'/><category scheme='http://www.blogger.com/atom/ns#' term='Project Management'/><category scheme='http://www.blogger.com/atom/ns#' term='schedule'/><title type='text'>Cost Management is Not Optional</title><content type='html'>All too often, I see companies and/or projects where project cost management is not done at all. Project Managers just don't deal with the money aspect. In many companies, the PM is not expected to manage the cost of the project. In some, the PM is even discouraged from doing this.&lt;br /&gt;I saw many organizations where the executives somehow did not even know that PMs can do this for their projects, let alone &lt;span style="font-weight: bold;"&gt;should &lt;/span&gt;do it. When the (skilled) PM brings the topic up and demonstrates how this can be done and how beneficial this is, they are surprised. And happy.&lt;br /&gt;But it is a fact that in many places, PMs are not required to manage the project cost.&lt;br /&gt;&lt;br /&gt;The point I want to make in this post is:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Even if you (the PM) are not expected to manage your project cost, you should still do it!&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Considering the fact that cost is one of the 3 famous project constraints, this is one of the most fundamental skills that PMs must have and must apply for their projects. And, it is one the most important activities that the PM must engage in. Even if the PM is not required to manage cost, they must feel compelled to do it anyway. At least two reasons:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;For your own professional development. As a PM you must become skilled in cost management. Without some basic skill and experience in this area, IMHO, you cannot be regarded as a senior professional. If you work in a company where cost management is not expected of you, what better environment can you have to practice and learn? And educate the management?&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Cost management is a critical tool for better managing and executing projects and programs. Without cost management, it is impossible to calculate such things as ROI, &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;NPV&lt;/span&gt; and Earned Value. If a company wants to have a solid project/program strategy, it must use these (and many other) tools. Without project cost management, the company gropes in the dark.&lt;/li&gt;&lt;/ul&gt;Company financials are not a simple matter at all. In order to perform really good project cost management, the PM must be familiar with general business financial management and the specifics of his organization. This requires from the PM a significant investment in time and effort to achieve a good level of expertise. This is undoubtedly a discouraging  factor and may explain why  cost management is a 'weak link" in software project management. However, I want to claim that this should not stop the PM from practicing some basic-level of cost management. Two important points:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Even minimal cost management can provide significant benefit&lt;/span&gt;&lt;br /&gt;Forget all the company financial policies and general finance management theory. All you need to do is estimate costs and track expenses for your project. That's all. You'll be surprised how many good things can come out of this. And...&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Minimal cost management is actually pretty easy to do&lt;/span&gt;&lt;br /&gt;Current project management software tools make it relatively easy to estimate costs and track expenses. Here are some guidelines, using MS Project (although any project management software tool can do that).&lt;br /&gt;&lt;br /&gt;In MS Project, go to the Resource Sheet. All your resources are listed here. For each resource it is possible to define various parameters. One of them is Std. Rate (= Standard Rate). This is measured in $/hour. All you need to do is enter the rate of each resource in the table. True, usually, you don't know how much a person's salary is but I am sure you can make a reasonable guess. As soon as you entered rates for all the resources, MS Project automatically calculates the cost of each task in your schedule, plus roll-up of totals to summary tasks, all the way up to the full project cost. Plus totals and breakdowns per resource. That's it. So simple, so powerful.&lt;br /&gt;&lt;br /&gt;You can also easily add fixed costs (such as purchases, travel expenses, fixed-price &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;consultaning&lt;/span&gt;, etc.). Add a task for each of the fixed cost items. Add the Fixed Cost &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;pre&lt;/span&gt;-defined column in the table (see MS Project help on how to add columns). For each fixed cost entry in the schedule, enter its cost in the Fixed Cost column. That's it. So simple, so powerful.&lt;br /&gt;&lt;br /&gt;Don't forget to baseline.&lt;br /&gt;&lt;br /&gt;As the project progresses, be sure to update the schedule to correctly reflect the project status. You update the tasks (start date, end date, percent complete) and MS Project will calculate updated current costs. And with the baseline that you remembered to save, MS Project will also calculate all the Earned Value info for you, full break down and roll up.&lt;br /&gt;&lt;br /&gt;Once you start doing this minimal work you will be surprised how easy and useful it is. And when you show it to your manager or executive (who did not even think you could do something like that), they will be delighted and never let you off the hook again.&lt;br /&gt;&lt;br /&gt;This is why I say: &lt;span style="font-weight: bold;"&gt;cost management is not optional&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;------------------------------------------------------------------------&lt;br /&gt;&lt;span class="tags"&gt;&lt;/span&gt;&lt;div class="tag_list"&gt;Technorati Tags: &lt;span class="tags"&gt;&lt;a href="http://technorati.com/tag/buffers" rel="tag"&gt;buffers&lt;/a&gt;, &lt;a href="http://technorati.com/tag/Cost+management" rel="tag"&gt;Cost management&lt;/a&gt;, &lt;a href="http://technorati.com/tag/padding" rel="tag"&gt;padding&lt;/a&gt;, &lt;a href="http://technorati.com/tag/Project+Management" rel="tag"&gt;Project Management&lt;/a&gt;, &lt;a href="http://technorati.com/tag/Project+Manager" rel="tag"&gt;Project Manager&lt;/a&gt;, &lt;a href="http://technorati.com/tag/project+schedule" rel="tag"&gt;project schedule&lt;/a&gt;, &lt;a href="http://technorati.com/tag/Software+Engineering" rel="tag"&gt;Software Engineering&lt;/a&gt;, &lt;a href="http://technorati.com/tag/Software+Project+Management" rel="tag"&gt;Software Project Management&lt;/a&gt;&lt;br /&gt;------------------------------------------------------------------------&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36930149-1382800134468097589?l=mosgot.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mosgot.blogspot.com/feeds/1382800134468097589/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36930149&amp;postID=1382800134468097589' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36930149/posts/default/1382800134468097589'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36930149/posts/default/1382800134468097589'/><link rel='alternate' type='text/html' href='http://mosgot.blogspot.com/2006/11/cost-management-is-not-optional.html' title='Cost Management is Not Optional'/><author><name>mosgot</name><uri>http://www.blogger.com/profile/01197862673904109978</uri><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-36930149.post-8047289681526768398</id><published>2006-11-18T01:20:00.000-08:00</published><updated>2006-11-19T22:46:42.518-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Software Project Management'/><category scheme='http://www.blogger.com/atom/ns#' term='buffers'/><category scheme='http://www.blogger.com/atom/ns#' term='Project Manager'/><category scheme='http://www.blogger.com/atom/ns#' term='padding'/><category scheme='http://www.blogger.com/atom/ns#' term='Software Engineering'/><category scheme='http://www.blogger.com/atom/ns#' term='project schedule'/><category scheme='http://www.blogger.com/atom/ns#' term='Project Management'/><category scheme='http://www.blogger.com/atom/ns#' term='schedule'/><title type='text'>To Pad or Not to Pad</title><content type='html'>&lt;span style="font-family:trebuchet ms;"&gt;To many, this is still the question. We all know this practice. Make some  time estimate, then pad it to compensate for... Actually for what not?  Overloading, distractions, interruptions, pressure to speed up work, Murphy's  Low and what not. Actually, one more: the inability of the programmer to do good  estimates in the first place. Even the programmers admit that they are  over-optimistic and that their time estimates are always too short. &lt;/span&gt;&lt;p style="font-family: trebuchet ms;"&gt;This typical predicament is nicely expressed in Rita Mulcahy's book, &lt;a href="http://www.amazon.com/gp/product/1932735003/ref=pd_cp_b_title/002-3479250-5512842"&gt;PMP  Exam Prep&lt;/a&gt;:&lt;/p&gt; &lt;blockquote  style="font-family:trebuchet ms;"&gt; &lt;p&gt;&lt;span style="color: rgb(51, 51, 51);"&gt;"I have no Idea how long it will take. I do not even know  what I am being asked to do. So, what do I say? I will make my best guess and  double it!"&lt;/span&gt;&lt;/p&gt;&lt;/blockquote&gt; &lt;p style="font-family: trebuchet ms;"&gt;In general, padding is bad. Again, as Rita explains it, "Padding is a sign of  poor project management!". if you are not sure about your team's time estimates,  you should treat is as a risk and not camouflage it as hidden padding.&lt;/p&gt; &lt;p style="font-family: trebuchet ms;"&gt;Actually, why is it bad to pad? Here are several reasons:&lt;/p&gt; &lt;ul style="font-family: trebuchet ms;"&gt;&lt;li&gt;Padding means that there is an inherent deficiency in the estimation (and  likely in the estimator's skill). By padding, we disguise the problem instead of  facing it and dealing with it.&lt;/li&gt;&lt;li&gt;When the resource sees their padded tasks, they naturally assume that their  task completion date is the one that includes the pad. You are giving the  resource "extra time" before they even started the task.&lt;/li&gt;&lt;li&gt;Once padded, the original estimation disappears. There is no way to hold the  estimator accountable for their original estimates.&lt;/li&gt;&lt;/ul&gt; &lt;p style="font-family: trebuchet ms;"&gt;So, what do we, PMs, do? We know that if we take the estimators' input "at  face value" we are most likely in trouble right from the first moment of the  project. There are all kinds of things that a Project Manager can (and should)  do to improve the situation. None of them is a magic bullet but in combination,  they can improve things significantly. Here are some suggestions:&lt;/p&gt; &lt;ul style="font-family: trebuchet ms;"&gt;&lt;li&gt;&lt;strong&gt;Give them more time&lt;/strong&gt;. One of the most compromising factors  is the time that we (don't) give to the estimator. If we ask the estimator to  estimate a task and want an answer right then, we may assume that the estimator  is just throwing a number in the air to get us off their back. Give them time  and encourage them to use it to think more carefully and wisely.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Review the estimates with a critical eye&lt;/strong&gt;. If you have  experience in time estimation and in SW development, you can identify cases  where the estimation doesn't seem right.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Let an expert review&lt;/strong&gt;. An expert will be able to provide a  lot of insight.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Train the estimator in time-estimation techniques&lt;/strong&gt;. There  are techniques for estimating time. verify that the estimators use them.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Remind them of the implied sub-tasks&lt;/strong&gt;. Remind the  estimator that there are typically several activities included in a single  programming task. Once the programmer realizes that, he/she will benefit in 2  ways: It will be easier to make a more accurate estimation and it will help them  remember to do all of these things&lt;/li&gt;&lt;ul&gt;&lt;li&gt;Some thinking, planning, designing.&lt;/li&gt;&lt;li&gt;Prototyping&lt;/li&gt;&lt;li&gt;Implementing&lt;/li&gt;&lt;li&gt;Developing unit tests&lt;/li&gt;&lt;li&gt;Unit-testing&lt;/li&gt;&lt;li&gt;Fixing bugs.&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt; &lt;p style="font-family: trebuchet ms;"&gt;All the above are things that the estimator can do to improve their  estimates. But there are also a couple of things that you, the Project Manager,  can do.&lt;/p&gt; &lt;h4 style="font-family: trebuchet ms;"&gt;Estimate Effort, not Duration&lt;/h4&gt; &lt;p style="font-family: trebuchet ms;"&gt;Estimators easily fall in this trap. They think in terms of duration rather  than effort. This automatically introduces padding into the estimation process.  You need to make sure they provide their estimates as effort. You usually will  have to coach them on this and continuously verify that the numbers they give  you are indeed effort and not duration. Estimates in duration muddy the  waters.&lt;/p&gt; &lt;h4 style="font-family: trebuchet ms;"&gt;Nobody Ever Works at Full Load&lt;/h4&gt; &lt;p style="font-family: trebuchet ms;"&gt;No human being executes their tasks at 100% of their time. People are human  beings. They take breaks, rest, take care of administrative things, go to the  doctor, etc. When an estimator provides an estimation of the effort, the number  should reflect continuous, non-stop work. In real life, this never happens.  Project Management SW tools allow you to specify the load level of the resource.  I usually set the load of Individual Contributors to 80% and of Managers to 50%.  Granted, this is probably a form of padding but it does not come from  uncertainty in the estimate but rather from sound experience. It's not an  uncertainty, it's a certainty that people do not perform at 100%. The only  uncertainty is the actual percentage. This is up to you to estimate.&lt;/p&gt; &lt;h4 style="font-family: trebuchet ms;"&gt;Add Project-Level Buffers&lt;/h4&gt; &lt;p style="font-family: trebuchet ms;"&gt;This is a mechanism that I invented years ago, only to learn that it was  a standard element in Critical Chain Management. I found it extremely powerful  even if I don't use Critical Chain Management. Here is how it works:&lt;/p&gt;&lt;p style="font-family: trebuchet ms;"&gt;&lt;br /&gt;&lt;/p&gt; &lt;p style="font-family: trebuchet ms;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/x/blogger2/613/4508/1600/915160/PMO-guideline-buffers.gif"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 410px; height: 175px;" src="http://photos1.blogger.com/x/blogger2/613/4508/400/698730/PMO-guideline-buffers.png" alt="" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p style="font-family: trebuchet ms;"&gt;&lt;br /&gt;&lt;/p&gt; &lt;p style="font-family: trebuchet ms;"&gt;The Gantt chart shows a project with a series of tasks (in Blue). At the end  of the project, I added 3 Milestones:&lt;/p&gt; &lt;ul style="font-family: trebuchet ms;"&gt;&lt;li&gt;&lt;strong&gt;Optimistic&lt;/strong&gt;. This is when all the tasks are complete. No  buffers, no padding. In the chart it is on 5/18.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Realistic&lt;/strong&gt;. This is a date I got by adding 20% to the total  duration of the project (from day 1 to the Optimistic milestone). In the chart  it is on 6/15.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Pessimistic&lt;/strong&gt;. This is a date I got by adding 40% to the  total duration of the project (from day 1 to the Optimistic milestone). In the  chart it is on 7/12.&lt;/li&gt;&lt;/ul&gt; &lt;p style="font-family: trebuchet ms;"&gt;As the project progresses a delay may develop in the project end-date. This  will cause the first (Optimistic) milestone to move to the right. The other 2  milestones never move. This way we can see how the current projected end-date  moves relative to the buffers. In other words, how much of the buffers is being  consumed by the delay. This is an excellent indicator that allows the PM to see  "how bad things are" and decide if it's time to take some corrective  actions.&lt;/p&gt; &lt;p style="font-family: trebuchet ms;"&gt;These are my safety buffers. Generally, I prefer &lt;u&gt;not&lt;/u&gt; to show the 3  buffers to my team members. I only show the Optimistic milestone and do not even  call it Optimistic. As far as they are concerned, that is the target date that  they need to hit. The 3 milestones are for the people that I am accountable to:  My manager, the project sponsor, the executives and the customer. I explain  these milestones to them as follows:&lt;/p&gt; &lt;ul style="font-family: trebuchet ms;"&gt;&lt;li&gt;&lt;strong&gt;Optimistic.&lt;/strong&gt; We will finish the project on this date only if  everything goes perfectly. No delays, no surprises. This is the ideal end date.  I have a low level of confidence in this date but I am going to drive the  project to this date and try to hit it.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Realistic&lt;/strong&gt;. I think this is the date that I can  realistically hit and I recommend that you assume and make your plans to this  date. I have a good level of confidence in this date.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Pessimistic&lt;/strong&gt;. This is the day we will be done if many things  go really wrong. I have a high level of confidence in this date.&lt;/li&gt;&lt;li&gt;If the project runs later than the Pessimistic milestone, something is  really bad in the project and we need to reevaluate the entire  project.&lt;/li&gt;&lt;/ul&gt; &lt;p style="font-family: trebuchet ms;"&gt;I used this approach in the past with great success. Managers and customers  were very impressed and pleased with this approach. They stopped being fixated  on a single delivery date. Now the project is not held by its throat to a single  date. There is flexibility but it's OK with management and customers because it  is not open-ended. It is bounded. They accept the fact that I do not commit to a  single date because they know it's not realistic but they are not worried that I  open the door to a runaway project because the end date has a reasonable  range.&lt;/p&gt; &lt;p style="font-family: trebuchet ms;"&gt;Let me know what you think...&lt;/p&gt; &lt;p style="font-family: trebuchet ms;"&gt;---------------------------------------------------------------------------------&lt;/p&gt; &lt;p style="font-family: trebuchet ms;"&gt; &lt;/p&gt;&lt;div class="wlWriterEditableSmartContent" id="0767317B-992E-4b12-91E0-4F059A8CECA8:42c905e8-df48-48fe-817e-7e03dd1e30db" contenteditable="false" style="margin: 0px; padding: 0px; display: inline; font-family: trebuchet ms;"&gt;Technorati  tags: &lt;a href="http://technorati.com/tags/project%20manager" rel="tag"&gt;project  manager&lt;/a&gt;, &lt;a href="http://technorati.com/tags/software%20project%20management" rel="tag"&gt;software project management&lt;/a&gt;, &lt;a href="http://technorati.com/tags/project%20management" rel="tag"&gt;project  management&lt;/a&gt;, &lt;a href="http://technorati.com/tags/software%20engineering" rel="tag"&gt;software engineering&lt;/a&gt;, &lt;a href="http://technorati.com/tags/schedule" rel="tag"&gt;schedule&lt;/a&gt;, &lt;a href="http://technorati.com/tags/project%20schedule" rel="tag"&gt;project schedule&lt;/a&gt;&lt;/div&gt; &lt;p style="font-family: trebuchet ms;"&gt;---------------------------------------------------------------------------------&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36930149-8047289681526768398?l=mosgot.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mosgot.blogspot.com/feeds/8047289681526768398/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36930149&amp;postID=8047289681526768398' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36930149/posts/default/8047289681526768398'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36930149/posts/default/8047289681526768398'/><link rel='alternate' type='text/html' href='http://mosgot.blogspot.com/2006/11/to-pad-or-not-to-pad.html' title='To Pad or Not to Pad'/><author><name>mosgot</name><uri>http://www.blogger.com/profile/01197862673904109978</uri><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>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36930149.post-6991051531219462933</id><published>2006-11-17T21:16:00.001-08:00</published><updated>2006-11-17T21:16:52.274-08:00</updated><title type='text'>Why Hasn’t Software Development Gotten Any Better?</title><content type='html'>&lt;p&gt;This is&amp;nbsp;the&amp;nbsp;title of a very good post that Ed Yourdon published in his &lt;a href="http://yourdon.com/personal/blog/2006/11/09/why-hasnt-software-development-gotten-any-better/"&gt;blog&lt;/a&gt;. Highly recommended. Read it and also my comment.&lt;/p&gt; &lt;p&gt;-------------------------------------------------------------------------------&lt;/p&gt; &lt;p&gt; &lt;div class="wlWriterSmartContent" id="0767317B-992E-4b12-91E0-4F059A8CECA8:89694f54-aeb1-42c8-aa40-cf46ca93f378" contenteditable="false" style="padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;Technorati tags: &lt;a href="http://technorati.com/tags/Software%20Engineering" rel="tag"&gt;Software Engineering&lt;/a&gt;, &lt;a href="http://technorati.com/tags/software%20project" rel="tag"&gt;software project&lt;/a&gt;, &lt;a href="http://technorati.com/tags/software%20project%20management" rel="tag"&gt;software project management&lt;/a&gt;&lt;/div&gt;&lt;/p&gt; &lt;p&gt;-------------------------------------------------------------------------------&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36930149-6991051531219462933?l=mosgot.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mosgot.blogspot.com/feeds/6991051531219462933/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36930149&amp;postID=6991051531219462933' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36930149/posts/default/6991051531219462933'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36930149/posts/default/6991051531219462933'/><link rel='alternate' type='text/html' href='http://mosgot.blogspot.com/2006/11/why-hasnt-software-development-gotten.html' title='Why Hasn’t Software Development Gotten Any Better?'/><author><name>mosgot</name><uri>http://www.blogger.com/profile/01197862673904109978</uri><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-36930149.post-612355051064388539</id><published>2006-11-12T14:47:00.000-08:00</published><updated>2006-11-12T22:50:36.204-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Software Project Management'/><category scheme='http://www.blogger.com/atom/ns#' term='Project Manager'/><category scheme='http://www.blogger.com/atom/ns#' term='Software Engineering'/><category scheme='http://www.blogger.com/atom/ns#' term='Software Requirements Specification'/><category scheme='http://www.blogger.com/atom/ns#' term='Project Management'/><title type='text'>Software Requirements Specification Is King - Part 2</title><content type='html'>In Part 1, I explained why the Software Requirements Specification (&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0" onclick="BLOG_clickHandler(this)"&gt;SRS&lt;/span&gt;) is the most critical and valuable product document. In this part - Part 2, I will provide some guidelines, suggestions, tips, etc. that &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_1" onclick="BLOG_clickHandler(this)"&gt;Project&lt;/span&gt; Managers need to know in order to make the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2" onclick="BLOG_clickHandler(this)"&gt;SRS&lt;/span&gt; experience good and &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_3" onclick="BLOG_clickHandler(this)"&gt;beneficial&lt;/span&gt;.&lt;br&gt;&lt;br&gt;We will start where I left off in Part 1:&lt;br&gt;&lt;br&gt;&lt;span style="font-family: tahoma"&gt;&lt;span style="font-weight: bold"&gt;If you don't intend to use it seriously, don't bother to write it&lt;/span&gt;.&lt;br&gt;&lt;br&gt;This is actually applicable to all project and product related documents. So many project teams write so many documents (sometimes even reviewing and approving them) only to put them in the drawer and forget them forever. What's that good for? A frustrating and boring task, expanding resources with no benefit. So, don't bother.&lt;/span&gt;&lt;br&gt;&lt;br&gt;Those of you who have seen a well written &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_4" onclick="BLOG_clickHandler(this)"&gt;SRS&lt;/span&gt; know that it's not a trivial undertaking at all. Writing a high-quality &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_5" onclick="BLOG_clickHandler(this)"&gt;SRS&lt;/span&gt; is very demanding, both in quality and quantity. This is one of the main reasons why it's often hard to get the team to write it. I have found in my experience that you - the PM - can make things easier if you and the team follow some simple rules.&lt;br&gt; &lt;ul&gt; &lt;li&gt;&lt;span style="font-weight: bold"&gt;Substance is more important than form&lt;/span&gt;. In the beginning, don't worry too much about the appearance and format. Just make sure that the info is there. Worry about looks later. In fact it will probably be best to get a tech writer for that.  &lt;li&gt;&lt;span style="font-weight: bold"&gt;Something is better than nothing&lt;/span&gt;. Trying to write a full, complete, comprehensive spec in the first shot is discouraging. It's a very large task. Encourage your team to start with &lt;span style="font-style: italic"&gt;something&lt;/span&gt;. Start small and add as you go.&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;These 2 principles will allow the team to start with a relatively small effort and get something started. The team will routinely add and improve and over time the document will be high quality.&lt;br&gt;&lt;br&gt;Now we want to cover some important principles for the contents of the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_6" onclick="BLOG_clickHandler(this)"&gt;SRS&lt;/span&gt;. I will not cover this material here. There are tons of books out there and I don't need to repeat that. No added value. But I do want to recommend that you take a look at Scott Sehlhorst&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_8" onclick="BLOG_clickHandler(this)"&gt;'s&lt;/span&gt; article: &lt;a href="http://tynerblain.com/blog/2006/10/30/writing-correct-requirements/"&gt;Big Ten Rules - Writing Correct Requirements&lt;/a&gt;. This is a very good review of the characteristics of good requirements. It is probably more than you want to know or do for starters. But as you improve the quality of your &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_9" onclick="BLOG_clickHandler(this)"&gt;SRS&lt;/span&gt;, this is certainly something that you should look at. The only thing that I want to add here is: if you start the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_10" onclick="BLOG_clickHandler(this)"&gt;SRS&lt;/span&gt; small, as I recommend, then, IMHO, the most &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_11" onclick="BLOG_clickHandler(this)"&gt;important&lt;/span&gt; principle in Scott's blog above is actually the last one - &lt;span style="font-weight: bold"&gt;correct&lt;/span&gt;. The important point here is: errors are unacceptable. They cause more damage than if there was no &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_12" onclick="BLOG_clickHandler(this)"&gt;SRS&lt;/span&gt; in the first place. So scrutinize the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_13" onclick="BLOG_clickHandler(this)"&gt;SRS&lt;/span&gt; very carefully for correctness. Worry about the other rules later.&lt;br&gt;&lt;br&gt;This is it for now. I covered some principles for &lt;span style="font-style: italic"&gt;generating &lt;/span&gt;the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_14" onclick="BLOG_clickHandler(this)"&gt;SRS&lt;/span&gt;. Sometime in the future (sooner than later, if there is &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_15" onclick="BLOG_clickHandler(this)"&gt;interest&lt;/span&gt;), I will cover the principles for &lt;span style="font-style: italic"&gt;using &lt;/span&gt;the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_16" onclick="BLOG_clickHandler(this)"&gt;SRS&lt;/span&gt;.&lt;br&gt;Let me know what you think.&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;--------------------------------------------------------------------------------&lt;/p&gt; &lt;p&gt;&lt;/p&gt; &lt;div class="wlWriterSmartContent" id="0767317B-992E-4b12-91E0-4F059A8CECA8:b8c82c1b-c4fb-4779-a701-2ac05365baf2" contenteditable="false" style="padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;Technorati tags: &lt;a href="http://technorati.com/tags/Software%20Project" rel="tag"&gt;Software Project&lt;/a&gt;, &lt;a href="http://technorati.com/tags/Software%20Project%20Management" rel="tag"&gt;Software Project Management&lt;/a&gt;, &lt;a href="http://technorati.com/tags/Software%20Engineering" rel="tag"&gt;Software Engineering&lt;/a&gt;, &lt;a href="http://technorati.com/tags/Software%20Requirements%20Specification" rel="tag"&gt;Software Requirements Specification&lt;/a&gt;&lt;/div&gt; &lt;p&gt;&lt;/p&gt; &lt;p&gt;-------------------------------------------------------------------------------&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36930149-612355051064388539?l=mosgot.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mosgot.blogspot.com/feeds/612355051064388539/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36930149&amp;postID=612355051064388539' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36930149/posts/default/612355051064388539'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36930149/posts/default/612355051064388539'/><link rel='alternate' type='text/html' href='http://mosgot.blogspot.com/2006/11/software-requirements-specification-is.html' title='Software Requirements Specification Is King - Part 2'/><author><name>mosgot</name><uri>http://www.blogger.com/profile/01197862673904109978</uri><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-36930149.post-116314013357215336</id><published>2006-11-09T22:28:00.000-08:00</published><updated>2006-11-10T23:56:59.969-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Software Project Management'/><category scheme='http://www.blogger.com/atom/ns#' term='Software Requirements Specification'/><category scheme='http://www.blogger.com/atom/ns#' term='Project Management'/><title type='text'>Software Requirements Specification Is King - Part 1</title><content type='html'>&lt;p&gt;&lt;span style="font-family:Tahoma;"&gt;One of the problems that Software Project Managers encounter is the struggle with the team over product development documentation. Documents, documents, documents. Theory says that the development of the SW product must be accompanied by a series of documents: Market Requirements Specification, Software Requirements Specification (SRS, SW Architecture, SW Design, SW Detailed Design, test documentation, Release... On and on.&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="font-family:Tahoma;"&gt;People usually hate to write documents. They like to do their job, be it market research, SW design, SE architecture, etc. But they hate to sit down and put all their knowledge on paper. And on top of that, there are the theorists who claim that documenting is a bad idea anyway (especially if they have to do it :). And to make matters even worse, even if they finally agree (or are forced) to write one of these documents, it's usually bad quality because they are not skilled in writing such documents. This surely does not add to the popularity of generating and maintaining documentation.&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="font-family:Tahoma;"&gt;In this post, I don't intend to go into this debate about: does a SW product need documentation? This will require a rather elaborate discussion. To be clear, I do have an opinion - I think documentation is very important as long as it's done wisely, but this is for another discussion. What I want to cover here is the following rule that I strongly believe in:&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="font-family:Tahoma;"&gt;If nothing else, at least maintain and use a decent Requirements Specification.&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="font-family:Tahoma;"&gt;The Software Requirements Specification (SRS) is the most important and useful of the various SW development documents. It tells everybody, and I mean &lt;u&gt;everybody&lt;/u&gt;, what this piece of SW should be doing. If you think for a moment, I think you will be surprised when you realize the long list of project stakeholders that will find the SRS useful and beneficial (and that's why I say &lt;u&gt;everybody&lt;/u&gt;). Here is a list (let me know if I forgot anybody):&lt;/span&gt;&lt;/p&gt; &lt;ul&gt; &lt;li&gt;&lt;span style="font-family:Tahoma;"&gt;Product Manager - needs to be able to tell potential customers what the product does&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style="font-family:Tahoma;"&gt;Sales Manager - needs to be able to tell potential customers what the product does&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style="font-family:Tahoma;"&gt;SW Architect - uses it to develop the architecture.&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style="font-family:Tahoma;"&gt;SW Designer - uses it to design the product.&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style="font-family:Tahoma;"&gt;Programmer - uses it to make sure his implementation provides the correct features/behavior&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style="font-family:Tahoma;"&gt;QA will test against the SRS&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style="font-family:Tahoma;"&gt;Customer will know what to expect and what to test (acceptance testing)&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style="font-family:Tahoma;"&gt;Technical Writer will use it as the reference for the user's documentation (User's Guide, User's Manual, etc.).&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style="font-family:Tahoma;"&gt;Executives will use it for various purposes (such as i&lt;/span&gt;&lt;span style="font-family:Tahoma;"&gt;n case of dispute, especially with the customer).&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;&lt;span style="font-family:Tahoma;"&gt;Without a SRS, every stakeholder has their own picture in their mind of what this product should do and how it should behave. How many times have you seen the bewildered Product Manager asking why is this feature different form what we agreed? Or the angry customer asking what is this new thing that was never mentioned to us? What does it do? How do we use it? Why do we need it? Did you ask us if we needed it? And where is this important feature that we &lt;u&gt;did&lt;/u&gt; want to have and you agreed to provide? Or the angry engineer who says to the QA tester "Why does this test fail? The implementation is correct. You don't know how to write tests". And the tester answering "according to my information, this should behave differently. My test is correct". And who is right? If it's not written down, who knows?&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="font-family:Tahoma;"&gt;No other document has this power of putting all the stakeholders on the same page like the SRS. So, please, if you don't write any other document, please, at least, write a Requirements Specification.&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="font-family:Tahoma;"&gt;I will continue in the next post and provide some useful suggestions to make the chore of writing and maintaining the SRS easier. I will also suggest some rules for maintaining the SRS and how to effectively use it. I will just give you a little heads-up here as a teaser:&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="font-family:Tahoma;"&gt;&lt;span style="font-weight: bold;"&gt;If you don't intend to use it seriously, don't bother to write it&lt;/span&gt;.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Tahoma;"&gt;--------------------------------------------------------------------------------------------------------&lt;br /&gt;&lt;/span&gt;&lt;/p&gt; &lt;div class="wlWriterSmartContent" id="0767317B-992E-4b12-91E0-4F059A8CECA8:ca538e31-4af6-44fb-a18b-4e019492624d" contenteditable="false" style="margin: 0px; padding: 0px; display: inline;"&gt;Technorati tags: &lt;a href="http://technorati.com/tags/Software%20Project%20Management" rel="tag"&gt;Software Project Management&lt;/a&gt;, &lt;a href="http://technorati.com/tags/Software%20Engineering" rel="tag"&gt;Software Engineering&lt;/a&gt;, &lt;a href="http://technorati.com/tags/Software%20Project" rel="tag"&gt;Software Project&lt;/a&gt;, &lt;a href="http://technorati.com/tags/Requirements%20Specification" rel="tag"&gt;Requirements Specification&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:Tahoma;"&gt;--------------------------------------------------------------------------------------------------------&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36930149-116314013357215336?l=mosgot.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mosgot.blogspot.com/feeds/116314013357215336/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36930149&amp;postID=116314013357215336' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36930149/posts/default/116314013357215336'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36930149/posts/default/116314013357215336'/><link rel='alternate' type='text/html' href='http://mosgot.blogspot.com/2006/11/requirements-specification-is-king.html' title='Software Requirements Specification Is King - Part 1'/><author><name>mosgot</name><uri>http://www.blogger.com/profile/01197862673904109978</uri><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-36930149.post-116262484682848307</id><published>2006-11-03T23:20:00.000-08:00</published><updated>2006-11-10T21:56:25.337-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Software Project Management'/><category scheme='http://www.blogger.com/atom/ns#' term='Software Engineering'/><category scheme='http://www.blogger.com/atom/ns#' term='Project Management'/><title type='text'>Why do SW PMs need to know Software Engineering?</title><content type='html'>This sounds pretty trivial. It sure makes sense that SW PMs need to know SW Engineering. After all, SW Engineering is a very important discipline in the world of SW development. No brainer. Construction PMs need to understand construction technology, right? Ship building PMs need to know ship construction technology, right? Aerospace PMs need to know Aerospace technology, and so on. Same for SW PMs.&lt;br xmlns="http://www.w3.org/1999/xhtml"&gt;All the above is true and right and we all know it. Nothing new here. However, the point that I'm trying to make is that in the SW development world, it is so much more important that PMs know SW engineering. And why?&lt;br xmlns="http://www.w3.org/1999/xhtml"&gt;&lt;br xmlns="http://www.w3.org/1999/xhtml"&gt;&lt;b xmlns="http://www.w3.org/1999/xhtml"&gt;&lt;u&gt;Because Software Engineers don't know Software Engineering !&lt;/u&gt;&lt;/b&gt;&lt;br xmlns="http://www.w3.org/1999/xhtml"&gt;&lt;br xmlns="http://www.w3.org/1999/xhtml"&gt;OK, at this point all SW engineers are ready to jump on me and finish me off. So, let me explain. First, what actually is SW Engineering? Here is where there is a lot of confusion. &lt;a href="http://en.wikipedia.org/wiki/Software_engineering" xmlns="http://www.w3.org/1999/xhtml"&gt;Wikipedia&lt;/a&gt; notes that there are many different definitions for this term. The one that I like most is from IEEE Standard 610.12:&lt;br xmlns="http://www.w3.org/1999/xhtml"&gt; &lt;blockquote xmlns="http://www.w3.org/1999/xhtml"&gt;Software engineering is "(1) the application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software, that is, the application of engineering to software," and "(2) the study of approaches as in (1)."&lt;/blockquote&gt;&lt;br xmlns="http://www.w3.org/1999/xhtml"&gt;"the application of engineering to software" - this is the essence of this. It's not the coding. It's not the testing. It's the approach to SW development as an engineering endeavor. This means the classical activities of requirements definition, analysis, design, implementation, etc. And it doesn't matter right now if this is Waterfall, RUP, Agile or whatever. And when I talk about the above activities, I don't mean only the actual execution of the activities (such as writing the requirements, coding, running the tests, etc..) I mean the &lt;a href="http://en.wikipedia.org/wiki/Methodology_%28software_engineering%29" xmlns="http://www.w3.org/1999/xhtml"&gt;&lt;i&gt;Methodology&lt;/i&gt;&lt;/a&gt;. The practices, processes, policies, etc. All of those things that everybody loves to hate but we (PMs) know that the project can't succeed without them. And yes, I know and agree that we need to be careful not to overkill with these things but we &lt;u xmlns="http://www.w3.org/1999/xhtml"&gt;must &lt;/u&gt;have some.&lt;br xmlns="http://www.w3.org/1999/xhtml"&gt;Now, everybody basically understands the basic concept of the SDLC. We all know how to recite the waterfall phases or the Agile principles. But how many people really know how to do them? In detail?&lt;br xmlns="http://www.w3.org/1999/xhtml"&gt;Consider this: a person goes to college and graduates with a degree in Computer science. What is his profession? software Engineer? No - Computer Scientist. It's not the same. But when that same person gets a typical job at a SW shop, what will his title be? Computer Scientist? No, it will almost always be... Yes, you guessed - Software Engineer. But does he really have the skill set (not to say experience) required for a Software Engineer? No. Colleges do not teach software engineering almost at all. Interestingly, this person will not work as a Computer Scientist either. In most of the cases, the computer scientist by education (and some skills) and Software Engineer by title is neither. He is a &lt;u xmlns="http://www.w3.org/1999/xhtml"&gt;programmer&lt;/u&gt;. All this stuff above with terms and titles is not just playing with words. These different titles do really mean different things, require different skills and are all important in the SDLC world. But the vast majority of professionals in the SW development world are programmers. Nothing else.&lt;br xmlns="http://www.w3.org/1999/xhtml"&gt;Now, if you are a single person who sits at home and uses his programming skills to write a little nice program, you do not need Software Engineering skills. But if we talk about a large company in which multiple programmers (and other professionals) have to work together to produce multiple products - possibly under multiple programs with multiple versions and multiple configurations for multiple customers... You can see where this is going if there is a lack in Software Engineering skills. This is a guaranteed mess. &lt;br xmlns="http://www.w3.org/1999/xhtml"&gt;I want to emphasize at this point that all of the above is not something theoretical. I have been around and I have seen time and again how companies struggle and they don't even know why. And when you put a SW Engineering methodology in place, things become so much better. This is a real problem in the SW technology world and it is everywhere.&lt;br xmlns="http://www.w3.org/1999/xhtml"&gt;So if you are the PM, you operate in this kind of demanding SW production environment and the SW engineers don't know SW Engineering, good luck. What do you do? Well, you need to know at least the basics of SW engineering so that you can:&lt;br xmlns="http://www.w3.org/1999/xhtml"&gt; &lt;ul xmlns="http://www.w3.org/1999/xhtml"&gt; &lt;li&gt;Educate the engineers (and others).&lt;br&gt; &lt;li&gt;Intelligently observe the project execution by the various professionals and make your own judgment about the quality of the operation.&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;&lt;br xmlns="http://www.w3.org/1999/xhtml"&gt;This is why it's so important for SW PMs to know SW Engineering. Sadly, in the current state of affairs, these who should know don't know so you'd better know.&lt;br xmlns="http://www.w3.org/1999/xhtml"&gt;In the coming posts, I will go into more details on what I think PMs need to know about SW Engineering. In the meantime, let me know what you think. All comments welcome.&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&lt;/p&gt; &lt;div class="wlWriterSmartContent" id="0767317B-992E-4b12-91E0-4F059A8CECA8:daca6e25-a1bf-45aa-8bd3-fa4eb17a6df5" contenteditable="false" style="padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;Technorati tags: &lt;a href="http://technorati.com/tags/Software%20Project%20Management" rel="tag"&gt;Software Project Management&lt;/a&gt;, &lt;a href="http://technorati.com/tags/Project%20Management" rel="tag"&gt;Project Management&lt;/a&gt;, &lt;a href="http://technorati.com/tags/Software%20Engineering" rel="tag"&gt;Software Engineering&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36930149-116262484682848307?l=mosgot.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mosgot.blogspot.com/feeds/116262484682848307/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36930149&amp;postID=116262484682848307' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36930149/posts/default/116262484682848307'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36930149/posts/default/116262484682848307'/><link rel='alternate' type='text/html' href='http://mosgot.blogspot.com/2006/11/why-do-sw-pms-need-to-know-software.html' title='Why do SW PMs need to know Software Engineering?'/><author><name>mosgot</name><uri>http://www.blogger.com/profile/01197862673904109978</uri><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-36930149.post-116236415065640724</id><published>2006-10-31T22:32:00.000-08:00</published><updated>2006-11-10T21:56:24.203-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Software Project Management'/><category scheme='http://www.blogger.com/atom/ns#' term='Project Management'/><title type='text'>So, what is this all about?</title><content type='html'>&lt;span style="font-family: verdana" xmlns="http://www.w3.org/1999/xhtml"&gt;Yes, this is my first post. It's going to be short.&lt;br&gt;&lt;br&gt;I am a software project manager and have a passion for this profession. I have a pretty good idea about what works, what doesn't, how to fix things, improve things, etc.&lt;br&gt;In particular, I like improving PM in small to medium size companies. These are the classical places where PM is just coming in. There is a lot of confusion, a lot of uncertainty about PM, a lot of suspicion, a lot of resistance. Sometimes also some support. Usually, most everybody feels that things are &lt;/span&gt;&lt;span style="font-family: verdana" xmlns="http://www.w3.org/1999/xhtml"&gt;not &lt;/span&gt;&lt;span style="font-family: verdana" xmlns="http://www.w3.org/1999/xhtml"&gt;going very good but none is sure what needs to be done to fix it. Actually, everyone has their own solution. Someone comes up with the idea that "maybe we need project management here" and stress goes up to the sky.&lt;br&gt;So, do you feel this pain in your company too? Let's discuss this and all sorts of other topics too. Here are some topics:&lt;br&gt;&lt;/span&gt; &lt;ul xmlns="http://www.w3.org/1999/xhtml"&gt; &lt;li&gt;To Agile or not to Agile? What is Agile anyway?&lt;br&gt; &lt;li&gt;Why do SW PMs need to know Software Engineering? (most don't)  &lt;li&gt;Are Software Engineers really software engineers? (I say, no)  &lt;li&gt;Have you ever seen Risk Management in your world? Do you know how to do it?  &lt;li&gt;Can you convince the executives that PM is good? What are the benefits?&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;This is just a small sample. I have lots of issues and have opinions too. In the coming days I will start to covers these topics and more. I hope you will all join and we'll have a lively discussion.&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;div class="wlWriterSmartContent" id="0767317B-992E-4b12-91E0-4F059A8CECA8:ab4af853-e292-4b71-810d-3fc4a19d9012" contenteditable="false" style="padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;Technorati tags: &lt;a href="http://technorati.com/tags/Software%20Project%20Management" rel="tag"&gt;Software Project Management&lt;/a&gt;, &lt;a href="http://technorati.com/tags/Project%20Management" rel="tag"&gt;Project Management&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36930149-116236415065640724?l=mosgot.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mosgot.blogspot.com/feeds/116236415065640724/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36930149&amp;postID=116236415065640724' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36930149/posts/default/116236415065640724'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36930149/posts/default/116236415065640724'/><link rel='alternate' type='text/html' href='http://mosgot.blogspot.com/2006/10/so-what-is-this-all-about.html' title='So, what is this all about?'/><author><name>mosgot</name><uri>http://www.blogger.com/profile/01197862673904109978</uri><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>
