A couple months ago I wrote about a few options for people interested in tech education outside of a university environment. I recently took a 3 day course online from James Bach called RTIOnline. The purpose of this class is to develop practical skills for software testers at all levels. I am going to review the class as well as discuss a few reasons this style of education is significantly different from what I’ve talked about in previous articles.
Lets take a look…
That move is starting to look like a mistake after Rocky made a bizarre set of public tweets that insulted members of the management team.
On Monday, May 5th, the company fired Rocky, in a spectacular, public way.
Then things got weird. Continued »
TDD is dead!
Wait…what? The patron saint of Ruby on Rails wrote that post proclaiming the death of Test Driven Development and then outing himself as a non-practitioner of TDD. Lets step back for a minute real quick though.
What is TDD, anyway?
First, what is test driven development. TDD is style of software development where before writing functionality, you start by writing a little test. Only after writing a test, do you begin writing the code to satisfy that test. The goal is to develop a set of confirmatory tests that tell you that your code is doing what you think it is while you continue making changes. Another goal is to support the business by making software better and changes to software a little less risky.
I think what David is saying in his post is that TDD has become dogmatic. He suggests that it is used to the extent that software has become overly complicated at the expense of developing these tests and now doing this is the standard. Also, he suggests that real software testing has been sacrificed on this altar of confirmatory tests. Maybe he is right, but the hardline position is concerning. If DHH was only saying something along the lines of “TDD isn’t enough…”, I think we as a dev community get that without provocative blogging.
Dogma meet dogma
About 10 years ago when I got started in software testing I heard rumors of this new fangled style of development. The folks that knew about it were craftspeople by virtue of seeking out that kind knowledge. Those people actively thought about what they were doing. Realistically, these people were working in the fringes of software development culture, most didn’t and don’t bother with new techniques. Eventually, TDD worked its way through time and space and now TDD is almost a household name.
The commoditization of Agile, with a capital ‘a’, has nudged all of this along. In the current Agile world, development styles like TDD are mandatory, hiring an agile coach is a good thing,, scrum is part of your daily ritual like breakfast, and continuous delivery is the goal you shoot for.
I don’t recall any of that stuff in the agile manifesto, but there it is…
This is the sort of philosophy that is great for people selling training, and certifications, and packaged services, but it isn’t doing any favors for the software industry or the people paying for that software.
So, how does all of this effect the software biz?
My hunch is not all that much, and maybe a little on the net negative side. When people with a large audience come out and say something like this, people take it to heart rather than spending time investigating and experimenting to find their own truth. This means that whatever value and tribal knowledge was there, is disposed of without really thinking about situations where is really can solve business problems. Topics like this always make waves for a little bit and then maybe they latch on, or maybe they don’t.
My suggestion? Do what Lean suggests (smell that sweet irony!), find the value in your product and focus on that. Development fads come and go. Paying clients stick around for value, not cool test frameworks.
I use Skype for my business – to make outbound calls – and I pay a little for the privilege. It’s not much; an annual subscription of ten dollars so. Still, when I got this in my inbox, I was a little distressed:
After reading the email twice, I realized that payment was auto-renewed annual, and the expiration date on my old physical card was about to expire, even though the merchant had sent me a new card weeks ago.
So I logged into skype and tried to fix things, which is when things began to fall apart. Continued »
Matt recently wrote a piece on how he predicts flow using yesterdays weather. This is a way to figure out how much work you will do tomorrow based on how much work you got done yesterday. Today I’d like to talk about how you might get a more accurate look at the weather using inventory control techniques.
Earlier in the week I introduced the idea of #NoEstimates, suggesting that estimates are not essential on technical projects and it could be possible to run projects without them. For example: early in my own career, I was assigned to a business unit for three months of work. The specific scope of work changed so often that instead of trying to do the original project, we split the work into index-card sized stories (at left), then had the customer order the cards. I met with the customer weekly, showed what was done, and allowed the customer to add new cards, change the priority, and, occasionally, tear them up.
Here’s the amazing thing: After two and a half months, the customer looked at what was left and agreed these things had low value. The project was done early!
Then again that was a single programmer for three months. Can #NoEstimates be done with multiple teams, on multiple projects? At the program and portfolio level? If so, how?
I believe the answers are “Yes”, “Yes”, “Yes”, and “Let’s Talk.” Continued »
This blog post is for you. Continued »
Have you noticed how slow Netflix streaming has become? ISPs have (maybe for a while now) been throttling bandwidth from heavy consumers like Netflix. For me, this has made the service almost unusable. Trying to watch an episode of House of Cards that is maybe 45 minutes long in total when it stops at least 20 times to buffer was…frustrating. First world problems, I know. Having paid for bandwidth from my ISP and streaming from Netflix, I just expected things to work but it doesn’t. Why?
The timing of this slow down corresponds almost exactly with the end of Net Neutrality. Net Neutrality is based on the idea that all internet traffic should be treated the same way by an ISP, no preferential treatment for anyone. With Net Neutrality being struck down in January of 2014, this is no longer the case. An ISP can now control the flow of traffic as they please, and this is exactly what is being done with content providers like Netflix.
Google has a new offering that might help alleviate some of this pain.
Over the weekend my wife and I flew to New Orleans to meet my parents for a short family vacation. Even if you are not a party animal (I am decidedly not that), New Orleans is a great place to take in a little history, a little music, and a lot of food. While there we did the obligatory tourist stuff; walk to the river front, give a dollar to musicians busking in Jackson Square, and a stop at the legendary Cafe Du Monde.
While hanging out there having a coffee with my parents, watching people wiz by I realized this was the most perfect example of lean I have ever seen. I didn’t have to look hard to find an example where each type of waste (the Japanese term is muda) was eliminated.
The majority of my mornings start out the same. The night before I make plans at all the great things I will do – each seems reasonable. I plan the number of hours each ‘should’ take, and I’m certain to get five or six done by the end of the day, easily.
Then the alarm rings and I check my email.
A short time later, I look up from my monitor to my clock. It is 1:30PM; five hours have passed. I have not had lunch, and I am staring at a video of a cat playing with string. (Don’t click that link; you might not come back!)
Let’s get a little more detailed about my day, and talk about a meaningful way to predict work delivered.