--- abstract: 'Rec
Harmony (album) H
Q: Do we have a p
944 So.2d 1276 (2
Mental Health and
Q: What is the ri
/* * Licensed to
Q: How to check i
The Gundam series
The present invent

Category: Uncatego
Q: What is best p
Practical, accurat
The use of recombi
A new technique fo
/* * Copyright (c
The present invent
package cmd impor
Q: How to read th
This is a great wa
The Billion-Dollar Bet - stevoski http://www.xconomy.com/san-francisco/2012/11/21/the-billion-dollar-bet/ ====== crikli I know this is anecdotal, but the idea of this article strikes a chord with me at least as well. I'm a software developer for a Fortune 100 company that you've never heard of and probably won't ever hear about, but I've enjoyed making things for quite a while. On a lot of the project teams I've been on, the project manager made it very clear in terms of cost allocation and what was and wasn't realistic that the scope and timeframe for the team's deliverable were entirely up to them. These were generally experienced developers who didn't even seem all that disgruntled to go to the mat. My take on this is that it's a reflection on what's going on in the industry. Software developers are expected to churn out software for increasingly difficult problems for the sake of having an increasingly difficult software development process. We're expected to be in teams of "architects", "software engineers", and "junior developers" (don't you hate that term!). Our code has to be maintainable, clean, and performant. The code is expected to perform in statically compiled environments as well as with runtime-loaded frameworks. We're expected to integrate and interface with proprietary, 3rd-party, open source, in-house, and "homegrown" libraries. We're expected to do all this and also provide documentation and create test cases. The team is expected to have more documentation than we've produced thus far, test cases that are more difficult to pass than those written up to this point, and at least one more developer. My opinion is that software engineering has become a very difficult, specialized, and demanding profession. We're expected to produce amazing things on a deadline that costs the company a fortune and we're expected to do it with half of the resources (manpower, time, money, support, training) that we used to have. Then we get paid for it. I think this has a lot to do with how much companies are willing to pay for software. It's no wonder we're seeing such growth in terms of compensation in this industry when we are the only ones who really know how to "build software in a changing environment" [1]. [1] See the last paragraph of Eric Evans's paper, "The Mythical Man Month" ~~~ gambiting Well then, let's look at more and more experienced programmers for the time being. I've spent several years working in an IT company which employed programmers at 3x what I was making at the time, with the same education(3 year degree, in programming and maths) and years of experience(5 to 7 different projects with 5-15 developers on each). Their code was so much more optimised and better than mine that I used to wonder if they had magical powers! It turns out they didn't - they were very organised, worked late at night and during the week (as opposed to me, who would sleep from 9am to 2pm on a weekend) , read blogs, took notes and planned for all the stuff that happened on their projects. That's why they had so much more time and experience and talent than I did, and can "oversee" 3 times as much code - they had the knowledge to plan and predict problems, and thus write less code to handle them. If only more managers understood that programming is 90% (maybe more) knowing the tools available, 90% of project managers don't care at all how many different ways they can handle the same problem, and only 10% should care about how exactly you solved the problem. Maybe if more people were actually aware of the reality of programming, more companies would be hiring junior programmers to people who could do this kind of job. ~~~ lmm >if only more managers understood that programming is 90% knowing the tools available, 90% of project managers don't care at all how many different ways they can handle the same problem, and only 10% should care about how exactly you solved the problem. The problem is that the other 10% have the knowledge required to understand the programming and see immediately why any proposed solution is a bad one, but still have the authority to insist on a solution they can understand. ------ _quasimodo Btw, this reminds me of what happened in some German companies during the economic boom in the 1990's. The companies hired more and more developers and hired less and less software architects. The software architecture of the company went from a good one to a monstrosity, since the developers would just put everything into their applications. ~~~ dinkumthinkum So you think developers are responsible for that? Why? That's the architecture that you've created. Sounds like that architecture wasn't set up well. ~~~ _quasimodo I'm not blaming the developers. They did not think they could have any effect on their job and company (the other devs they work with didn't do this, but they got promoted through their friends). They've worked hard for years for companies that treated them poorly, and now they are working for a company that treats them better and gives them money, but they are stuck with a big pile of junk code. A few of them asked for it, but the few that want to change and don't have the tools they need can't change anything and are in a bad place, which is why I said "the problem is that the other 10% have the knowledge required to understand the programming and see immediately why any proposed solution is a bad one, but still have the authority to insist on a solution they can understand". ~~~ saraid216 There are always ways for people to be better than they currently are. In particular, they are always _easier_ ways. It's not developers being responsible for what their management did wrong; it's management being responsible for their management. And, more frequently, it's management being responsible for their developers who are doing a damn good job under horrible conditions. In most cases, that's the same manager who's failing to get his shit together and improve himself. It's often more a matter of changing perspective than anything. ~~~ _quasimodo > It's not developers being responsible for what their management did wrong; > it's management being responsible for their management. Sure. I'm just saying that in this case, it's hard for developers to improve on the work of management. ------ lmm This story is one of "let's write some code that will never actually be executed". In reality, every line of code needs to serve a purpose. It's not about having fewer lines of code, it's about having the right amount of code and organizing that code to fulfill it's purpose as well as possible. ~~~ jeltz I would not call 10 times more code better. Maybe the quality of the code has improved, but I would rather choose a simpler and more maintainable version. The cost of fixing bugs is proportional to the number of lines of code. ~~~ lmm It was an attempt at a minimal example, but I think it's clear it's overkill. In reality, the cost of bugs is inversely proportional to the number of programmers. ~~~ jeltz Your example was not just in terms of the number of lines of code. It also had many other problems. ------ btilly Most of the time the software you create doesn't run on hardware. For example every bank does not process checks on actual physical paper, nor does every hospital transmit X-rays on light beams, nor do most retailers accept credit cards. The reality is that while it is important to spend a lot of time planning what your system is going to do, you will be surprised at how often the thing that is going to do that gets changed. I am seeing this in myself as well. I have to remember that last year when I was working on healthcare systems my top priority was interfacing with HIPAA. Today that is no longer the most important thing. ------ lazyant Beware, as someone who just had their first (ever!) experience of job offer and now I'm about to turn down the one I took I can tell you: 1) I like the company 2) They asked for me to relocate and I said no 3) Now they want me to go remote After the experience of my current company (they went remote after months of talking about moving it to the location I was in) I asked a colleague who moved to the US why did he go, the answer was shocking "I asked and they said do it in 2 months". (His salary was 15k more than mine) ~~~ sbarre I read "