A friend sent this Software Gardening Manifesto to me.
This is related to the idea of growing software vs building it, greatly exemplified by the Growing Object-Oriented Software Guided by Tests book (category here).
I’ve read this paper by Nagappan, Maximilien, Bhat and Williams on the cost, advantages, pitfalls of doing TDD in industrial teams (private companies who create software).
My notes Abstract:
little empirical evidence supports or refutes the utility of this practice in an industrial context
they seem to be talking about inside-out tdd as in chapter 2 (page 291), they talk about small units and then integrating them in a bigger context Benefits taken from chapter 2 (page 292)
I’ve watched this talk by Erik Meijer
My notes Agile!: The Good, the Hype and the Ugly
The hacker way
code always wins vs manager always wins source: http://www.wired.com/2012/02/zuck-letter/ we’re doing maths => we’re building a proof
reinforcement learning
agent is the company related to “build, measure, learn” by Eric Ries (the lean startup)
Feedback systems Open (no) feedback system, such as timed sprinklers Closed feedback system Output only system Why everything is software Examples of everything is software Software is eating the world Even hardware is modeled as software Modeling as a Finite State Machine (FSM) There’s memory in the feedback loop.
Update: I’ve grouped all small posts related to the self-study from May 2015 into a single post
Programmer passion considered harmful I’ve read this article on why programmer passion could be negative. The title is similar to a paper by Dijkstra.
Software Craftsmanship: Are Bootcamps Enough? I’ve read this article on software craftsmanship, development bootcamps and passion by Ken Auer
Improve your development environments with virtualization I have seen this video: Improve your development environments with virtualization by Luke Sneeringer.
After reading the GOOS1, the more and more I get this feeling of what vs how:
Information hiding The total simpler than the sum of the parts Extracting a concept so you can think about this. Makes you find better names: test name variable name method name interface / protocol name I also got this feeling when reading Clean Code. But with this other book the smell is much harder, stronger.
At a client, last week I’ve organized an internal training, in the form of a discussion about this article: Testing is hard - just do it
Our thoughts When a bug is found, prove it exists with a test
This immediately reduces defect rate: the same regression cannot be introduced again
fix a bug a second time
If fixing a bug (having defects in your code) was ‘waste’, as defined by lean methodologies, it also is wast fixing it for the following times