TE
科技回声
首页24小时热榜最新最佳问答展示工作
GitHubTwitter
首页

科技回声

基于 Next.js 构建的科技新闻平台,提供全球科技新闻和讨论内容。

GitHubTwitter

首页

首页最新最佳问答展示工作

资源链接

HackerNews API原版 HackerNewsNext.js

© 2025 科技回声. 版权所有。

Show HN: Project Management as Code with Graphviz

122 点作者 zwischenzug超过 7 年前

25 条评论

chaz6超过 7 年前
I frequently make use of <a href="http:&#x2F;&#x2F;viz-js.com&#x2F;" rel="nofollow">http:&#x2F;&#x2F;viz-js.com&#x2F;</a> so I can generate dot graphs without needing to install GraphViz.
评论 #15963445 未加载
评论 #15959417 未加载
lostapathy超过 7 年前
Glad to see somebody else trying something like this. I was manually maintaining some charts like this for a while at a prior job and was toying with productizing it, it&#x27;s super powerful, especially if you&#x27;ve got a large backlog or a large feature list ahead of you.<p>I wanted to have another representation that generated the GraphViz files, though, so you could more easily do other work with the data. Some other features we thought we needed:<p>* Notation of whether a dependency was &quot;can&#x27;t start until it&#x27;s done&quot; or &quot;can&#x27;t finish until it&#x27;s done&quot; to designate whether or not an item and it&#x27;s deps could be in progress concurrently or if the earlier project needed to be completed first.<p>* Attach rough time estimates to each node (person-week granularity)<p>* Generate a list of &quot;eligible&quot; projects, i.e. those things with no hard blockers<p>* Sort this list by how much downstream work it blocks. Probably by each of: number of work weeks blocks, number of projects it blocks, and depth of the tree it blocks. This would help identify the boring projects that stand in the way of everything.<p>* Generate a list of &quot;up next&quot; projects that had only one in-progress blocker and thus were eligible for moderate discussion, but couldn&#x27;t be allowed to dominate meeting time.<p>* Generate another list of &quot;off limits&quot; projects that had at least one blocker that wasn&#x27;t even in progress yet and thus were a waste of staff time to meet about. No point having design meetings when something is 3 nodes deep in the graph.<p>I ultimately left because the management was insane and irresponsible and undermined these efforts once they started to set in well (because they removed her absolute authority to monkey with priorities). But I think it&#x27;s a system that works well with sane management. At present I don&#x27;t have enough backlog to need this tool, but look forward to working on it again one day.
评论 #15960662 未加载
zwischenzug超过 7 年前
Code here: <a href="https:&#x2F;&#x2F;github.com&#x2F;ianmiell&#x2F;pm-as-code" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;ianmiell&#x2F;pm-as-code</a><p>I&#x27;m not a GV expert, so contributions&#x2F;suggestions&#x2F;critiques welcomed.
评论 #15959072 未加载
doug1001超过 7 年前
nice one.<p>Dot (both the layout engine and the graph DSL) is used in OmniGraffle, so you can import the dot files like you made into OG and edit them further, either manually or via OG&#x27;s scripting interface<p>and then for instance, quickly convert text inside a node to a link to a suboordinate graph (ie, the top-level graph might describe a large project, and each node in that graph, might represent a &quot;sub-project&quot;--hence you can represent a very large project as a hierarchy of graphs, eg, one per sub-project, but that still roll-up to a single top-level. This is a core feature in OG and trivial to do
评论 #15960389 未加载
jurasource超过 7 年前
What a great idea. I really struggle to plan sprints and projects just using lists. Also MS Project etc are just far too complicated for my small projects.<p>I actually resorted to drawing dependency and flow diagrams by hand, then translating those into JIRA tickets and adding to Kanban style boards.<p>The ability to track changes using git is such a simple (and with hindsight, obvious) idea, but I should think very effective.<p>Nice one.
评论 #15960384 未加载
gadders超过 7 年前
This is just a PERT chart, right? [1] Only difference is you don&#x27;t appear to have any durations on the tasks. If you added that you would be able to calculate your critical path.<p>[1] <a href="https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;Program_evaluation_and_review_technique" rel="nofollow">https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;Program_evaluation_and_review_...</a>
chrisbro超过 7 年前
This is great, thanks for sharing. I stumbled across this idea myself since no todo manager really represented complex dependencies of tasks - the &quot;list&quot; format is just so prevalent and usually ends up increasing cognitive load as I can sometimes get frustrated trying to figure out what&#x27;s &quot;next&quot; on a non-linear project.<p>Have you seen DropTask? It&#x27;s the same idea, I just haven&#x27;t dug too much into it yet: <a href="https:&#x2F;&#x2F;www.droptask.com&#x2F;" rel="nofollow">https:&#x2F;&#x2F;www.droptask.com&#x2F;</a><p>The key feature for me is being able to have multiple ancestor&#x2F;dependency tasks to a task node, instead of a hierarchical &quot;next action&quot; setup like most task managers.
评论 #15961825 未加载
qrv3w超过 7 年前
Thanks! I never thought about applying this to my todo list, but its a great idea!<p>I have done something like this for creating &quot;recursive recipes&quot; [1] which generates similar looking dependency charts when you start probing how to make a recipe from scratch [2].<p>[1]: <a href="https:&#x2F;&#x2F;github.com&#x2F;schollz&#x2F;timetomakefood" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;schollz&#x2F;timetomakefood</a><p>[2]: <a href="https:&#x2F;&#x2F;user-images.githubusercontent.com&#x2F;6550035&#x2F;34167929-6a389572-e4a0-11e7-8e92-e2818634156b.png" rel="nofollow">https:&#x2F;&#x2F;user-images.githubusercontent.com&#x2F;6550035&#x2F;34167929-6...</a>
评论 #15961828 未加载
tezza超过 7 年前
a great gui editor for similar tree-node structures is freemind<p>a lot quicker than code dsl -&gt; git -&gt; graphviz<p>and freemind also has search, edit, history, links, export as HTML<p><a href="http:&#x2F;&#x2F;freemind.sourceforge.net&#x2F;wiki&#x2F;index.php&#x2F;Screenshots" rel="nofollow">http:&#x2F;&#x2F;freemind.sourceforge.net&#x2F;wiki&#x2F;index.php&#x2F;Screenshots</a>
评论 #15961837 未加载
评论 #15959111 未加载
realsneil超过 7 年前
Really interesting and well written post. Certainly has started some cogs turning in my mind.<p>Just a note, I think there is some text missing or leftover at the end of the &#x27;Surface Assumptions&#x27; paragraph.
评论 #15958932 未加载
Izkata超过 7 年前
This reminds me of an experiment I had going a year or so ago. Same basic idea, but far more automated: I&#x27;d been using taskwarrior for years, and had gotten into the habit of breaking what I was doing into multiple taskwarrior tasks with dependencies. Out of curiosity, I wrote a bash script that extracted those dependencies and created a graphviz dot file.<p>(I never really found much use for it though, and had forgotten about it until reading this. I now just prefer taskwarrior&#x27;s urgency ranking in its regular output.)
sorokod超过 7 年前
Your last example can be made more concise (and more readable IMHO):<p><pre><code> &quot;EH&quot; -&gt; {&quot;BT&quot;, &quot;BFR&quot;, &quot;BTOW&quot;, &quot;PSNB&quot;, &quot;GCD&quot;} &quot;BFR&quot; -&gt; &quot;BPB&quot; &quot;BPB&quot; -&gt; {&quot;GTS&quot;, &quot;GCG&quot;} &quot;PSNB&quot; -&gt; &quot;BGB&quot; &quot;BGB&quot; -&gt; &quot;GTS&quot; &quot;PSNB&quot; -&gt; &quot;BEC&quot; &quot;BGB&quot; -&gt; &quot;GCG&quot; &quot;BEC&quot; -&gt; &quot;GCG&quot;</code></pre>
评论 #15965833 未加载
partycoder超过 7 年前
Gantt charts also represent dependencies among tasks.<p>They add more information as well: time estimation, milestones, asignees, etc.<p>Gantt charts receive some criticism since estimations are approximations and any precision issue starts compounding very quickly.<p>Issue trackers may also support dependencies between tasks. The problem is that issue trackers usually come with scrum&#x2F;kanban boards that do not have a represention dependencies among tasks.<p>There are many applications to put together a gantt chart.
评论 #15959435 未加载
shushcat超过 7 年前
Perhaps someone will find this old-ish project of mine[1] useful. It automatically generates graphs using Graphviz based on Taskwarrior queries, which makes it considerably easier to manage and filter task lists.<p>[1]: <a href="https:&#x2F;&#x2F;github.com&#x2F;shushcat&#x2F;taskgv" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;shushcat&#x2F;taskgv</a>
评论 #15966067 未加载
zitterbewegung超过 7 年前
Mixing this with <a href="http:&#x2F;&#x2F;orgmode.org&#x2F;worg&#x2F;org-contrib&#x2F;babel&#x2F;languages&#x2F;ob-doc-dot.html" rel="nofollow">http:&#x2F;&#x2F;orgmode.org&#x2F;worg&#x2F;org-contrib&#x2F;babel&#x2F;languages&#x2F;ob-doc-d...</a><p>Would be pretty awesome. Your todo list could have graphs in them or dependancies.
评论 #15960040 未加载
alexatkeplar超过 7 年前
Great write-up! I tried something similar for modelling out the Snowplow release dependency chain (<a href="https:&#x2F;&#x2F;github.com&#x2F;snowplow&#x2F;" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;snowplow&#x2F;</a>) - I gave up and started looking at SaaS alternatives, but inspired by this I am going to try again.<p>For the record, I didn&#x27;t find any good product management or project management tools (SaaS or desktop) which acknowledge that roadmapping any sufficiently complicated platform or product family is best expressed by a directed acyclic graph. Casual.pm had the right concept (<a href="https:&#x2F;&#x2F;casual.pm&#x2F;" rel="nofollow">https:&#x2F;&#x2F;casual.pm&#x2F;</a>) but the implementation was very primitive.
评论 #15961190 未加载
评论 #15961192 未加载
devnonymous超过 7 年前
Thanks for writing the post. Although I&#x27;ve heard of graphviz (and dot) before, I didn&#x27;t take the time to read up on them since the docs were so dense. Thanks for making this accessible.
评论 #15958891 未加载
mattsouth超过 7 年前
How much do people use dependencies in jira etc? Seems that one ought to be able to create a plugin that would automatically generate and update this graph for any issue with dependencies.
评论 #15959549 未加载
评论 #15959226 未加载
xchaotic超过 7 年前
Thank you, very interesting example, but I don&#x27;t necessarily see the added value in the graph form, for this particular example - it implies dependencies where there are none - for example buying GBP only after buying the guide book etc. I think it is just the example that is wrong. What&#x27;s typical for a holiday break, is a todo list, which is in no particular order. Perhaps an actual project would be a better example?
评论 #15958978 未加载
cirowrc超过 7 年前
Thanks for sharing!<p>I&#x27;ve been using the &quot;same&quot; technique with some projects I have but just to outline specific components of the system such that it becomes more clear what interacts with what.<p>For me, the best that I got out of it was having to think hard about those relations and improving the documentation of the subject.<p>Have a good one!
jk4930超过 7 年前
Pragmatic approach, I like that and am willing to play with it. Combining it with <a href="https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;Critical_path_method" rel="nofollow">https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;Critical_path_method</a> could yield interesting results.
FLUX-YOU超过 7 年前
Most of these graphs don&#x27;t seem to have too many connections.<p>Wouldn&#x27;t a checklist layout be much better?
评论 #15960880 未加载
akras14超过 7 年前
Cool post, really enjoyed it!
评论 #15953463 未加载
joshsyn超过 7 年前
Seems really overkill
评论 #15960868 未加载
yipopov超过 7 年前
I love Graphviz but hate the Dot language with a passion. Has anyone tried to come up with a more consistent and user-friendly graph definition language?
评论 #15962662 未加载