April 27th, 2014
Last September, ZeroTurnaround released analysis of a survey focussed on tools and practices of developers. They reported on how these affected the quality of code and how predictable delivery dates were. The Developer Productivity Report 2013 is a long read with lots of details. In the end, the data support what most developers already know. If you’re a programmer like me, does any of this surprise you?
- Pair up with another coder sometimes
- Automate unit tests and keep on top of failing tests
- Minimize meetings
- Use source code control
- Use an issue tracker
- Use an IDE and a debugger
- Do code reviews of new code
- Estimate as a group, but exclude the managers
I accept all of this with the except that I have not found IDEs to be a significant improvement to my productivity. Sometimes I wonder if exposing all the prototypes through popups doesn’t prevent developers from mastering a system and internalizing it. On the other hand, having memorized all the random parameters to PHP’s function might have been a waste of brain space. I’ll probably be fine for now with Geany and grep.
There’s a remarkable nugget about testing (slide 7):
Automated tests showed the largest overall improvements both in the predictability and quality of software deliveries. Quality goes up most when Developers are testing the code (also discussed in Sven Peter’s talk “How to do Kickass Software Development” at GeekOut 2013), which means that you shouldn’t just leave testing to QA team, but bake it into the development process as well. The rest of the measurements were more or less insignificant, although we don’t recommend letting yourcustomers/users test your software for you.
If you can convince your developers to do testing, there’s a big advantage for quality.
April 26th, 2014
Seems like you’d need to be drunk or young or both to play this, but it does illustrate a game mechanic I like. That is the hidden wager mechanic. In games played around a table, it keeps everyone engaged and prevents those lulls where one player is deep in thought while the other players might get bored.
Earlier this evening, @danfuzz told me that some of his friends were playing a game called “Tweet or Twenty” in which everyone around a table selects a Cards Against Humanity white card and either must post the content to their Twitter account or pay $20 into a pot. The idea is that if the card is too embarrassing, you’d rather pay than have to post it.
I thought this was a fun idea until I realized that since (a) the posts all contained “#TweetOrTwenty”, and (b) a more-or-less complete list of Cards Against Humanity cards is readily available, embarrassment is limited because it’s easy to tell when someone is playing and therefore when their post is not to be taken at face value. So I started thinking of ways to remove this limitation.
April 12th, 2014
This tool allows you to periodically grab stack traces and record calls to a library that are then saved as unit tests. It’s a shortcut to getting coverage for a library that’s already in production and stable.
Asis – Tool to deal efficiently with legacy code through creating and running characterization tests automatically.
The main idea is the following: while user or tester is using your product (for example, Web site) the Asis tool records the function calls which are performed, the sets of arguments which are passed to the function and the received output. Output can be any, starting from strings, integers, HTML, JSON and finishing with serialized objects with complex internal structure. We don’t care what we receive – we just record it and approve as correct result, because we know that we are working with the stable release version.
April 5th, 2014
Here’ are some links to articles about psychology that caught my interest in the past several months.
Aerobic activity has shown to be an effective treatment for many forms of depression. So why are so many people still on antidepressants?
Why do rich people work so much?
The quick, glib answer is that hard work is what made them rich in the first place. But then, why keep grinding away? At what point does it make sense to stop accumulating riches and start enjoying them? Are we even capable of knowing when enough is enough?
Antipsychotic drugs may do more harm than good. The tide is turning towards gentler methods, from talking therapies to brain training
Diagnoses have soared as makers of the drugs used to treat attention deficit hyperactivity disorder have found success with a two-decade marketing campaign.
The average Briton gets six-and-a-half hours’ sleep a night, according to the Sleep Council. Michael Mosley took part in an unusual experiment to see if this is enough.
April 2nd, 2014
I’m sitting on a pile of links I intended to share going back to September when I got really busy. Here are some I saved related to homeschooling and education. We kept Tre home this school year and a few months later took Henry out of public school. So far, it’s working out well, though there are definitely challenges.
What happens when a father, alarmed by his 13-year-old daughter’s nightly workload, tries to do her homework for a week
Get free K-12 video lessons; mobile apps; audiobooks, ebooks and textbooks; foreign language lessons; test prep materials; and web resources!
I’ve been gathering the best resources to teach children & teens programming?—?books, environments, apps, courseware and games.
These resources are meant for teachers and parents who want to have their children fall in love with computers and see the magic of programming.
A look at the history, performance and outcomes of the American homeschooling movement.
Contra Costa is one of nine counties statewide with an elementary school truancy rate greater than 25 percent, according to a new report by the state Attorney General.
Over a decade ago, I taught myself the basics of game programming and game development through the limited tutorial resources I could find on the Internet. Since then, the landscape of game development has changed drastically, and anyone can start creating their own games within weeks with a few Google searches. But let’s say you want to start developing your own games but don’t know where to start. Where do you go?