<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.construx.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Matt&amp;#39;s Ground Truth</title><link>http://blogs.construx.com/blogs/mattp/default.aspx</link><description>Commentary and perspective on challenging, triumphant, and mundane software development experiences. And lots of sacred cow killing. No, really, its like an abattoir in here...</description><dc:language>en</dc:language><generator>CommunityServer 2007.1 (Build: 20917.1142)</generator><item><title>Why Is Software Development Different? (and hard)</title><link>http://blogs.construx.com/blogs/mattp/archive/2008/07/30/2170.aspx</link><pubDate>Wed, 30 Jul 2008 20:29:00 GMT</pubDate><guid isPermaLink="false">1c8bc03b-986a-40b9-ab6d-e8d23056df8a:2170</guid><dc:creator>Matt Peloquin</dc:creator><slash:comments>2</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.construx.com/blogs/mattp/rsscomments.aspx?PostID=2170</wfw:commentRss><comments>http://blogs.construx.com/blogs/mattp/archive/2008/07/30/2170.aspx#comments</comments><description>&lt;p&gt;Our profession&amp;nbsp;spends an amazing amount of energy year after year&amp;nbsp;reinventing how we&amp;nbsp;create software. While&amp;nbsp;looking at a thread&amp;nbsp;about&amp;nbsp;Agile principles&amp;nbsp;on an enjoyable blog&amp;nbsp;(&lt;a href="http://www.noop.nl/"&gt;NOOP.NL&lt;/a&gt;), it struck me for umpteenth time how mastering&amp;nbsp;effective software development practices feels&amp;nbsp;like riding a merry-go-round. There have been massive strides&amp;nbsp;in software technology&amp;nbsp;over the last 50 years, but&amp;nbsp;our &lt;strong&gt;sophistication&amp;nbsp;in applying&amp;nbsp;that horsepower to useful problems&amp;nbsp;seems&amp;nbsp;stuck on a treadmill&lt;/strong&gt;. We keep rediscovering good ideas like iterating solutions, using feedback loops, managing complexity and knowledge, avoiding waste,&amp;nbsp;motivating teams, etc. These&amp;nbsp;&amp;quot;new&amp;quot; ideas&amp;nbsp;get&amp;nbsp;dressed up as&amp;nbsp;the latest&amp;nbsp;silver-bullet solution for effective software development. The &amp;quot;new&amp;quot; way gains&amp;nbsp;popularity, becomes&amp;nbsp;baroque through embellishment, and then falls out of favor, replaced by the next &amp;quot;new&amp;quot; thing. &lt;/p&gt;
&lt;p&gt;A&amp;nbsp;recurring theme&amp;nbsp;in practice discussions is&amp;nbsp;&lt;strong&gt;why&amp;nbsp;is software different from building construction&lt;/strong&gt;? Or electrical&amp;nbsp;engineering? Or ship building?&amp;nbsp;Or ______?&amp;nbsp;Software folks&amp;nbsp;often&amp;nbsp;have a grass is greener mentality regarding&amp;nbsp;other construction and&amp;nbsp;engineering disciplines. I have friends in engineering and construction, I follow the news, and I like watching those &amp;quot;building the biggest ______&amp;nbsp;in the&amp;nbsp;world&amp;quot; shows.&amp;nbsp;Other professions that create things don&amp;#39;t&amp;nbsp;seem&amp;nbsp;&lt;em&gt;vastly&lt;/em&gt;&amp;nbsp;ahead of software in terms of predictability, visibility, control, and effectiveness (was your nearest sports arena built on time and on budget?). However they&amp;nbsp;do seem to spend&amp;nbsp;less of their collective&amp;nbsp;time navel gazing, rediscovering, and getting excited about the &lt;strong&gt;same fundamental principles over and over&lt;/strong&gt; again.&lt;/p&gt;
&lt;p&gt;Software has been problematic since its inception (&lt;a href="http://www.unt.edu/UNT/departments/CC/Benchmarks/benchmarks_html/sepoct95/lunar.htm"&gt;e.g.,&amp;nbsp;Apollo program&lt;/a&gt;). Software systems tend toward&amp;nbsp;complexity. Software is less tangible and&amp;nbsp;less constrained than&amp;nbsp;other building mediums.&amp;nbsp;There are many&amp;nbsp;context shifts between&amp;nbsp;pushing bits&amp;nbsp;around according to the&amp;nbsp;laws of physics and&amp;nbsp;the&amp;nbsp;interactions&amp;nbsp;with an irrational&amp;nbsp;end-user.&amp;nbsp;The sheer size of&amp;nbsp;information in the world that might be captured,&amp;nbsp;created, stored, and manipulated&amp;nbsp;is mind boggling (the average usefulness of that&amp;nbsp;information is&amp;nbsp;another question).&amp;nbsp;As for&amp;nbsp;&lt;a href="http://www.codinghorror.com/blog/archives/000695.html"&gt;unique creation vs. manufacturing replication&lt;/a&gt;, most software development today&amp;nbsp;is&amp;nbsp;unique creation&amp;nbsp;-- even if it&amp;nbsp;seems like it shouldn&amp;#39;t be. Let&amp;#39;s take it as a given that &lt;strong&gt;software is hard --&lt;/strong&gt;&amp;nbsp;if for no other reason &lt;a href="http://en.wikipedia.org/wiki/Donald_knuth"&gt;Donald Knuth&lt;/a&gt;, the guy who wrote all those&amp;nbsp;important CompSci books that no&amp;nbsp;other human has ever completely assimilated, &lt;a href="http://scitation.aip.org/getabs/servlet/GetabsServlet?prog=normal&amp;amp;id=SIREAD000047000001000097000001&amp;amp;idtype=cvips&amp;amp;gifs=yes"&gt;says so&lt;/a&gt;. 
&lt;p&gt;OK, so software is hard.&amp;nbsp;Squeezing an extra 10% of efficiency out of a jet engine while keeping it reliable&amp;nbsp;and&amp;nbsp;affordable is hard too. &lt;strong&gt;What is&amp;nbsp;different&lt;/strong&gt; about the software profession that causes our application of technology to real-world problems to be caught in a &lt;strong&gt;recurring cycle of reinvention&lt;/strong&gt;?&amp;nbsp;Here is a&amp;nbsp;unscientific&amp;nbsp;list of possibilities:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;The rapid increase in&amp;nbsp;practitioners&lt;/strong&gt;. Just 50 years ago there were&amp;nbsp;only a handful of software developers in the world.&amp;nbsp;Reliable figures are hard to come by, but&amp;nbsp;15 million is often bandied about as the current number&amp;nbsp;(these uses seem to derive from surveys and modeling&amp;nbsp;by &lt;a href="http://www.idc.com/getdoc.jsp?containerId=207143"&gt;IDC&lt;/a&gt;&amp;nbsp;-- I didn&amp;#39;t have $5K handy to dig into the details). Professional organizations like the PMI and IEEE have been overrun by software folks in the last 20 years. The line between software and other professions is often blurry, as many&amp;nbsp;people create&amp;nbsp;some form of&amp;nbsp;software for their jobs these days. Most&amp;nbsp;companies&amp;nbsp;we talk to&amp;nbsp;are trying to expand their number&amp;nbsp;software developers; if they&amp;nbsp;could only find&amp;nbsp;qualified candidates. Unlike other technical disciplines that&amp;nbsp;had the luxury of evolving&amp;nbsp;more slowly, software&amp;nbsp;development had to rapidly&amp;nbsp;assimilate larger and larger numbers of&amp;nbsp;people from all over the world.&amp;nbsp;It&amp;#39;s not surprising that transferring knowledge and experience (whether&amp;nbsp;on the job, through school,&amp;nbsp;or via professional groups/networks/literature/training)&amp;nbsp;of what works well and what works less well in different situations&amp;nbsp;has not been particularly efficient.&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;The&amp;nbsp;evolving and flexible&amp;nbsp;nature of the medium&lt;/strong&gt;. This&amp;nbsp;makes software powerful, but also drives the proliferating churn of&amp;nbsp;effective practices.&amp;nbsp;Customers and clients continually expect&amp;nbsp;more from software magic. Practitioners&amp;nbsp;expend&amp;nbsp;much of&amp;nbsp;their energy just trying to tread water in the technology ocean (one senior engineer I worked with had this figured out&amp;nbsp;20 years ago&amp;nbsp;-- he&amp;nbsp;just&amp;nbsp;&amp;quot;rode&amp;nbsp;every-other technology wave&amp;quot; instead of every wave). The usefulness of software leads to&amp;nbsp;it being applied to just about everything in modern life.&amp;nbsp;It can be fairly straightforward to identify, compare, and contrast activities and output in other professions (medicine, for instance).&amp;nbsp;The bewildering array and rapidly changing nature of software makes it more difficult for overworked practitioners to realize&amp;nbsp;that&amp;nbsp;many of the fundamental principles governing&amp;nbsp;software creation&amp;nbsp;are similar across time and space, even if&amp;nbsp;work from different times and places doesn&amp;#39;t appear&amp;nbsp;similar at first glance.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;A low bar to get &lt;em&gt;something&lt;/em&gt; working&lt;/strong&gt;. The bar to get&amp;nbsp;&lt;em&gt;anything&lt;/em&gt; up and running is&amp;nbsp;much higher in EE, ME, CE,&amp;nbsp;ChemE,&amp;nbsp;construction, etc.&amp;nbsp;It&amp;#39;s&amp;nbsp;easy in software to throw &amp;quot;something cool&amp;quot;&amp;nbsp;together. This creates a&amp;nbsp;dynamic where&amp;nbsp;a handy spreadsheet metastasizes over 10 years into 400&amp;nbsp;linked spreadsheets used to run a large business (true story). The&amp;nbsp;evolution of software&amp;nbsp;development&amp;nbsp;tools has been empowering, but&amp;nbsp;allows people to get&amp;nbsp;in over their heads. You can start building something without&amp;nbsp;the&amp;nbsp;knowledge and experience&amp;nbsp;transfer that occurs in other technical disciplines, but&amp;nbsp;the complexity of a system can&amp;nbsp;spiral out of control in slow motion. You come into work one morning and wonder &amp;quot;how did we get to this point?&amp;quot; Often through a set of many logical, iterative steps that made sense at the time.&amp;nbsp;New groups of people are continually&amp;nbsp;pulled into creating ad hoc solutions for&amp;nbsp;small problems, which eventually turn into large problems that need more&amp;nbsp;sophisticated&amp;nbsp;solutions. This creates a fertile ground in which&amp;nbsp;smart people&amp;nbsp;attack similar development challenges and&amp;nbsp;end&amp;nbsp;up treading down paths well-worn by others.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;So what&amp;#39;s the problem?&amp;nbsp;On one hand, the &amp;quot;everything old is new again&amp;quot;&amp;nbsp;dynamic&amp;nbsp;really helps those&amp;nbsp;who stay in the industry more than 10 years; you can largely&amp;nbsp;learn new labels instead of&amp;nbsp;new stuff. On the other the waste and zealotry that accompany continual reinventing and proselytizing the &amp;quot;new&amp;quot; approaches to software development is inefficient and annoying. Maybe Agile\Lean\Scrum is the last cycle in our circular evolution as a profession, but I wouldn&amp;#39;t bet on it. The software industry still seems to be in its big bang expansion phase. Ten years ago I figured the industry would start to cool down and more &lt;a href="http://my.safaribooksonline.com/0321193679/ch10"&gt;professional stratification&lt;/a&gt; would emerge; didn&amp;#39;t really see that &amp;quot;new economy&amp;quot; thing coming. Who knows how long it will take for the software development expansion to stabilize. Until it does, I expect we&amp;#39;ll continue to see a lot of reinvention and repackaging of good&amp;nbsp;practices. &lt;/p&gt;
&lt;p&gt;In the end,&amp;nbsp;maybe software development isn&amp;#39;t so different after all --&amp;nbsp;the fashion industry, business books, bridge building, and lots of other stuff seem prone to recurring fads. It&amp;#39;s nice to think we&amp;#39;re special though...&amp;nbsp;&lt;/p&gt;&lt;img src="http://blogs.construx.com/aggbug.aspx?PostID=2170" width="1" height="1"&gt;</description><category domain="http://blogs.construx.com/blogs/mattp/archive/tags/software+development/default.aspx">software development</category></item><item><title>Ground Truth</title><link>http://blogs.construx.com/blogs/mattp/archive/2007/04/20/20.aspx</link><pubDate>Fri, 20 Apr 2007 19:09:00 GMT</pubDate><guid isPermaLink="false">1c8bc03b-986a-40b9-ab6d-e8d23056df8a:20</guid><dc:creator>Matt Peloquin</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.construx.com/blogs/mattp/rsscomments.aspx?PostID=20</wfw:commentRss><comments>http://blogs.construx.com/blogs/mattp/archive/2007/04/20/20.aspx#comments</comments><description>&lt;p&gt;Have&amp;nbsp;you&amp;nbsp;maintained&amp;nbsp;software&amp;nbsp;whose code&amp;nbsp;bears little resemblance to&amp;nbsp;its&amp;nbsp;design docs and comments? How many times have you&amp;nbsp;seen a&amp;nbsp;detailed and diligently maintained schedule, which is regularly&amp;nbsp;presented to management with lots of green and red&amp;nbsp;highlighting, but which no one&amp;nbsp;in the trenches thinks&amp;nbsp;has&amp;nbsp;much to do&amp;nbsp;with the work they are accomplishing?&amp;nbsp;Have you had a release sail through&amp;nbsp;testing&amp;nbsp;with flying&amp;nbsp;colors, only to be rejected by customers because it wasn&amp;#39;t what they wanted? &lt;/p&gt;
&lt;p&gt;These are all examples of a lack of&amp;nbsp;&amp;quot;ground truth&amp;quot;.&amp;nbsp;Ground truth is a&amp;nbsp;key to successful&amp;nbsp;software development. What&amp;nbsp;the&amp;nbsp;heck is ground truth and why should you care?&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Creating software is difficult&amp;nbsp;because we are building complex, abstract systems using&amp;nbsp;highly flexible and largely unbounded mediums (e.g., napkin sketches, screenshots and stories, designs, code, content, data, project schedules, etc.). To manage the complexity and abstract nature of building software,&amp;nbsp;we create&amp;nbsp;all sorts of models to&amp;nbsp;help us move from&amp;nbsp;conceptual idea&amp;nbsp;to&amp;nbsp;concrete software. Requirements model what the system will be. Designs model how we we will put it together. Project plans model&amp;nbsp;how we will&amp;nbsp;get the work done. Test plans model how we will test it. Code, data,&amp;nbsp;content, although arguably concrete, are often themselves modeling&amp;nbsp;an abstraction of the real world (e.g., a user account).&lt;/p&gt;
&lt;p&gt;All this&amp;nbsp;modeling is&amp;nbsp;critical for&amp;nbsp;allowing us lowly humans (who can&amp;#39;t keep more than 7 things in our heads at one time) to build complex systems. However,&amp;nbsp;we need to&amp;nbsp;make sure that our models&amp;nbsp;do not drift&amp;nbsp;from the reality they are intended to represent. This idea that models and reality should stay in sync is captured succinctly by&amp;nbsp;the term&amp;nbsp;&amp;quot;ground truth&amp;quot;.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Ground truth&amp;nbsp;came from&amp;nbsp;cartography and&amp;nbsp;is also&amp;nbsp;used&amp;nbsp;in the military.&amp;nbsp;In cartography, ground truth&amp;nbsp;comes from the idea that a map is an&amp;nbsp;abstract model of terrain, often focused on particular attributes (e.g., terrain type, political boundaries, elevation, etc.). Saying a map has ground truth means that although&amp;nbsp;it doesn&amp;#39;t show all the detail of the real world, what it does show&amp;nbsp;accurately reflects the real world. This&amp;nbsp;is nicely summarized by the following advice for navigating: &amp;quot;when the map and terrain disagree, believe the terrain&amp;quot;.&lt;/p&gt;
&lt;p&gt;In the military, ground truth&amp;nbsp;is expanded to mean accurate situational awareness. A commander directing a battle from HQ has information available that creates a model of the details occurring in the battle.&amp;nbsp;It is critical that the model created at HQ reasonably reflects the ground truth&amp;nbsp;of the battlefield -- otherwise poor decisions will be made and lives may be lost. For software development, our situational awareness&amp;nbsp;encompasses&amp;nbsp;what we are&amp;nbsp;building, how we&amp;#39;re&amp;nbsp;building and validating it, and how we are getting all of that&amp;nbsp;work done.&amp;nbsp;If we lack accurate situational awareness, we will make poor decisions (e.g., leaving out a critical feature) and&amp;nbsp;lose&amp;nbsp;time on useless&amp;nbsp;tasks (e.g.,&amp;nbsp;updating a schedule that no one is using to coordinate their work).&lt;/p&gt;
&lt;p&gt;The notion&amp;nbsp;of&amp;nbsp;ground truth is a&amp;nbsp;great concept, especially for work&amp;nbsp;that relies on abstract modeling&amp;nbsp;as much as&amp;nbsp;software development. When I&amp;nbsp;encountered&amp;nbsp;the term&amp;nbsp;in the (highly recommended) book &lt;a class="" title="Corps Business: The 30 Management Principles of the US Marines" href="http://www.amazon.com/Corps-Business-Management-Principles-Marines/dp/0066619785" target="_blank"&gt;&lt;i&gt;Corps Business: The 30 Management Principles of the US Marines&lt;/i&gt;&lt;/a&gt;, it immediately resonated with my software development experiences. There were so many times I had seem efficiency and effectiveness suffer because models had drifted too far from reality, whether it was a fairy-tale project schedule, requirements docs that no one understood,&amp;nbsp;or an architecture that could never be implemented.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;How do you ensure&amp;nbsp;ground truth&amp;nbsp;for your software development? Using good development practices helps significantly, but there is also art involved. Open your eyes and ears to as many sources of information as you can; don&amp;#39;t rely on your models (requirements, designs, plans) as the sole source of information. Constantly cross check information in the models to ensure both internal consistency and consistency with the real world. If you are&amp;nbsp;managing&amp;nbsp;work&amp;nbsp;don&amp;#39;t&amp;nbsp;rely on status reports,&amp;nbsp;make sure you talk informally to people doing the work about how things are going -- if you hear grumbling, investigate. If&amp;nbsp;you are doing requirements don&amp;#39;t rely on document sign-offs, informally&amp;nbsp;talk through&amp;nbsp;tricky details&amp;nbsp;with&amp;nbsp;different&amp;nbsp;stakeholders (end users, customers,&amp;nbsp;developers, testers, etc.) to spot check understanding.&amp;nbsp;If you are designing,&amp;nbsp;create functional prototypes to prove ideas and make&amp;nbsp;sure the people&amp;nbsp;using&amp;nbsp;the design understand it. If you are testing, don&amp;#39;t just rely on&amp;nbsp;equivalence&amp;nbsp;cases for&amp;nbsp;written requirements, understand the operational context and be creative about what might go wrong.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Software development ground truth ultimately means building what is needed without wasting effort and time on unnecessary activities.&lt;/p&gt;&lt;img src="http://blogs.construx.com/aggbug.aspx?PostID=20" width="1" height="1"&gt;</description><category domain="http://blogs.construx.com/blogs/mattp/archive/tags/project+management/default.aspx">project management</category><category domain="http://blogs.construx.com/blogs/mattp/archive/tags/Agile/default.aspx">Agile</category><category domain="http://blogs.construx.com/blogs/mattp/archive/tags/modeling/default.aspx">modeling</category><category domain="http://blogs.construx.com/blogs/mattp/archive/tags/software+development/default.aspx">software development</category></item><item><title>Throw Away Your Gantt Charts!</title><link>http://blogs.construx.com/blogs/mattp/archive/2007/04/20/Throw-away-your-gantt-charts.aspx</link><pubDate>Fri, 20 Apr 2007 17:44:00 GMT</pubDate><guid isPermaLink="false">1c8bc03b-986a-40b9-ab6d-e8d23056df8a:16</guid><dc:creator>Matt Peloquin</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.construx.com/blogs/mattp/rsscomments.aspx?PostID=16</wfw:commentRss><comments>http://blogs.construx.com/blogs/mattp/archive/2007/04/20/Throw-away-your-gantt-charts.aspx#comments</comments><description>
&lt;p&gt;Well, maybe not all of them. Some are so pretty, that uniform cascading of well ordered tasks trickling downhill to perfectly coincide with the deadline. Get color prints made, frame them, and hang them as abstract art. Don’t use them to manage your software development.&lt;/p&gt;

&lt;p&gt;Balance is an important part of life, so I plan to add some perspective to the inflammatory opening remarks (so I can keep my &lt;a href="http://en.wikipedia.org/wiki/Project_Management_Professional" class="" title="PMP" target="_blank"&gt;PMP&lt;/a&gt; certification). First though,&amp;nbsp;let&amp;#39;s&amp;nbsp;bludgeon the hot air out of the Gantt chart culture that inflicts many software organizations. Included in this category are the so called “activity network” models (primarily Gantt and PERT) and the tools that propagate their widespread use. Unfortunately this is pretty much every project/work management tool out there from Microsoft Project and other scheduling tools to the many group-ware collaboration websites.&amp;nbsp;No matter how many pretty pictures are created, relying on these techniques to manage software work just isn&amp;#39;t very effective. &lt;/p&gt;

&lt;p&gt;Where does this hostility come from? Was I abused by project managers as a child? No, that came later. And then the cycle of violence continued for a time as I inflicted Gantt charts on others. Eventually it became apparent that the model of work created&amp;nbsp;in the scheduling tool, with its ubiquitous&amp;nbsp;Gantt chart view, usually lacked &lt;a href="http://forums.construx.com/blogs/mattp/archive/2007/04/20/20.aspx" class=""&gt;ground truth&lt;/a&gt;. Energy would be invested by all creating, reviewing, presenting, updating, and wringing hands over the Microsoft Project file. Then people would go and get the work done without any regard to the Gantt chart. What to do to avoid this waste? &lt;/p&gt;

&lt;p&gt;A valid approach is to adopt task-driven methodologies such as &lt;a href="http://en.wikipedia.org/wiki/Scrum_%28development%29" class="" title="Scrum" target="_blank"&gt;Scrum&lt;/a&gt;. I’ve never been a fan of adopting methodologies though. Although there are benefits in being told exactly how to do something, customizing a simple set of principles and practices often&amp;nbsp;leads to a&amp;nbsp;better optimized solution. &lt;/p&gt;

&lt;p&gt;What is the purpose of Gantt charts? They provide visibility, predictability, coordination, and control of work. These&amp;nbsp;seem like important things, at least to the pointy-haired managers. Why do scheduling tools often fail to provide good visibility, predictability, coordination, and control of software work? Because they focus on time-based management of the “critical path”, i.e., dependencies and ordering of work. Most software work runs into trouble not because the critical path was mismanaged, but because &lt;b&gt;EFFORT&lt;/b&gt; was &lt;b&gt;underestimated&lt;/b&gt;. If you do not have high confidence in your estimates, building elaborate Gantt charts based on those estimates will not increase your ability to manage work effectively.&lt;/p&gt;

&lt;p&gt;What are some basic principles you can incorporate into your planning and management of work? Regardless of lifecycle and methodology all software work boils down to deliverables people need to create. Focus on these deliverables. Have individuals and teams define the deliverables for a release (sprint, milestone, whatever). Have them estimate effort ranges (not time or dates) for the deliverables. Use a simple spreadsheet to track effort expended on and completion of deliverables (and/or use work queues and burn-down charts). Let the team work out the fine-grain details and dependencies of the work on their own, whether formally with a methodology like Scrum or informally. Look at the big picture on a regular basis and see where adjustments may need to made. &lt;span&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;Gantt chart views are important for managing a complex series of work, for instance, a team with lots of dependencies on other teams. They work best when focused on deliverable milestones rather than task details. Just as different views of a design (e.g., physical and logical decomposition, database, UI screens) increase the understanding of the software to be built, multiple views into software work increase the understanding of how that work is going.&lt;/p&gt;

&lt;p&gt;Thus you may not need to throw your Gantt charts out, but you should only rely on them for what they are good at. And that is not for planning what task Tom and Susie will be working on at 2:30 pm this Wednesday.&lt;/p&gt;
&lt;img src="http://blogs.construx.com/aggbug.aspx?PostID=16" width="1" height="1"&gt;</description><category domain="http://blogs.construx.com/blogs/mattp/archive/tags/project+management/default.aspx">project management</category><category domain="http://blogs.construx.com/blogs/mattp/archive/tags/Agile/default.aspx">Agile</category><category domain="http://blogs.construx.com/blogs/mattp/archive/tags/Scrum/default.aspx">Scrum</category><category domain="http://blogs.construx.com/blogs/mattp/archive/tags/software+development/default.aspx">software development</category></item></channel></rss>