Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    primarykey
    data
    text
    <p>For my (small) company:</p> <ul> <li><p>We design the UI first. This is <strong>absolutely critical</strong> for our designs, as a complex UI will almost immediately alienate potential buyers. We prototype our designs on <em>paper</em>, then as we decide on specifics for the design, prepare the View and any appropriate Controller code for continuous interactive prototyping of our designs.</p></li> <li><p>As we move towards an acceptable UI, we then write a <em>paper</em> spec for the workflow logic of the application. Paper is cheap, and churning through designs guarantees that you've at least spent a small amount of time thinking about the implementation rather than coding blind.</p></li> <li><p>Our specs are kept in revision control along with our source. If we decide on a change, or want to experiment, we branch the code, and IMMEDIATELY update the spec to detail what we're trying to accomplish with this particular branch. Unit tests for branches are not required; however, they are required for anything we want to incorporate back into trunk. We've found this encourages experiments.</p></li> <li><p>Specs are not holy, nor are they owned by any particular individual. By committing the spec to the democratic environment of source control, we encourage constant experimentation and revision - as long as it is documented so we aren't saying "WTF?" later.<br> On a recent iPhone game (not yet published), we ended up with almost 500 branches, which later translated into nearly 20 different features, a huge number of concept simplifications ("Tap to Cancel" on the progress bar instead of a separate button), a number of rejected ideas, and 3 new projects. The great thing is <strong>each and every idea</strong> was documented, so it was easy to visualize how the idea could change the product.</p></li> <li><p>After each major build (anything in trunk gets updated, with unit tests passing), we try to have at least 2 people test out the project. Mostly, we try to find people who have little knowledge of computers, as we've found it's far too easy to design complexity rather than simplicity.</p></li> <li><p>We use DOxygen to generate our documentation. We don't really have auto generation incorporated into our build process yet, but we are working on it.</p></li> <li><p>We do not code review. If the unit test works, and the source doesn't cause problems, it's probably ok - but this is because we are able to rely on the quality of our programmers. This probably would not work in all environments.</p></li> <li><p>Unit testing has been a god-send for our programming practices. Since any new code can not be passed into trunk without appropriate unit tests, we have fairly good coverage with our trunk, and moderate coverage in our branches. However, it is no substitute for user testing - only a tool to aid in getting to that point.</p></li> <li><p>For bug tracking, we use bugzilla. We don't like it, but it works for now. We will probably soon either roll our own solution or migrate to FogBugz. Our goal is to not release software until we reach a 0 known bugs status. Because of this stance, our updates to our existing code packages are usually fairly minimal.</p></li> </ul> <p>So, basically, our flow usually looks something like this:</p> <ol> <li>Paper UI Spec + Planning » <strong>Mental Testing</strong> » <em>Step 1</em> </li> <li>View Code + Unit Tests » <strong>User Testing</strong> » <em>Step 1 or 2</em> </li> <li>Paper Controller &amp; Model Spec + Planning » <strong>Mental Testing</strong> » <em>Step 2 or 3</em> </li> <li>Model &amp; Controller Code + Unit Tests » <strong>User Testing</strong> » <em>Step 3 or 4</em> </li> <li>Branched Idea » Spec » Coding (no unit tests) » <strong>Mental Testing</strong> » <em>Rejection</em> </li> <li>Branched Idea » Spec » Coding (no unit tests) » <strong>Mental Testing</strong> » <em>Acceptance</em> » Unit Tests » <strong>Trunk</strong> » <em>Step 2 or 4</em></li> <li>Known Bugs » Bug Tracker » Bug Repair » <em>Step 2 or 4</em></li> <li>Finished Product » Bug Reports » <em>Step 2 or 4</em></li> </ol> <p>Our process is not perfect by any means, but a perfect process would also imply perfect humans and technology - and THAT's not going to happen anytime soon. The amount of paper we go through in planning is staggering - maybe it's time for us to get a contract with Dunder Mifflin?</p>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. VO
      singulars
      1. This table or related slice is empty.
    2. VO
      singulars
      1. This table or related slice is empty.
    3. VO
      singulars
      1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload