While overall the article is interesting, I'm really disgusted by two sentences: "In software it’s common to have something estimated at a day take a week instead." and "The inherent inaccuracy of software estimates creates extra tension that you don’t find in other industries." Oh, poor thing, you feel so special by being a software engineer? Have you never heard of construction projects taking many times the estima…
Software development requires servant leaders
101–110 of 209 posts
Re: Software development requires servant leaders
#102We never want servant leaders. We want leaders that embody an idea, have a vision, provide inspiration, and instill purpose.
We absolutely want servant managers. These are the people who allow those working for them to just do their job.
The lower on the org chart a person is, the more of a servant manager they should be and the less of a leader they need to be.
In smaller organizations, you can be both low and high on an org chart, as the org chart is flat. In such cases its good to embody both the leader and the servant manager.
Re: Software development requires servant leaders
#103While overall the article is interesting, I'm really disgusted by two sentences: "In software it’s common to have something estimated at a day take a week instead." and "The inherent inaccuracy of software estimates creates extra tension that you don’t find in other industries." Oh, poor thing, you feel so special by being a software engineer? Have you never heard of construction projects taking many times the estima…
> It’s not because we’re narcissists who need special labels. It’s because people keep running into difficulty trying to square the very definition of a project (something with “defined scope, schedule and resources”) with our real world experiences.
Unless someone has an example of a project that can be easily scheduled and scoped, I am going to go with us being narcissists.
Whether it is writing a screenplay, interior designing the living room, designing an aircraft, or building bridge, scope and schedule are always tricky. No software required.
When something has a fixed scope and can be dependably completed in a fixed amount of time, the appropriate English word is “task.”
Re: Software development requires servant leaders
#104Earlier quoted context omitted.
It also does not help at all that software "estimates" are typically just sticking a finger in the air and seeing how hard the wind is blowing at the moment. How many engineers are doing things like using real numbers from previous work to build models before estimating? Do we really think that every project is such a unique snowflake that we can't build models? You don't even need that much data, as long as you're u…
The conversion of estimates into commitments isn't some exception to the rule, it is the rule which is why only fools give the business estimates for things. Also ... Do we really think that every project is such a unique snowflake that we can't build models? Well, yes. That's inherent to what we do. Every project IS a special snowflake. If it wasn't we'd just download the software and install it. Oddly enough, insta…
Re: Software development requires servant leaders
#105Earlier quoted context omitted.
Yes, I get that all engineering (not just software) has inherent uncertainty in estimates. And there is always the chance for unanticipated events causing major overruns. But I still think that the uncertainty in software is significantly higher than in other engineering disciplines. Of course I don't have any scientific evidence for this claim. But there are lots of phenomena that exist in the world that don't yet h…
The only thing different about software is we haven't been doing it long so we don't know how to estimate. If you are writing a CRUD web app, it is just like the million others that have been written before and you should have the ability to give reasonable estimates. If you are writing a self driving car - that is new ground that only a few have attempted: there are many "unknown unknowns" that are hard to account f…
In short, I think there are very clear and tangible things that give software estimates a meaningfully higher uncertainty than other engineering disciplines.
Re: Software development requires servant leaders
#106While overall the article is interesting, I'm really disgusted by two sentences: "In software it’s common to have something estimated at a day take a week instead." and "The inherent inaccuracy of software estimates creates extra tension that you don’t find in other industries." Oh, poor thing, you feel so special by being a software engineer? Have you never heard of construction projects taking many times the estima…
It also does not help at all that software "estimates" are typically just sticking a finger in the air and seeing how hard the wind is blowing at the moment. How many engineers are doing things like using real numbers from previous work to build models before estimating? Do we really think that every project is such a unique snowflake that we can't build models? You don't even need that much data, as long as you're u…
Fogbugz created a feature called Evidence-based Scheduling (http://help.fogcreek.com/7676/evidence-based-scheduling-ebs). It's probably the only real quantitative approach that I have seen while working on web development projects. I'm probably wrong to assume that more "technical" fields like aerospace do much, much more than this, but it was really interesting to use this with what was mostly CRUD-work.
EDIT: added link.
Re: Software development requires servant leaders
#107This is the sort of article that makes me imagine a dialogue between a senior software engineer and a newb developer that goes something like this: Newb: Hey man, I think for this project I'll write my own SQL datastore from scratch. I've looked at a bunch of them and my project, which is basically an inventory management system, is such a special snowflake that it needs its own datastore. Senior: That would be insan…
Re: Software development requires servant leaders
#108Earlier quoted context omitted.
I should add that this "overhead" is, IMO, a good bit of the reason why other "professional" industries are so intractable to cost reductions, so long term the "professionalization" of programmers is probably bad for non-programmers (i.e. almost everyone) in the same way that the high cost of lawyer time is a disaster for ordinary people seeking justice (i.e. almost everyone), and the high cost of doctor time is a di…
In most law firms, there are two classes of lawyers - employees (salaried, with bonuses) and partners (equity profit share). Generally, partnership takes close to a decade to obtain, and generally requires a buy-in into the partnership. The 'fiction', as you refer to it, is real - they are co-owners in the business, and should be treated with some level of respect. Generally, partnership structures are closely associ…
Re: Software development requires servant leaders
#109This is an interesting article, but I do not agree with a number of its points. On the main one: servant leaders are not required ; they work on some teams, and this is great. But other teams need a strong leader who knows what he wants and directs the execution. And team members are often OK with it when probed -- "he is an asshole, but sharp and gets things done. We rarely work long hours and are respected by senio…
> ...making them finally write a quick, limited capability prototype is a MAJOR effort. Fair, but why is that. I've been talked into just-for-now solutions over and over in my career. Rarely does the org actually go back and clean it up in a timely fashion. It's possible, regardless of servantness, that leaders don't have a good reputation for following through and finishing things.
Re: Software development requires servant leaders
#110Its the only way that the leader is going to understand the needs of developers in the first place.
Non technical middle managers make awful software development leaders, yet that is very common scenario in a wide range of companies.
The problem is that executives on top are just not comfortable dealing with developers directly.