Software development is a trade
manifestdensity.net
manifestdensity.net
The real meat of the article is actually about the best people in a trade vs the grunts. The best people end up with all the really interesting problems, where grunts dream about having those problems.
Except, that's not entirely true, is it? Only the grunts who actually like the job care about that. The rest just care about making money. They hope to never have a new problem and just want to get through another day.
And the grunts who just dream about those problems and never seek to actually try them... I feel bad for them. It's not that they can't. It's that they won't make the time or don't have the willpower to try it. It's a lot easier to work on a problem when someone is telling you to. To decide to solve a problem on your own is a lot harder.
Well, sure, but clearly he meant trades that host artisans like carpenters, mechanics and so forth. People who make tangible things other people use, and can employ the artful piece of their trade to distinguish their product from the next guy.
Programming is an artisan craft. Beautiful code is distinct and a sight to behold above and beyond code that may simply fulfill the requirements of the task.
I would argue it already has. Now, has it transformed the entire industry? Obviously no. Just like there's no silver bullet, you have to pick the appropriate tool for the job. Having an understanding about the tools available will aid you in making better decisions.
Are there people overexcited about scalability? Of course. Just like there are people obsessed about premature optimization, choosing languages for a product for the wrong reasons, or trying to push a project in the direction of their skill set rather the most appropriate.
The skill comes with the ability to pick the right tool for the right job. And for that you have to be aware of the options.
I think that's a slippery slope, or at least can be. Software developers don't just use tools, they also make them. You can't liken that to typical trades like carpentry because carpenters don't make their tools, they just use them.
There is _always_ going to be a better tool for any job, but the criteria for said 'right tool' I think needs to be perfectly spelled out. Is it a tool that is the most conceptually pure? Is it the one that we can hire developers for easily? Given that developers can also make tools is it one that we can design ourselves?
Walking backwards and forwards across this line of building things with tools and building tools confuses the crap out of people. I don't think it's until developers mature that they realise this, and then they've often done 10 years of work that probably is, well, dare I say 'wrong'!
This is the last thing I'll say. Software developers are amazingly good at coming up with a plethora of rhetoric why they should or shouldn't do anything. Look at their motives closely and you'll discover some interesting driving factors...
It is difficult to perfectly spell out and continue innovating at the same time. Just look at W3C. They're so far behind standardizing, that the industry in the current state has moved so for ahead ahead. Like I said, there are different motivations for people picking certain technologies, and when those motivations fall outside of picking the right tool for the right job, it's probably a bad idea. You can't really standardize this industry because it's evolving so fast. just look at technology 10 years ago. It's a totally different landscape. This couldn't have happend with standardization.
> Is it a tool that is the most conceptually pure? Is it the one that we can hire developers for easily?
I think it's a mistake to hire people based on a skill set and not the capabilities or potential. Technologies come and go, and as a business, you mind end up at a point where you realize you need to switch technologies, for a good reason (either the one that you're using isn't appropriate or your business model has changed and you need a different tool, or whatever reason). If you're left with developers who only know how to do one thing and can't switch technologies, you're probably going to have a hard time.
> Software developers are amazingly good at coming up with a plethora of rhetoric why they should or shouldn't do anything. Look at their motives closely and you'll discover some interesting driving factors...
I agree. Just like there are competent and incompetent developers, you have developers making choices for the right or wrong reasons. That's why hiring is a difficult process, because distinguishing between these types is not straightforward. That's why there's a fight right now for talent. That's why there's a huge gap between the professionals. Because it's not a standard, and things move too fast to set things in stone.
$10 gets you ~ 1000 hours on an EC2 Micro spot-instances. !!!!
Big data is a minefield of opportunity. Do go walk in it.
Do you really think that's how useful work is accomplished?
The point of TFA is that there aren't as many problems in need of brute forcing as we'd like to believe. In truth, most important problems require intelligent and skillful analysis. Where computing power is truly the bound, it tends to be applied pretty quickly.