News for hackers. Stuff that matters.
Re:A personal story about 10× development by quadcore on Friday July 19, 2019 @06:30AM (#20477438)
Let me tell you about one of my personal stories.

The project I got transferred to was the thing of nightmares.

Not deterred, I hacked into it a shitty solution and shipped it very fast. I shipped it so fast that suddenly I had everyone's attention. And I shipped another thing super fast and got more attention. One day, I said "this needs to go", and everybody listened, architects and directors alike. 6 months later, most of the code was replaced by my code or something originating from it. Every projects and features delivered on time with great appreciation of the clients.

You have to make it like software development is not a problem at all in the eye of your client and never never go behind the line where this is not true. The day software development is a problem, you lose. You must deliver software like you're delivering a book from amazon, no matter what. Because then, you got credit to make things better, which creates a positive loop. In that particular instance, I used some rushed victories to get more credits to make things clean later on. The guys who say they can make things clean but never ship and never win any battle against a deadline are just funny anyway.

To be honest, I took some fights in my career. I was fighting some dudes in every project. But don't fool yourself: if you're not really capable of making things better, then fighting is useless, just improve. You win the fights because the managers are on your side and you get them on your side by making software development not a problem at all.

edited

Re:A personal story about 10× development by pdpi on Friday July 19, 2019 @07:00AM (#20477560)
> You must deliver software like you're delivering a book from amazon, no matter what.

This particular story provides an important refinement to this point. Success isn't always possible. Delivering "no matter what" is part of what engenders trust, but an even more important component is being ahead of the ball.

If your manager comes to you saying "you're not matching expectations", whatever explanation you might have will be read as an excuse. If you proactively tell your manager "hey, this framework seems hellish, we might face some problems", you're leading the discussion in how to recover from a bad situation — You redefine "success" early enough in the game that you can actually deliver it. Knowing how to have this conversation (and the self-reflection necessary to understand you need to have it) is one of the most important parts of a "true" 10x engineer.

Re:A personal story about 10× development by quadcore on Friday July 19, 2019 @08:24AM (#20477995)
"hey, this framework seems hellish, we might face some problems"

The problem if you think about it is that you will tell him just that every time you see him. In other words, how do you show that you know how to make a good framework other than by beating deadlines? Beat deadlines, again and again, and then you will be granted the right the make a framework yourself. One that. among other things, actually beat deadlines.

Re:A personal story about 10× development by pdpi on Friday July 19, 2019 @09:28AM (#20478436)
I think you missed my point. "Beating the deadline" means that you deliver something that meets or exceeds expectations within the deadline. You achieve this by pulling two levers: By adjusting expectations and by getting things done.

Crucially, each lever only goes so far — you (usually) can't adjust expectations to the point where you're expected to do zero work, and you can't deliver on impossibly demanding expectations solely by working extra hard.

While you're absolutely right that the "keep shipping" lever is very important, the article provides an example of where you need to pull the other lever early.

Re:A personal story about 10× development by granos on Friday July 19, 2019 @12:09PM (#20479805)
I'm currently living this. About a year ago I inherited a large codebase that has been allowed to accumulate tech debt for the past 5 years. This was all done in the name of adding new features and keeping the business competitive. But it's time to pay down the debt.

I've had MANY frank conversations with both product and engineering leadership about the current state of the world. The VP of engineering is onboard and understands the pain of what we're going through. Product is a bit harder to convince, but just as important -- probably more important. They understand that my team is having to spend 20%+ of our time just bringing the code into this decade, because I set that expectation early and reinforce it often.

I argued AGAINST a from-scratch rewrite because I knew it would never be ok to stop shipping. But I have been able to convince them that slowing down now will let us move faster later.

Re:A personal story about 10× development by mugsie on Friday July 19, 2019 @06:58AM (#20477549)
> Not deterred, I hacked into it a shitty solution and shipped it very fast.

And moved the burden of maintenance to someone else? If so, this is one of the things people are complaining about 10x dev on twitter. You may look good, but the team / dept / company is worse off, and someone else has to clean up.

Re:A personal story about 10× development by jacquesm on Friday July 19, 2019 @07:12AM (#20477621)
Well, that depends. You haven't actually seen the product so the assumption that it sucked and needed cleaning up may be a faulty one. I've seen the 10x phenomenon first hand a couple of times and some of those people really are that much better that their 'quickly hacked out solution' still beats your 'carefully considered product of 12 individuals'. In fact some of these simply work better because they are the work of a single talented individual, no meetings, no distractions, no comms overhead or having to explain stuff. Design by committee is rarely better than design by a good craftsman or woman.
Re:A personal story about 10× development by mugsie on Friday July 19, 2019 @07:24AM (#20477678)
The parent literally said it was a "shitty solution".

I agree design by committee can produce awful results - and I said nothing about a single person doing a design as being an issue.

Re:A personal story about 10× development by koheripbal on Friday July 19, 2019 @12:17PM (#20479893)
People overestimate the duration that their software will be used, so in many cases imperfections aren't as important as a developer might think they are.

My last project I released still had about 20 TODOs in the code. I launched it, it got great reviews, everyone loved it, then I got a new project and they deprioritized the "cleanup" phase. I suspect the edge-cases are just getting handled manually - no one cares and I'm still a hero.

Re:A personal story about 10× development by tempguy9999 on Friday July 19, 2019 @02:25PM (#20481194)
> People overestimate the duration that their software will be used

Please justify that.

I did some software, a not too complex chunk of work for a midlands (UK) retailer in 1999. It dealt with a couple of million pounds of retail orders that year. Not so big but not trivial either. It was still in use in 2015, and quite possibly is today (although the boss told me they re-used it for a rather different purpose by their sales reps).

It was very reliable because I fought to keep it simple, and tested it brutally (eg. the core part took 5 days to write but got 3 weeks testing, founding only 2 errors, but it was 2 errors fewer).

If it was crap it would have been junked so I'll claim that the end quality contributes to its life.

High reliability tends to stick around. I think lex/yacc started in the 70s and is still around today in the form of its spiritual successors flex/bison. Ancient but still grinding along.

' In a 2008 interview, Johnson reflected that "the contribution Yacc made to the spread of Unix and C is what I'm proudest of" ' (https://en.wikipedia.org/wiki/Yacc)

If you ship crap its lifetime is intrinsically much shortened. That's my thesis anyway.

Re:A personal story about 10× development by mugsie on Friday July 19, 2019 @01:03PM (#20480447)
> You may look good, but the team / dept / company is worse off, and someone else has to clean up.

The people/team handling it manually probably care

Re:A personal story about 10× development by eitland on Friday July 19, 2019 @01:44PM (#20480838)
Here’s a problem:

The alternative to shipping something that works good enough, on time often isn’t to ship something perfect on time but to not ship on time or even worse, -at all.

That would be even worse for the people/team supposed to use the product.

Re:A personal story about 10× development by fogetti on Friday July 19, 2019 @07:34AM (#20477722)
So tell us, how is a shitty solution better than a well designed testable solution? Literally every book on project management is about the development cost vs maintenance cost and how the latter beats the former. But yeah, keep dreaming.
Re:A personal story about 10× development by mbesto on Friday July 19, 2019 @11:43AM (#20479553)
> Literally every book on project management

The real world is much sloppier than any book will ever tell you.

> is about the development cost vs maintenance cost

Absolutely true.

> how the latter beats the former

If you're believing that equivocally ((I don't think you personally are btw) then I don't think you're reading the advice the book is giving you correctly.

A shitty technical solution that gets to market quicker often (not always) can make the company more money in the long run. There is no "one right answer" here, it's all about judgement. 100+ tech DD's and counting...I've seen the whole spectrum. I've seen a $40M revenue (38% EBITDA) tech company built using a FileMaker-like tech stack (all WYSIWYG). And yes, I'm serious.

Re:A personal story about 10× development by TheOtherHobbes on Friday July 19, 2019 @07:53AM (#20477840)
The key word here is "solution." If your code is supposed to do a job, and for whatever reason it's not doing that job, then you do not have a solution.

Code that doesn't do the job is worthless, no matter how testable and well-designed it is.

Of course you can debate whether this is a management (scheduling, resource, PM) problem or a developer (competence, architecture, tool choice) problem - most likely some of both.

But whoever is responsible, it's still a non-solution.

Re:A personal story about 10× development by supermatt on Friday July 19, 2019 @07:41AM (#20477767)
Because what a "10x developer" (i would just call them pragmatic, personally) might call a shitty solution is still better than what you may call a well designed testable solution?

Not everything needs 90% test coverage and more comments than code to be good. And not everything with 90% test coverage and more comments than code is any good at all.

Re:A personal story about 10× development by mugsie on Friday July 19, 2019 @08:42AM (#20478121)
Not at all. The quality of the code may be terrible.

BUT - when someone else new comes along to look at it, the 90% code coverage, and comments helps them immensely - they can get up to speed to fix whatever bug has appeared a lot quicker.

Re:A personal story about 10× development by mamon on Friday July 19, 2019 @07:52AM (#20477836)
This is so true, because people that are really good at something usually hold themselves to incredibly high standards (which is one of the main reasons they become master craftsmen in the first place).
Re:A personal story about 10× development by fogetti on Friday July 19, 2019 @11:31AM (#20479446)
Yes. The standard is so high that they can't even find words for it. So they just call it simply shitty.
Re:A personal story about 10× development by fogetti on Friday July 19, 2019 @11:29AM (#20479416)
Pragmatism based on shittyism? Or how shall we imagine this? Is there a motto for this? "We excel in shitty code or something?"
Re:A personal story about 10× development by supermatt on Monday July 22, 2019 @08:08AM (#20497185)
I think you are missing the point. That someone calls their own solution "shitty" doesn't mean that it's shitty by your standards, its shitty by theirs. The reality is that people have different standards. I don't understand the hate you seem to be exuding for productive people.
Re:A personal story about 10× development by falcor84 on Saturday July 20, 2019 @12:31PM (#20486708)
I think it's just another variant of Less is More
Re:A personal story about 10× development by geezerjay on Saturday July 20, 2019 @04:32AM (#20484743)
> And moved the burden of maintenance to someone else? If so, this is one of the things people are complaining about 10x dev on twitter.

Sometimes the burden of maintenance is the price you have to pay go get an operational/production system early on and enables you to let other requirements emerge earlier.

You might focus on the "burden of maintenance", and also assume that you're saving time by taking the long route to production, but letting requirements emerge early on in the project is also a significant time saver as it enables the project to avoid committing the mistake of investing time developing a goldplated solution that will have to be thrown out.

You need to accept the fact that the "burden of maintenance" is always there and it will always be there, whether you invest years rolling your goldplated solution or just dash to production with a quick and dirty solution. You don't get rid of that burden by aiming for an academically pristine implementation that takes ages to deliver. Requirements do change, and do so continuously. Heck, designing stuff for a scale that will never be required is also a major problem. So, why would anyone be concerned with having to spend 120% of the time developing a solution if that path enables you to get up and running in 20% of the time?

Re:A personal story about 10× development by tasuki on Friday July 19, 2019 @08:45AM (#20478145)
> And moved the burden of maintenance to someone else?

If you read on:

> > One day, I said "this needs to go", and everybody listened, architects and directors alike.

The OP hacked a shitty solution to make people listen to him. Once people started listening to him, he found it easier to persuade them to let him improve things.

Re:A personal story about 10× development by gvb on Friday July 19, 2019 @08:05AM (#20477906)
Keep reading... One day, I said "this needs to go", and everybody listened, architects and directors alike. By shipping something that worked he bought himself time and credibility which he then used to replace the shitty solution with good code.
Re:A personal story about 10× development by mugsie on Friday July 19, 2019 @08:40AM (#20478103)
No, they did a thing that got him ahead - and they hoped enough to fix the thing he did before.

Now, if they hadn't gotten the credibility (due to the short term fix for thing they wrote broke sooner than expected), or they gained a lot more credibility and moved in the company, or out of it, the broken thing would still be there, and someone would have inherited it, and had to refactor / relearn / replace it.

One of the points about 10x devs that people are pushing back on is this - do the thing to a minimum spec, drop it on the floor, and get kudos for it, while the rest of the devs run around picking up the pieces.

Re:A personal story about 10× development by yosefk on Friday July 19, 2019 @08:21AM (#20477975)
100% true. You don't get to replace a pile of shit or even to call it a pile of shit before you demonstrate that you can navigate the pile of shit and teach it new tricks, otherwise you have no credibility. This of course means, at least theoretically, that a sufficiently big pile of shit never gets replaced (since nobody can (or wants to) be sufficiently productive with it to gain the necessary credibility) and might sink the company which made it. But there's no other way. There are always 10 people telling that the code is shit and the only reliable way to tell that some of them are trustworthy is by observing their ability to get things done in the existing code base.
Re:A personal story about 10× development by dnh44 on Saturday July 20, 2019 @03:21AM (#20484585)
I think you make a great point but the argument depends on the unstated assumption that master shit navigator == master architect, and I'm not sure how often that's true. They are different skills (maybe?) and while I'm sure there are loads of people with both skills I don't think it's universal.

I personally know one engineer that after a decade of being the 10x rockstar shit navigator finally got the opportunity to create a codebase from scratch. They'd been dreaming of doing such a thing for years and had the design all planned out. It was to be the shiny new product for the company.

One day the people upstairs finally gave their blessing. The ninja worked alone, making all the decisions, with full support of upper management. The result was a great big steaming pile of shit that nearly sunk the company. After a short period of mental health problems the ninja was promoted to shogun and the company hired a new shit navigator.

In football (soccer) it's easy to observe that good players can be good in totally different ways and/or situations. And it's also easy to observe players who were once thought of as good or bad can totally change either way when they change teams. It's a shame engineering performance can't be as easily observed.

Re:A personal story about 10× development by karmakaze on Friday July 19, 2019 @09:38AM (#20478510)
The story has survivorship bias. I have similar stories that are exactly the opposite. Started on a prohecr, refused to ship crap, shipped the right thing late to the delight of customers and supporting staff.

The other main point is that while I'm doing this thing that gained cred and leeway, at the time I'm just trying to do the right thing in the eyes of people who have to deal with it first hand over the long term including maintainers of the software. At no point dud I think if I do this and look good I'll have the points to fix my mess later or any sort of gaming strategy at all.

Re:A personal story about 10× development by dllthomas on Friday July 19, 2019 @11:54AM (#20479638)
It can also go the other way in that your shipping in the face of adversity can be taken as evidence that the adversity isn't actually that bad. And... that's kinda legitimate, although weighting it too heavily is bad.
Re:A personal story about 10× development by wbronitsky on Friday July 19, 2019 @11:36AM (#20479497)
I find comments like these, which boil down to “stop complaining and hack a solution already” to reinforce the problem identified by TFA, which is that context matters. I feel like OP has elided that fact; the context is that a hacked up solution was acceptable here. That is not always the case, and sidesteps the point that context is king
Re:A personal story about 10× development by shoshin23 on Friday July 19, 2019 @06:43AM (#20477488)
I agree with this. Showing results is the easiest way to influence people, especially when it comes to software devs and management.

As a manager, I'm more inclined to trust someone who's delivered results even in challenging codebases. It's human.

Re:A personal story about 10× development by indogooner on Friday July 19, 2019 @06:48AM (#20477502)

  "trust someone who's delivered results even in challenging codebases" 
Yes but comparing a guy's productivity when he is demonstrating how difficult the environment is to make progress is poor management. He has already shown the results in previous project.
Re:A personal story about 10× development by UK-AL on Friday July 19, 2019 @06:43AM (#20477487)
I really don't get your point. How does this help this guy's situation?

He couldn't get things released quickly because he couldn't even get the program compilied without serious effort involved.

Re:A personal story about 10× development by huffmsa on Friday July 19, 2019 @07:52AM (#20477838)
If there was minimal code and a lot of the dependencies were unmodified forks of common things, the GP here is likely of the opinion that he should have started ripping the wiring out and replacing it with something that works.
Re:A personal story about 10× development by UK-AL on Friday July 19, 2019 @09:42AM (#20478546)
That generally takes a while. Not great if you want quick results.
Re:A personal story about 10× development by m463 on Friday July 19, 2019 @11:24PM (#20484009)
"There is hardly ever lock contention, so I just ignored locks in my coding. It really sped up my deliveries and I got a good reputation for moving quickly. Sure there were some corner cases to clean up later, but by then I had moved onto another project where I moved fast and broke things!" - fictitious person we've all known
Re:A personal story about 10× development by indogooner on Friday July 19, 2019 @06:49AM (#20477509)
Both you and OP are right. May be the codebase you went in could be salvaged. Not true for OP where he has to prepare for a big launch.
Re:A personal story about 10× development by timwaagh on Saturday July 20, 2019 @04:36AM (#20484748)
Let me congratulate you. I'd be very yealous of such an achievement. You probably had things on your side, like being able to ship/deploy when you wanted and cooperative colleagues letting it pass review quickly. As for the 'just improve' part, few people can. Even experienced people like myself who are not at all bad programmers. Some things just take talent.
Re:A personal story about 10× development by bongobongo on Friday July 19, 2019 @12:01PM (#20479717)
Sounds like you’ve advanced in your career by undermining your teammates and sacrificing professionalism in order to win praise from people who are willing to put systems and users at risk without understanding the co sequences.

I understand your point, which basically boils down to the axiom of managing expectations. But sacrificing professionalism is not something that should be accepted as normal, let alone celebrated as clever. It’s the oldest trick in the book.

Re:A personal story about 10× development by patientplatypus on Friday July 19, 2019 @07:44AM (#20477798)
You shipped hacky software very fast, and you think this is a good thing? Sounds like you got ahead personally at the expense of anyone who had to use what you wrote :/
Re:A personal story about 10× development by pif on Friday July 19, 2019 @07:59AM (#20477874)
> You must deliver software like you're delivering a book from amazon, no matter what.

If you are taking responsibility to maintain it for 15 years, feel free to go on. Otherwise, please step down and let professionals do their work.

Re:A personal story about 10× development by pif on Friday July 19, 2019 @10:45AM (#20479061)
I suppose downvotes are from so-called project managers whothinks that valuable things are created by checking boxes in a spreadsheet.
Re:A personal story about 10× development by tropshop on Friday July 19, 2019 @05:29PM (#20482609)
More likely from developers who hate to identify as developers because developers like to focus on development problems without empathy for the end result.