Isee direct productization of prototypes as an anti pattern that typically happenswhen you create a prototype that works sufficiently well that people aroundyou (*cough* project managers *cough*) mark the feature as complete anddecide to ship it.
As an example, I recently did some robustness improvements in code thattalks to a Cassandra database. I had no idea which exceptions I would getin various problematic situations (such as network outage) and I only hada vague idea about how a connection problem would affect the existingoperation-level retry behavior. I ended up writing a test that fired offa steady stream of operations against the storage facade and in the endprinted some metrics and verified that all operations went through. As anadded bonus, writing that test forced me to think about the best way tosimulate load on the component in question.
The important thing here is that the TDD activity can be carried out by the book. Normally, using Test-After Development is very dangerous since the resulting testsare very likely (at least in my experience) to be buggy (not detect regressions) and/orto test the wrong things. With Test-Driven Uncommenting (or TDU), you get the correct red-green-refactor cycle:
It follows that TDU is most useful when the structure of the prototype isdecent. Otherwise, it might not make sense to uncomment code into a design thatis wildly different than the one for which the code was written. On the otherhand, I often find that there are pieces (methods, typically) worth saving inany case. YMMV!
As noted before, since the prototype has been created,the ground is now familiar and possibilities and constraints are known. Itbecomes a lot easier to have a good idea about the kinds of tests thatneed to be written on different levels (layers) in the code.
A prototypecan be test-driven with a high-level blackbox test which later on is thrown away.Such a test is most likely an integration test of some sort, perhaps even a UItest. It is not a unit test, as unit tests tend to be tied to a particular implementation.
The original primary goal of using the CANedge CAN bus data loggers was to add a 'safety device' aka blackbox in our prototype cars, which would record sensible data all the time. The objective is to avoid losing important information (by using a wrong DBC file for example). To achieve this, we now record raw CAN data on two CAN buses all the time.
The CANedge2 loggers are connected to 2 CAN buses in each prototype car. As they record raw data, we can DBC decode it during post processing - depending on the software version of the car. The CAN loggers are permanently installed in the front hood of the cars, connected to the buses with DB9 connectors. The data is offloaded to our server via WiFi/LTE or by manually collecting it from the SD card.
Prior to using the CANedge, it sometimes happended that data was recorded with outdated measurement templates (and thus DBC decoding), which did not correspond to the software version of the car. In contrast, the CSS CAN loggers allow us to go back to the raw CAN data recorded and post-process it with the corresponding DBC files.
The logger also serves as an added security in case a measurement system crashes. We use the CAN loggers, but also other the CANmod sensor-to-CAN modules from CSS (the CANmod.temp and CANmod.input), specifically for small temporary benches needed to develop some systems. They are easy to set up and easy to use.
The main goal was to add a blackbox security system that works well for recording the raw data of the car. Our team initially chose the CANedge data loggers for their low prices - and since we have been very happy with both the hardware/software, we have continued to use them since then.
Sun Modular Datacenter (Sun MD, known in the prototype phase as Project Blackbox) is a portable data center built into a standard 20-foot intermodal container (shipping container) manufactured and marketed by Sun Microsystems (acquired in 2010 by Oracle Corporation). An external chiller and power were required for the operation of a Sun MD. A data center of up to 280 servers could be rapidly deployed by shipping the container in a regular way to locations that might not be suitable for a building or another structure, and connecting it to the required infrastructure.[1] Sun stated that the system could be made operational for 1% of the cost of building a traditional data center.[2]
In March 2009, the Internet Archive migrated its digital archive into a Sun MD, hosted at Sun's Santa Clara headquarters campus,[9] a realization of a paper written by Archive employees in late 2003 proposing "an outdoor petabyte JBOD NAS box" of sufficient capacity to store the then-current Archive in a 40' shipping container.[10]
3a8082e126