News for hackers. Stuff that matters.
Re:Why Development Teams Struggle to Deliver on Time, on Bud... by jhall1468 on Tuesday June 05, 2018 @10:11AM (#17237727)
In my experience, deadlines set by higher-ups long removed from (or never having) the technical chops to be determining the deadlines in the first place. VP's and Directors are often the ones dictating the direction, which is great, but then also introducing deadlines, with helpful input from Directors who ALSO haven't touched code in many years.

Generally that results in one of two things:

* Product delivered on-time with massive technical debt.

* Product delivered late with massive technical debt.

Frankly I don't know if adding front-line engineers to the deadline decisions is going to make the issue better or worse, but fundamentally having non-technical or formerly-technical people defining deadlines definitely doesn't work.

Re:Why Development Teams Struggle to Deliver on Time, on Bud... by chii on Tuesday June 05, 2018 @10:18AM (#17237797)
In the beginning was the Plan.

And then came the Assumptions.

And the Assumptions were without form.

And darkness was upon the face of the Workers.

And they spoke among themselves, saying, "It is a crock of shit, and it stinketh."

And the workers went unto their Supervisors and said, "It is a pail of dung, and none may abide the odour thereof."

And the Supervisors went unto their Managers, saying, "It is a container of excrement, and it is very strong, such that none may abide by it."

And the Managers went unto their Directors, saying, "It is a vessel of fertiliser, and none may abide its strength."

And the Directors spoke amongst themselves, saying one to another, "It contains that which aids plant growth, and it is very strong."

And the Directors then went onto the Vice Presidents, saying unto them, "It promotes growth and is very powerful."

And the Vice Presidents went unto the President, saying unto him, "This new plan will actively promote the growth and vigour of the company; with powerful effects."

And the President looked upon the Plan, and saw that it was good.

And the Plan became Policy.

This is How Shit Happens.

Re:Why Development Teams Struggle to Deliver on Time, on Bud... by true_religion on Tuesday June 05, 2018 @10:45AM (#17238106)
Did you write this yourself? It's very good.
Re:Why Development Teams Struggle to Deliver on Time, on Bud... by chii on Tuesday June 05, 2018 @11:33AM (#17238629)
No, it's an age old poem that was passed around on the internet. I happen to have kept a copy of it, but the authorship has been lost i m afraid.
Re:Why Development Teams Struggle to Deliver on Time, on Bud... by braythwayt on Tuesday June 05, 2018 @12:30PM (#17239326)
I believe this is a translation from the original Sumerian.
Re:Why Development Teams Struggle to Deliver on Time, on Bud... by dayvough on Tuesday June 05, 2018 @11:31AM (#17238618)
A quick google sent me here: https://funnyshit.com.au/the_plan.html
Re:Why Development Teams Struggle to Deliver on Time, on Bud... by ttul on Tuesday June 05, 2018 @10:22AM (#17237834)
Having worked in the trenches as a software engineer and also as a CEO has given me respect for the VP level as well as the engineers. When the VP sets a deadline, it’s driven by the survival of the company - aka release by June or we can’t make our numbers and have to do layoffs. When the engineers push back, they often do so without an appreciation of the business reality, aka those numbers pay their salaries.

Engineers hate releasing poor quality products, but the reality is that customers often will buy and use something laden with defects rather than nothing at all. And in any case, after the initial botched release, you can always fix stuff. See Apple.

Re:Why Development Teams Struggle to Deliver on Time, on Bud... by LargeWu on Tuesday June 05, 2018 @10:41AM (#17238059)
Have you considered maybe you're treating your engineers like children? Why aren't they cognizant of the business realities? If they aren't on the same page as the business side, that's poor leadership on your part. I think everybody can appreciate that in order to keep the lights on sometimes you need to be in crisis mode, but if the company perpetually operates in crisis mode, then maybe the engineers aren't the problem.

Here's the reality, and maybe you've forgotten: The engineers are the ones who are going to get dumped on, and you and the VP's are the ones who are going to reap the benefits. Never forget that.

Re:Why Development Teams Struggle to Deliver on Time, on Bud... by DanHulton on Tuesday June 05, 2018 @11:00AM (#17238272)
Ideally, yes, a deadline is set for a specific business reason. But I cannot count the number of times a deadline has been set for a project that is just utterly arbitrary, proven by the project releasing successfully on the deadline and then being immediately abandoned and forgotten about. Feature launches without marketing, website redesigns without fanfare, architecture refactoring that sits on the shelf for a month before actually being deployed.

Not that I'm claiming that all executive decisions are clueless, most people are just trying to do a good job with limited information, and mistakes happen. But you run into enough executives without respect that runs in the other direction, and you start to question all deadlines.

(Which isn't necessarily a bad thing. In a healthy environment, questioning the feasibility of a deadline can lead to appropriate descoping of overreaching features, reduction of risk, etc. But the situations that lead to this kind of suspicion are rarely healthy to begin with.)

Re:Why Development Teams Struggle to Deliver on Time, on Bud... by redler on Tuesday June 05, 2018 @10:36PM (#17243957)
“Our developers need deadlines. If I don’t give them a deadline, the work will never get done.” — Many, Many Managers
Re:Why Development Teams Struggle to Deliver on Time, on Bud... by zer00eyz on Tuesday June 05, 2018 @11:58AM (#17238912)
> When the VP sets a deadline - it’s driven by the survival of the company

This is everything that is wrong with software.

What is software really? It is translation of business process and need into code - I spent the first 10 years of my work life mastering code, I will spend the rest of it understanding whatever business I'm working for.

Assuming you have some experienced engineers (not mangers) on your staff then having the vp set a date (and defacto choose the project) is absolutely backwards.

Bring the problem to your engineers (money) and don't look for a moon shot look for 10 smaller projects that get you 1/2 way to the goal in 1/10th the time. Don't think of it as a "hack day" think of it as a hack week or hack month.

If you have a large project and it is to "save the company" (or push it forward) and your treating it like a must do rather than a foundation (and taking care) your creating debt and starting a cycle that you will never pay off.

Re:Why Development Teams Struggle to Deliver on Time, on Bud... by jhall1468 on Tuesday June 05, 2018 @10:41AM (#17238054)
That's a fine argument for a bootstrapped startup with one product, but isn't meaningful when talking about the tech titans that suffer from the exact same problems.

This is the same type of argument that makes short-term profit take precedence over long-term success. Why in the world are we getting a deadline of 4 months? You, as an executive, had to know burn rate was blowing through cash a lot earlier than that.

Engineers hate releasing poor quality products because we know we'll eventually have to fix them and we will likely be given almost no leeway time-wise to fix the actual debt, as time will always favor ugly hacks that "work" over well-written code that prevents the problem in the future.

Re:Why Development Teams Struggle to Deliver on Time, on Bud... by ThrowawayR2 on Tuesday June 05, 2018 @11:57AM (#17238902)
> the tech titans that suffer from the exact same problems

The tech titans aren't monoliths with a collective hive-mind. Each business unit and team is responsible for projecting revenue targets and then hitting them, same as any other kind of business. And, yes, if the business unit managers fail to hit their financial goals too many times, their project will be cut and the team reassigned or laid off, same as a startup running out of financial runway.

Re:Why Development Teams Struggle to Deliver on Time, on Bud... by dredmorbius on Tuesday June 05, 2018 @10:57AM (#17238243)
Maybe they're all teetering on the edge of viability?
Re:Why Development Teams Struggle to Deliver on Time, on Bud... by luis_espinoza on Tuesday June 05, 2018 @10:36AM (#17237985)
I agree with you in part. However, engineers are more than capable to also take into account for planning the survival of the company if management provides the proper data to them. I think this is one of the problems, management usually hides information from the people they manage and without that data certainly plans can go in the wrong direction.
Re:Why Development Teams Struggle to Deliver on Time, on Bud... by house9-2 on Tuesday June 05, 2018 @02:18PM (#17240511)
> When the VP sets a deadline, it’s driven by the survival of the company

Sometimes...

Other times its driven by the fact they are personally going to get a fat bonus

Re:Why Development Teams Struggle to Deliver on Time, on Bud... by hliyan on Tuesday June 05, 2018 @10:23AM (#17237849)
Director who still writes code here. You're correct, but there is a vicious cycle here: when a project is delivered late, some managers respond (incorrectly) by artificially tightening the next deadline, hoping that when the team invariably slip, it'll at least get delivered by the original deadline. This never happens. The team does hasty planning and dives into implementation as soon as possible (to save time) and ends up delivering even later.

What worked for us is what's basically mentioned in the article: taking a more structured, slightly painstaking approach to estimation. It's more tedious than gut feel story point estimation, but a lot less painful towards the end of the project.

Re:Why Development Teams Struggle to Deliver on Time, on Bud... by gonzo41 on Tuesday June 05, 2018 @10:25AM (#17237875)
Software is up there as the most complex thing ever created. People have been putting up houses for thousands of years, And modern big bridges for hundreds. Big software is ~40-60 years old. Its hard to have rules of thumb and best practice that will deliver the 'on time outcome'. Give it another 100 years.

Most dev work right now is still just attempting to deliver correct software. let alone on time or on budget.

Re:Why Development Teams Struggle to Deliver on Time, on Bud... by markkanof on Tuesday June 05, 2018 @02:53PM (#17240851)
In addition, as requirements get more complex and users expect more polished products, we end up relying on more and more open source/reusable infrastructure and libraries. Those tools allow us to not reinvent the wheel and accomplish more in the same amount of time, but they also add to the complexity of any software system.

House building has become somewhat more complicated over the years as building codes are made stricter and new techniques are developed, but for the most part it is just a switch to a new way of doing things vs. in the software world where we will continue to pile on more and more levels of abstraction, but can't reasonably expect to have at least some kind of understanding of the underlying layers.

Re:Why Development Teams Struggle to Deliver on Time, on Bud... by dredmorbius on Tuesday June 05, 2018 @10:58AM (#17238253)
The Linux kernel is several times more complex than the Space shuttle. Order of magnitude as I recall.
Re:Why Development Teams Struggle to Deliver on Time, on Bud... by CamTin on Tuesday June 05, 2018 @04:11PM (#17241556)
Much harder to step the shuttle through a debugger though.
Re:Why Development Teams Struggle to Deliver on Time, on Bud... by dredmorbius on Wednesday June 06, 2018 @10:15AM (#17247300)
Also, generally, much less need. The Shuttle is a physical system, and can be directly observed and components either individually (unit) or collectively (integration) tested.

"Debuggers" are the monitoring, telemetry, sensing, and forensics equipment, data, and processes applied to each test, launch, and component.

We have debuggers because code is otherwise a black box. Debuggers are a visualisation technology.

Re:Why Development Teams Struggle to Deliver on Time, on Bud... by rurban on Thursday June 07, 2018 @06:58AM (#17254755)
Nonsense. Software is not more complex as other engineering jobs. It is much less complex than e.g. architecture, which is a generalization over multiple technical jobs. In general you cannot trust a young architect with less than 20 years of experience. You can appreciate the end quality because of the ambition, but with the time and budget you need to be careful. But other typical engineering jobs also, which are not as simple and logical as software.

I worked professionally in a couple of high-tech engineering jobs, as architect, surveyor, city planner, civil engineering, construction, stage design, movies, automotive engineering (F1), games and at internet service providers. (but no airplanes, nuclear power plants or rockets, sorry. Lots of hospitals still.) The SW development jobs compared to that were always the easiest, most creative, most rewarding, and best paid also.

The problem with SW planning is pure lack of experience and poor engineering practices. A good SW engineer can hold his estimates, just as an experienced architect can hold his date and costs. In practice it rarely happens, I only know a couple of successful projects with smaller companies, but the good and big companies mostly deliver on time and budget.

As you mentioned houses and bridges. With houses you don't change engineering paradigms every 5 years as it might fancy you. You never try out new materials which are not tested over 10 years at least. These things need to stay up for 50 years at least. With bridges you cannot really plan them properly. Well, you can. But a typical bridge engineer multiplies the safety factor with 10, leading up to 10x more material as needed, as you can hardly estimate the dynamic peaks and resonance frequencies. With highly dynamic forces such as e.g. in a F1 gearbox, a huge spring with max 4000 Nm forces on your shafts. There you cannot apply any 10x rule. This thing needs to be perfect. You plan to avoid the peaks at all, avoiding the dangerous frequencies. Comparable to wind forces on a bridge. But in practice you look at best practices. You build dynamic physical models and simulations. And measure. And apply safety margins. E.g. with the big steel bridge next to my home, the famous "Blaues Wunder"in Dresden, the general public and politicians never trusted their engineers with this fancy new steel design, so it had to made 10x bigger and heavier, and even on opening day they invited the whole town to test it live, with lots of heavy trucks, a tramway and pedestrians walking over the bridge and jumping on it all at once. It stills stands today, but could have been made much simpler and elegant by todays knowledge.

Now compare that to modern SW engineering. You got a fancy new framework and language, looking for engineers with at least 10 years experience in that, with the framework existing for 2 years. You got massively overhyped tools which rarely deliver on their hype, complete lack of security, memory safety, type safety or concurrency safety, completely outdated API's like blocking IO or POSIX or threads, and undesigned monsters like C or C++. Good luck with that. That's of course a death march.

Still with proper tools and proper management it's much easier than everything else. In automotive everything was properly planned, with traditional waterfall. Everything worked as planned. Even if it was hugely complex, much more complex than a simple OS. In my own SW I never miss my milestones or overdo my budget. In architecture we always did. With huge costs up into billions. Only once we went under costs by 200 millions with the biggest building construction project in Austria. This was a miracle then.

Re:Why Development Teams Struggle to Deliver on Time, on Bud... by 3pt14159 on Tuesday June 05, 2018 @10:17AM (#17237786)
I'm a software developer, and I know this is a bit heretical to say, but I think sometimes we need to set goals that are overly ambitious so that we can work hard to meet them, even if we end up being late. I've been a contractor to a couple companies that didn't have real goals and there is this kinda easy going attitude that results in many things taking 4x as long as they could and often a lot more office politics as people spend more time jockeying for position than cranking out features or squashing bugs.
Re:Why Development Teams Struggle to Deliver on Time, on Bud... by sh87 on Tuesday June 05, 2018 @10:28AM (#17237913)
My experience, a ‘my goal’ gets quickly interpreted as ‘you committed to this’. ‘I can try’ projected as ‘You said you will get this done’. I’m all in for trying my level best and I have seen the rare slip ups penalized, criticized and highlighted to such a degree that it is just irrational for any dev to ‘try’ or be ‘ambitious’.
Re:Why Development Teams Struggle to Deliver on Time, on Bud... by eckza on Tuesday June 05, 2018 @10:21AM (#17237822)
I disagree.

We need to set realistic goals so that we can work hard to meet them. The mindset you are describing is part of the reasons that we have these problems in the first place.

Re:Why Development Teams Struggle to Deliver on Time, on Bud... by 3pt14159 on Tuesday June 05, 2018 @05:16PM (#17242151)
I'm open to having my mind changed, but I've rarely been on projects that ended on time that ended as quickly as they could have.
Re:Why Development Teams Struggle to Deliver on Time, on Bud... by equalarrow on Tuesday June 05, 2018 @10:21AM (#17237824)
Even with technical higher-ups, you're not guaranteed a fair fight.

I've worked with Engineering VP's/CTO's that are pressured by deadlines and promise unrealistic features. The key element needed in this is a 'leader' that can push back and manage expectations.