4

I have a friend with an interesting workflow, and I wonder if there's any good English words that kind of describes it.

Basically if he makes a video-game he first quickly makes the game playable and finished but in extremely sloppy way, meaning you can play the entire game but the graphics looks like childrens doodles and stuff, then he gradually adds layers of polish to each part. So that at any month he can decide to ship it, the question is just that the quality will be higher the more months he spends on it.

Whereas the conventional workflow perhaps make one chapter of the game reasonably good, then move onto next chapter. the downside being that if he has to abandon the project the next day then he might have a game without an ending.

The closest word I can think of is "iterative workflow", but the way that word is used today means something very different, usually that word emphasizes that you listen to the results of the first iteration before moving to the second iteration. Whereas what I'm trying to describe is rather emphisized on the fact that at any time the product can be shipped. each interation may or may not involve playtesting.

4
  • 2
    He's using "scaffolding", and employing an iterative workflow. Usually this is described as an "agile" programming strategy.
    – Hot Licks
    Commented Dec 27, 2015 at 14:37
  • 1
    It is a totally valid technique. Once have the skeleton and core, the graphics can be done by other, probably more graphically talented, people if necessary. And as mentioned, its part of agile. Commented Feb 25, 2016 at 19:48
  • What you've described is an almost ideal Agile workflow. You can drop the code at any minute (more or less), and have a fully workable project. We strive for (and largely fail) this exact thing where I work. This has little to do with the development team's efforts, it's management's willingness to break the process on an ongoing basis.
    – delliottg
    Commented Apr 5, 2016 at 21:33
  • As a programmer and a writer, I use this work flow a lot. Among computer scientist, this process is called iterative refinement. Commented Apr 6, 2016 at 16:13

5 Answers 5

1

I would describe it as iterative refinement. Each iteration results in a product with more detail.

At any point in time, there is a fully functional product with less refined detail, and a work in progress product with additional detail.

0

Whereas what I'm trying to describe is rather emphisized on the fact that at any time the product can be shipped. each iteration may or may not involve play testing.

Initially, I thought about Agile methodology but that misses your description by a mile. Perhaps, you can call this a Perpetual beta

Definition:

Perpetual beta (or ‘banana principle’) is the keeping of software or a system at the beta development stage for an extended or indefinite period of time. It is often used by developers when they continue to release new features that might not be fully tested. Perpetual beta software is not recommended for mission critical machines. However, many operational systems find this to be a much more rapid and agile approach to development, staging, and deployment.

Extended definition by Tim O'Reilly

"Users must be treated as co-developers, in a reflection of open source development practices (even if the software in question is unlikely to be released under an open source license.) The open source dictum, 'release early and release often', in fact has morphed into an even more radical position, 'the perpetual beta', in which the product is developed in the open, with new features slipstreamed in on a monthly, weekly, or even daily basis.

[Wikipedia]

In essence, the game is in perpetual beta, where new features(that may or may not be tested) are added every few days/weeks/months. Once the final product is ready, you term it as Release to Manufacturing (also called Going Live). I'd tell Perpetual beta is part of Continuous Improvement Process.

0

The terms depth and breadth, literally referring to length dimensions, are also used figuratively in a variety of other applications, including in software searching a list for an element, in business positioning within a market, and in education obtaining knowledge and experience.

To borrow from and expand this idea, your friend prefers to focus on the breadth of his games before the depth.

0

It's what can be best described as an organic workflow -- one that's still iterative, but with much shorter iterations, and with an emphasis on always having something functional (and shippable) with each iteration.

Ashlar-Vellum supports an Organic Workflow paradigm in its software products that has many of the characteristics of the workflow that you're describing:

Organic Workflow by its very nature:

  • Starts anywhere and goes anywhere.
  • Moves freely in any direction.
  • Sustains change while maintaining integrity.
  • Fosters illumination from within the ordinary.
3
  • I don't believe, in 40 years of computer programming, I've ever heard "organic" used to describe workflow.
    – Hot Licks
    Commented Dec 27, 2015 at 14:35
  • @HotLicks I've certainly used it to describe my development process now and then (30 years a programmer)...
    – Gnawme
    Commented Dec 27, 2015 at 16:32
  • Not to mention that the article linked uses it in a way that makes sense.
    – Gnawme
    Commented Jan 26, 2016 at 20:37
0

Refinement.

If you need a process name, call it "Refinement Process". Your example is very specific - are you trying to refer to a specific programming process? Change "game" for "dining room furniture set" and does it make a difference? If it does, then you may be looking for a type of process, methodology, whatever. If it doesn't, just try refinement.

Also, you do not describe how your friend designs the chapters in the second example - maybe the same process per chapter. Sloppily start the chapter, finish it, then slowly refine the chapter, then call it done. Both examples can be the same process.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .