Ask HN: Suggestions for spacewalk procedure writing?
Currently we write these procedures in Microsoft Word. A procedure is basically a big table, with each column of the table being the steps for each entity. So EV1's steps are in one column, EV2's in another, and so on. If EV2 has a step that has to come after one of EV1's steps, then we make sure that the later step is lower on the page than the earlier step. All of this requires a lot of formatting in Word, and we spend too much time dealing with the formatting aspect. Most of these procedures are text with ordered and unordered lists, but there are also images and diagrams.
What I'm looking for:
- A better method for writing procedures with multiple people working in parallel
- Ability to easily see (and diff) the entire revision history
- Allow multiple editors. Not necessarily Google Docs-type multiple editors, though. Instead I imagine the procedure would reference individual documents as sub-procedures, and those could further reference more sub-procedures. So each editor could be revising smaller portions of the same spacewalk procedure, but not the same portion at the same time...so a lot like software development.
- Bonus if it can also help manage the location of hardware and tools as they're used throughout the spacewalk
Is there any such software in existence? If not, is anyone interested in creating such a thing? I'm not sure how much applicability outside spacewalks there this, but there has to be some.
36 comments
[ 3.5 ms ] story [ 79.4 ms ] threadMarkdown files are stored in plain text, so diffing is easy.
Heck, looking at the first 3 requirements, you might be able to put EVA procedures all in the wiki section of a private Github repo.
[0]http://daringfireball.net/projects/markdown/syntax
[1]https://github.com/adam-p/markdown-here/wiki/Markdown-Cheats...
You could do it in HTML, then keep the HTML files in git so you can do version control. You can use any number of editors/WSIWYGs with HTML. You could then build custom tools to ease the workflow - are there any resources for this?
I thought first to say you could use Google Docs, but while it has a revision history and export to many editors, it does not do diffs well, and I'm not sure how well it handles your tabular format. I also doubt any particular online CMS designed for writing or editing will work particularly well, and meet all stakeholder needs.
Whilst you’re currently using Microsoft Word for this, it would actually be much easier to do this using Excel (and create a Gantt Chart) OR you could use something like Asta Power Project[1] which is used in the Construction Industry as well as with Technology Organisations, Engineering, Manufacturing, Oil & Gas and Financial Services etc which rely on projects running in parallel.
The reason I recommended the Asta Power Project tool is because you can:
- Create accurate schedules easily using a drag/drop feature
- Have complete visibility over multiple projects in real-time
- Optimise your project resources
- Access powerful reporting tools
- ETC
I've actually used the Asta Power Project Software myself; it's pretty powerful and feature rich.
[1] http://www.astadev.com/products/asta-powerproject/
All of these tools focus on creating gantt charts or similar, with independent subtasks that can be reliant on other tasks, broken into subtasks, group within barriers (milestones). They help enormously when you need to insert things or reorder stuff.
I've never seen one used to incorporate the actual detailed instructions for completing the task, generally because part of the task is figuring out how to do it. But I'd be surprised if you looked at a few different project management applications that there wouldn't be one or more that could be used that way. If nothing else you probably would be able to use the task description that's usually very short to include an arbitrary amount of text.
The biggest challenge might be in getting a report formatted to your liking at the end of the process with all the details nicely formatted. Most of these systems provide a great deal of extendability, so you might need to have some minimal development work done in terms of a custom report format. Or maybe not - these are enterprise systems that are usually loaded with special case features.
The markup isn't necessarily a requirement, but some sort of text-based standard for how these documents are laid out would be important, imho.
For print-processing/missionpacks, I'd use latex. Its really the best possible way to solve the text formatting problem, especially if you use a markup. You could have your own markup dictionary/language too, which would fit right in with latex files.
So the whole policy group uses plain old text with smart formatting (so they are actually doing the work in-line) and doc generation through a latex pipe. Yup. Its the 70's all over again, and actually I'm becoming more and more aware of how non-ridiculous this is, while at the same time somehow being ridiculous. I wonder if there is a word for that ..
I'd look at things like a VCS's history graph, or video game skill trees to see how this could be visualized.
I'd break it down into text files with:
This would be manageable in most VCS's, and could easily be broken out for work by multiple people. You could also have tools that automatically generates a list of all the tools used in a step/procedure, and then checks it against other procedures to avoid needing two of a tool when only one is available.Also, as I understand it, you're asking for solutions to the wrong problem. While any sort of project planner would be an improvement over scheduling in Word, the reason you don't use that already is a certain rigidity in how EVAs are planned. If that rigidity were overcome, you'd be able to use a simple project planner, and you'd also be able to use a much more advanced solution that ensures that no tasks collide.
Could it be that there are people in NASA who already have solved your problem or understand the challenge better than the HN crowd?
[1] http://www.yourhost.is/images/stories/NordiCHI2010/accepted/...
The downside is that you'll be administering a server and customizing it on an ad-hoc basis while you figure out how to organize the content and make it spit out the PDF format you're envisioning (that you might not be able to get perfect) and teaching everyone else how to use it properly. It might not even be appropriate if these procedures will be used once and then discarded.
The upside is that it's not Word.
As for "these procedures will be used once and then discarded": that's not really an issue. Most procedures would not be used just once, since we'd reference a procedure for installing hardware if we ever needed to remove it. Procedures used to fix something will be reused if it breaks again.
- I use org-mode table feature to write checklists for system outages. Not as exiting as a space walk, granted.
- I don't use revision history but ... emacs. I bet it _has_ revision history.
- It's text. It can be edited by every editor you have heard of, and those you haven't.
- Underneath emacs is lisp. Assuming you've got a database of _some_ kind you can probably write a function to talk to it.
Latex allows to split the document into many small files that can easily be worked on by different people. You can even split them further, and also compile just parts into pdf documents (\include to the rescue!).
A good repository (git works well multiplatform) can merge (automerge is very good) so it's not a problem if people work on the same file at the same time, as long as it's not exactly in the same place.
There are pretty pdf output files (which can be made to look like the normal word documents if it is needed). Graphs and Figures are handled automatically. Sometimes they don't do what one wants, but there is very extensive documentation out there.
The repository also takes care of the revision history.
Problems that I could see is that it's similar to writing html. Some people don't like this and might not want to use it. It's just a typesetting solution and will not do automatic time management (like checking that all is in the right order, or see what overlaps), but it is more powerful than Word.
(Seriously though, what is it with space agencies and Word? ESA/DLR sent us a mangled uncompilable latex template full of typos which said it came from "word-to-latex".)
Single line breaks don't affect the finished product, but separating sentences means that a change to one sentence never affects others around it.
Unix environments have tools like tsort(1) and make(1) which process objective/dependency relationships, and many OS package managers which process dependency chains. (HN readers: no, I am not suggesting to just use Makefiles for spacewalks. :-) )
If you can build up a library of small procedures and dependency relationships among them, then express objectives in terms of a set of procedures, it should be possible (insert hand waving here) to generate (or regenerate) a reasonable sequence (or N parallel sequences) of steps from the underlying hierarchy.
Some questions:
How does complexity increase when evN > 2? IOW, what is big O(N)? (Yes, you only do 2 EVs now, but no doubt at some point N <= 2 will be become N > 2, and if you code for N then N>2 and N==2 will both be feasible.)
If parts of an EV plan must be radically altered during an EVA, how easy/feasible is it to generate a new plan, or do people fall back to other methods (skip/scrap portions of old plan, stop EVA & start over later, etc.)
From an EVA planning perspective, we generalize that to three entities: EV1, EV2 and everyone else. That is, we have three columns in our Word document, and steps in the "everyone else" column will specify who is performing them, i.e. "Station Arm: translate to hardware pickup location"
We almost always have extra tasks, which we don't consider part of the nominal procedure. These tasks can be used if for some reason we couldn't do part of the nominal procedure, or if we get the nominal procedure done vastly ahead of schedule and want to use the EVA time we already had book kept.
If, say, EV1 is 30 minutes ahead of EV2 and would otherwise just be waiting for EV2, we could send EV1 to do one of these extra tasks. In those cases normally we won't rewrite the procedure in anyway. A voice call will be made to the Flight Director (which everyone in mission control can here) saying something like "After EV1 completes step 45 he will have to wait for EV2 to complete step 56. We estimate that EV1 would be waiting 30 minutes. As such, we suggest he procede to Get-Ahead procedure 'Install Widget' on page 33"
One thing that could turn out to be a problem is that TaskJuggler is meant for longer running projects (weeks to years). Maybe time resolution is not enough for your purpose.
[1] http://www.taskjuggler.org/ [2] http://en.wikipedia.org/wiki/TaskJuggler
- have revision support. A basic diff is available inside Word (Compare version).
- Breaking up the procedures as individual document can be done using outline view. Sub document can be created, imported from new files, or extracted from current master document.
- Co-authoring feature which enable multiple editors work on a same file, owner can review and accept/reject changes.
- Inventory management (I assume involving database) can be done using either Access or Excel.
What make SharePoint so nice is the Composites, which allow you to working with multiple datasource (Office files, SQL, Webservices). A handbook is available here: http://www.microsoft.com/en-us/download/details.aspx?id=3605...
Note: document outline doesn't require SharePoint (it's a built in feature of Word), co-authoring require either SharePoint or SkyDrive account to host the document.
I'm not aware of any software implementations, but I'd be surprised if there aren't any. Many applications need multiple tasks completed in convoluted series/ parallel. The automation industry does a lot of this kind of stuff for one, I am sure there are others. If not, it should be reasonably easy to make such a thing..
[1] http://en.wikipedia.org/wiki/Program_Evaluation_and_Review_T...
- How astronauts and mission control receive this procedures, written, computer, ipad, are google glass(or a similar HUD) a possibility to show the procedures live while working?
- Is it possible for them to make annotations, questions, have feedback on real time, or while preparing the mission? Could this be a desirable feature?
I don't really know of any tool that may be useful, I don't think that Microsoft project could really fit, it is too complicated for the task IMHO. I it should be something with this features (maybe not, Just guessing!):
- A version control like git that allows to save procedures, sub procedures, edits, comments, explanations or technical discussions that are not included in the "printed" version, informs and a tool to navigate all of them visually.
-User management: be able to have your own user, so as to have your edits in your account. Be able to follow another user or group of users.
- Word editor template a la google docs, that allows to see both EVA procedures, but with some excel like capabilities, like creating a time line(rows). Steps (cells) that can have a relationship with other cells from the same EVA(column), with the other EVA, with mission control and/or self properties (like tool to be used, comments, reports, etc..)
-Possibility to save sub-procedures to be used again, insert them in a different mission, also must have the possibility to be branched in a new mission to modify them. Also be reported, comment/discussion timeline, etc...
- Be multi-platform: laptop/PC/mac/linux, tablet, print format, and also HUD appliances(google glasses), (so the astronaut is able to scroll and read while on the vest).
-Also I suppose that multiple views of the same procedure must be possible, like simple, expanded, annotations, reports, versions, missions, incidents, warnings...
I don't know if a software of this kind could be created from parts of open source programs like open-office, git, etc.. or it must be created from cero.
Edit: typos.
Word is designed to hide XML from the user and introduces significant complexity in order to do all sorts of things that this project doesn't need.
As I see the alternatives to what is done currently:
a) Change the format to use the current tool more efficiently. I.e. treat the format specification as a variable.
b) Get a better tool for manual/visual formatting - a better "MS Word."
c) Get a tool for formatting programmaticlly. This could be done with Word, but XML and CSS are easier.
That said, I don't think the answer is project management software. It's designed for a different problem and a different time domain. It's for acquisition and implementation of another module on the ISS, not changing sparkplugs.
http://www.reddit.com/user/TempleOS/
Spacewalk for my video game
http://www.templeos.org/Wb/Apps/X-Caliber/X-Caliber.html#l48...
God says...
-----God says... shoe returned drive chiefly therefrom hooks shares hour expounded brow glue Jove's honour modestly impurity tardy boss fixing re-makest recounts Bam vaster prevented throng download PROVIDED June corruptible conquer yields distracted betake men patiently geometry relaxation relaxedly devilish preserved became domestic Seraphim comprehendeth mercies' quitting fluently possesses Solomon
All can be done:
- Share with multiple people - Version control - Multiple editors - Link procedures together, group them, sub-procedures