428 comments

[ 2.8 ms ] story [ 290 ms ] thread
I was cheering a little inside while reading this and agreeing mightily until I realized it was an ad. Boo.
True, but I think we can separate the idea from the person/company.

The problem statement is very well written. The Director of Engineering rotating because they can’t deliver, and the battle between Product and Engineering.

Conclusion is rushed, but it boils down to what agile advocates at the core: product manager and QA need to be in the room along with engineering.

It is until they hear daily about the challenges, first hand, and they see the struggle that it makes sense. Does not matter how many reports the PM does, first have seeing why technical debt is making things slow is invaluable.

Only addition I would add is: there is a reason why sprint waterfalls exist. You can’t iterate forever, and someone needs to play the role of the mature person that knows when something is good enough and needs to be shipped. I think Agile as a framework is at its limits. We need something that lets us run the engineering but at the same time becomes more predictable to business.

I suppose I'm tainted because I've seen one too many methodology consultants. "What you're doing now is bad...but this new way will solve all your problems.." Enter "Value Scrum" your new savior.

After almost 3 decades in software, I've come to perceive a few things about the industry and the people in it, especially the new entrants:

1) All problems begin with "how can we solve this with new software/feature/etc?" because after all, we're software people and we make software so clearly software is the answer.

2) Society believes #1. They expect that all problems are solved with software. Not only does society believe this, VCs believe this also. There is incentive to behave as #1 in the hopes that it leads to $$$.

3) Anyone not believing #1 is a detractor, or worse, a Luddite. Technology as solution is the prevailing axiom. It is Maslow's hammer. All non-believers must be purged or cancelled.

So when I read what I'll admit is an enticing article that demonstrates experience and analytical thinking by the author I'm intrigued and mostly supportive. Just like software frameworks (yes, you Javascript community) the answer to problems is always a new present solution which one day will be a future problem whether it be tech or tech inspired methodology. Tech first problem solving usually always leads here.

I was reminded of this book when reading the article. Many patterns of org behavior are well described here: https://www.amazon.com/Organizational-Patterns-Agile-Softwar...

I was also struck by an adaption of a statement I read once about XML. The adaptation follows: "Agile is like violence, if it isn't working you're not using enough of it."

So what does this mean, abandon all tech? No. It means, apply critical thinking. Let dissent be ok. Do the things the article suggests. You don't need training, or a seminar or a consultant. And if the leadership wants to do something you can't fully engage in, find something else to do. Don't waste your life.

Joke's on them, I always come straight to the comments.
> Don't just build Something™, build an industry leading product that customers want and love!

The point of writing software is to get paid. If the process leads to something actually useful, good on you. If not, you still got paid. It was just a drill, life continues.

(comment deleted)
That advice is OKish if you only ever want to be a mediocre employee clocking in to get your wages.

I think you need to be far more proactive in training your mind if you want to become a founder [edit: of a successful business], or move into more responsible roles, or even just to get satisfaction from shipping great software.

>if you want to become a founder

Why do you need to work up to being a founder? Any bozo can start something new especially given that the vast majority of start ups either never go anywhere or flame out somewhere in the first year or two. Even I've "become a founder" a couple of times.

Right, my goal is not to become a founder, my goal is to live a long time and retire.

I used to be pretty close with the founder of my company and his life doesn't look like any fun.

a lot of people see being "a founder" as a goal because it gives you complete agency in your work.

you could in theory define it as having a sole-proprietorship type lifestyle business.

it's poignant in this thread because many people have worked on "meaningless" projects within a company for years on end - and you don't have a choice.

One of the major benefits to having a less invested attitude is that you are not as annoyed or disappointed when things don't work out. In the end, most of us do not have a stake in the product we are building and the success of the product has only minor effect on the developer, by understanding it's a job and not life you will be happier overall if the project does not succeed.
That is highly subjective. Money is a motivation but some people seeks more from their jobs. I wouldn't work on a job if it is not really giving me a sense of accomplishment either.
I currently work on a project that has struggled to make actual sense for a few years now. Sure I like getting paid, but there's a growing void in my soul.
> Money is a motivation but some people seeks more from their jobs.

I find this has a lower bound in terms of salary, and people find that lower bound is much higher than they like to admit.

People here cannot bear the thought that software development could be, gasp, just a job. But there’s nothing wrong with shoveling the shit and getting paid.
Jobs where this kind of attitude prevails suck to work at. Frustration waits around every corner. And the more pointless projects and dysfunction permeates a company the more chance the other shoe will come crashing down any moment and the company will fall apart and people will lose their jobs.
Some people are busy raising a family and just need a paycheck.

It's not me either but I get it.

I wish I could do it, life would have been much easier.
Highly anecdotal, but 100% of the software devs I know in this position (living paycheck to paycheck) are living above their means, in a city. If they moved to the countryside (in another country if need be), they would have to work 2 months a year with the same pay with a larger house, garden, savings etc. After covid it is actually easy to do, but before as well if you are not completely horrible at your job. However, they are never going to do it; they need to live where they live for some reason.

In that case; I do not get it. Moving is easy, at least in the EU. They could own their house (there are many houses for sale in villages and country across the EU for 50-100k with garden etc so even in a tight city wage you can immediately own and rapidly pay off a house) and suddenly save money. But then again, I am not attached to places and especially not cities (finally a lucky bet with covid) so maybe I just do not get it.

I feel like your version of reality is different to the one most people live in.

Highly skilled people live in big expensive cities because that's where the best jobs and most professional and social opportunities are.

Once you move to the countryside your jobs and networking opportunities plummet and you'll have to endure a soul crushing commute unless you work remotely or your house and your job are close to train stations on the same route, not to mention, at least in Austria, shit internet.

People want to live with or interact with like minded people and it's much easier to find what your looking for in a big city. The countryside is lonelier and more conservative.

Sure, you can have a lot of space and a garden, but not everyone is into that and most would prefer to have the amenities of a city: sports gyms, cinemas, cafes, bars, meetups, good doctors without having to drive everywhere or wait for a train.

Sure, my point is, then you have to suck up the fact that you live from paycheck to paycheck (which was what I was responding to). You don't need to but you choose to, that's fine.

And nah, never had this much work, my network is only growing (and I have not lived in a city for 20 years), I don't need to commute because remote work is great (for the past 25 years). I meet plenty of like minded people on the internet; for me that works. Not saying it's for anyone, but it works for me (and my family and friends by the way).

But yeah, everyone should do what they want and like; just saying there are alternatives if you don't want to live from paycheck to paycheck and live in a city.

Hah I live above my means and need a high salary _because_ I moved out into the countryside. Maybe it's different where you are, but living in the country is expensive. It won't look like it from the outside, but ...

My home insurance, my heating, my Internet, my electricity, all cost more than if I was urban. I own and maintain my own water supply and sewer system (septic). I have power lines coming up from the road, over a hedge of cedars that cost me $2000 to trim every few years or they'll impede the power lines. On my property, so mine to deal with.

I had to buy a little diesel tractor ($15,000), I had to buy a zero turn mower ($5000) because mowing 2.5acres (out of the 6 acres I have) would take forever otherwise. We need two cars because of where we are.

And property taxes are super high for me. They'd be cheaper if this was an active farm business making over $7000 CAD a year, but it's not. Because how could I do that while also working a full time job?

And yeah, the commute. Not fun. No gas costs really because I drive electric and plug in at work (and home), but still.

But I have chickens and an orchard and a woodworking shop, and make wine from my own vineyard, and have room in the garage for a Saab 900 SPG that I will restore...someday... and my kids have lots of yard to look out at while they sit inside instead and watch videos of people playing video games ...

I guess we live a similar life but in a different country (Canada vs Portugal?) which probably accounts for the difference. All those things you say are true but they just don't cost anything here and, besides that, it's mostly alway warm so those costs we don't have. I don't commute as I have forever worked from home (with rising salary, also forever).

We have chickens, many (fruit)trees, make beer, cider and wine. Outside gym. Pizza oven. It's great.

yeah, it's partially because i still need to be able to commute to work, so I have to be within the greater toronto/hamilton region, which is really expensive.
Nice! I been there many times. One of the things I would've told myself travelling back is to move to Canada in some mountain village. Too late now, but that always drew me there.
Saw a sasquatch yet?
Agreed on that. Also, sometimes it is both. One does enjoy the parts of the job that provide satisfaction because most decent programmers by heart do enjoy fruitful creation. And then sometimes there are shitty pieces of work or dealing with people who are a piece of work. In such times, it actually helps to disassociate a bit from the work and look at the monetary side - until the sky clears. The key point is _sometimes_ and the expectation that the sky _does_ clear.

To be clear, I don't suggest this to those who are in the throes of software engineering passion and their work is part of who they are - sometimes may be too many times for them.

Don't get me wrong, that's me. I have two kids, a wife, and a hobby farm to pay for. But a shitty work environment is still shitty, and it's not like there aren't lots of jobs to choose from in our industry...
It's really wild how different people's reasons can be for doing the same thing.

I think a better future world is still possible and needs to be built by passionate people. I'm in software to try to do my small part in getting there.

I probably won't succeed but that's why it's a BHAG. I also don't ever want kids, a spouse, and am perfectly happy riding the bus or a bike so yeah, my annual income needs are usually met somewhere around February and lounging around gets old eventually.

Your system sometimes works better ... I really can't do anything unless I'm passionate about it. I can sit in a chair from 6am-11pm and will get nothing done for weeks if I don't believe in it. It's stupid and I need to get over it.

I kinda wish someone waving some cash in front of my face was enough to get me to do something. That'd be much easier because I could be the one waving it.

This is terrible advice and this type of thinking is a common indicator of an employee who is not motivated. The goal is to not just build but build products customers want.
I don't think it is. In my experience this attitude produces poor work and is a drain on the rest of the team.
My experience is that realistic people who are solution oriented are valuable. Those tantric attitude people are unemployable.
That's like your opinion. I write software because it's fun. Getting paid is icing on the cake.
Except when management finally wises up and realizes the product has no future... neither do you.

Much better to look around and find the product/project that is actually going to spawn revenue for the company and get on that team. When layoffs come, you've a much better chance of weathering the storm.*

* No guarantee that management won't do something stupid and lay off the golden egg under some stubborn belief the money sink will someday take off.

I agree with you, but I would add that on most software projects it's possible to find a way to derive satisfaction from the work.

Solving problems and writing elegant code is good, whether it's running the next Amazon or streaming intrusive ads to a Smart Toothbrush or whatever. (I'd draw a line at weapons systems, gambling, automated extortion etc - but YMMV.)

Economic value rarely correlates to more 'human' measures of value - which is depressing but nevertheless useful to me as someone whose skills are societally useless but moderately lucrative. I suspect many of us here are in the same boat.

“Agile teams that truly iterate with the customer can often avoid these problems because the customer is there the whole way through and the team continuously pivots to close gaps discovered by the customer throughout the project, thereby building something the customer actually needs and wants.”

I‘m 2 years into my first role as a product owner (made the switch from design) and working at a fortune 100. The thing that’s struck me most since starting this role is that as while the company has invested more to our transition to agile teams (hiring external agile transformation companies, everyone goes through scrum training etc) we seem to have distanced ourselves even further from the customer.

I report to a product manager, who I think in turn has had zero hours interacting directly with our customers or our users. Our roadmap seems completely driven based on whatever features seem to be flavor of the month (or quarter since we do roadmap planning quarterly) and it’s been a struggle to even try and get buy in to having our customers represented in some way by proxy (e.g. through personas, or setting product metrics that attempt to measure customer value). Features that we do release have no expectations around what is considered successful usage (usage will be measured, but without context, so if 5% of customers use a feature there’s no interpretation if this is really low, or really high).

The puzzling thing is that when I talk to my manager (or managers manager) about this disconnect, they seem to agree in principle, and that we should be doing these things but no one ever does.

I’ve been told that someone in leadership described me as being too “black and white” in this area, but I consider myself both pragmatic and flexible to alternative ideas.

Because I’m still new to this role, I wonder if I’m being naive or idealistic around how we approach our feature development, or if this is just how most companies operate.

Customers can be a nightmare simply because they don't want to be closely involved and on their end, they usually are not engineers so the requirements can easily not make sense.

I don't blame people for avoiding such tasks, especially in a Fortune 100. The bigger the company, the more diffuse responsibility and the harder it is to steer the ship anyway.

Another issue I found while writing software that customer service agents used was we did not get feedback from CS agents without being deliberate, only from the managers of the users (CS agents). The managers were interested in other features like, time tracking, conversion/sales reports, while CS agents were interested (when we finally talked to them) about things that would improve their sales (ex: show available manufacturer rebates for skus to help make a sale)
It's worse when they /do/ want to be closely involved, but then also thinks that being closely involved means dictating functionality to a T.

Using software does not translate remotely well into /designing/ software. Too many people want to play small-time user interface designer while realistically having no design knowledge beyond "I've used software before, and I have IDEAS about how to do things better."

So much effort is wasted on implementing things people think they need, having recognized a problem and conceived one idea that might solve it if only someone could implement their vision.

I sometimes envision a world where (layperson) patients show up at a hospital with a medical condition, describe a novel surgical treatment to the physicians, and then the physicians follow their instructions exactly because, hey, why not? It might work! There definitely won't be consequences if it doesn't!

This is often because people don't understand that the real deliverable is knowledge gained throughout the process and the software is actually an artefact of this knowledge.
I worked at a big tech company many years ago and it's precisely this disconnect that I will never work for a big successful company again. Successful companies tend to have a lot of "buffer" in terms of resources so they feel no urgency to ensure that resources and time are allocated to something meaningful. The objectives of middle managers are often not aligned with the companies. I've been on projects that were delivered on time and under budget only to be canned just before shipping because after two years the market has shifted. No one in those two years felt the need to change anything or make the hard decisions. Rather it was easier to just act like everything is fine until the last possible moment after wasting 2 years of worth of engineering resources with 50 engineers. The problem isn't you.
This problem isn’t unique to big tech. It’s much easier to tell each other you are customer driven than to actually pick up the phone.

I’m in b2b SaaS, and the best approach I’ve found to combat this is to get involved in sales meetings. Salespeople look at you funny if you ask to come along, but if you convince them you aren’t weird it usually works. And you tend to make the meeting more successful, as well as getting actual useful insights into what prospects actually want.

While this works on the surface; many times you'll find what sells is often features your competitors hit you on, but not what will actually sustain customers.

One issue with "buyers" is that they aren't the one using the software.

The problem is the definition of customer and the actual commitment to a customer focus, in my experience.

It's usually hijacked away from the actual customer - that is to say, a person who pays your company for products and/or services - to various internal "customers" who are nothing of the sort.

Spotify are ostensibly the Gods of Agile, but how many Spotify music customers were actually begging for podcasts? How many of them were begging for Spotify to lock podcasters behind their paywall and stop podcasts working with any tool? Was there even a single paying Spotify customer demanding that?

It wasn't the customers, it was the beancounters. Spotify itself doesn't have any "original programming" as the video players have, so the logical move is to capture a market worth something for a lot of listeners. This wasn't about doing something for the listeners, it was about capturing and milking a market.
Spotify feels natural to me to listen to Podcasts. So i am at least one paying customers, who was just waiting for it.

(Never knew, that spotify also has video. Who is using that?)

Spotify is a growth company. They build for future customers.

Podcasters at also business partners, just like songmakers are. The only relevant difference between podcasts and music is that you've been conditioned to expect that music costs money but expect podcasts to be free.

Spotify didn't blackmail Joe Rogen into licensing his podcasts for $100M.

The bigger the project or smaller the company the more customer involvement is demanded. You may not be in that nexus. If the app runs with new features perhaps that is good enough.
What you're missing is that the 'customer' in this case is not the buyer of the product, but rather a proxy for them found in the PM.

Big, heavy, complex products, the kind one imagines F100 companies build, are not suitable for literal agile where a paying customer as willing and able to iterate with the development team.

With that kind of product, you have many customers. When you have many customers, they always have conflicting requirements. You cannot engage in an agile process with more than (say) three of them for the same product. You'll very quickly reach an impasse and lose all of them as customers, and end up with the same product anyway. And you'll open the kimono, so to speak.

Instead the PM has to decide (based on various activities such as seeing what other companies are doing, where the space is headed, and yes, talking to customers) what the product is to look like, and he (or more likely, you the product owner in this case) has to engage with the dev team. You have to be the customer that actually needs and wants something, and that the dev team has to satisfy. This is why PMs have to have significant industry experience. Often, CEO of a small company slots into PM role in larger companies.

Agile as written, with paying customer in mind, is for consulting style engagements. But that doesn't mean it can't be applied well when PM is a stand-in for the customer. It keeps the dev team moving, and brings the 'C' players up to 'B' level. (Unfortunately it also brings the 'A' players down to 'B'.)

> Because I’m still new to this role, I wonder if I’m being naive or idealistic around how we approach our feature development, or if this is just how most companies operate.

yes and yes. You are being naive, and this is how most companies operate. That your boss can't explain it to you just shows that the company doesn't understand the application of agile and are just cargo culting, like most companies, and doing a very poor job of "Agile" because they don't understand it. Most companies implement agile as a way to micromanage devs, not as a way to get a better product, and even then they suck at it.

> I’ve been told that someone in leadership described me as being too “black and white” in this area, but I consider myself both pragmatic and flexible to alternative ideas.

When I've seen responses like that in the past, it's often somebody who just doesn't want to listen to any complaints, for various reasons. I recommend a quieter approach, where you don't tell anyone what you really think about the problems, but just wait for an opportune moment to ask "can we do X for Y?" in a public forum. That way you can't be ignored, you aren't complaining at all, and somebody else can later take credit for implementing your idea, without them having to admit that they were the cause of the problem to begin with.

Off topic, but would you mind sharing how you made the transition from design to product management? I'm considering making the jump myself and am curious about what the experience has been like.
I dogfood my product. I write what I need.

Works for me. Some folks like what I do, as well.

This is exactly my approach. Years ago I wrote a set of tools to help me in my day to day operations. In this way I was able to work very fast. I added more and more features. Then at some point I decided to distribute the tools to the rest of the team. Now, nobody can live without them ... (about 30 individuals)
(comment deleted)
>Because I’m still new to this role, I wonder if I’m being naive or idealistic around how we approach our feature development, or if this is just how most companies operate.

IMHO, the way to answer this question is from a sales perspective. What's the revenue of the product? Is the product doing well financially and are customers renewing? Are the sales teams able to hit their targets?

I work in a customer facing role for a huge company and you've described the situation here well. We've got a ton of products, some of which are doing really well and one of which is tanking. The one that is tanking is something the company is placing a huge bet on.

Whenever I speak with product management for the product that is failing, they have this grand vision looks amazing in slides, but when I work with customers it's obvious that vision isn't grounded in reality. It's like they spoke with a bunch of CIOs and drew up this vision that has nothing to do with how the market actually is. It's almost painful to talk with product management because they just keep going back to this grand vision and anything that goes in their ears gets filtered by this viewpoint.

And it absolutely shows in the dismal sales and high customer churn.

If the product is doing well, maybe you are naive. If the product is failing or barely treading water, you're not the one being naive.

It's important to keep the customer in mind when you're looking at sales figures. It's too easy to be lulled by solid sales and low churn into not actually seeing the customers at all anymore. That's usually the beginning of a downward slide ending in massive churn once a competitor releases what your customers actually wanted from you. This advice is easy to keep as an individual, hard to keep as an organization (unfortunately).
You work in a fortune 100 company, welcome to bureaucracy.

Those middle managers do not give a shit because they are middle management! Big companies have tons of people like who's only motivation is to simply not get fired (this is one point the movie Office Space nailed by the way.)

A fish rots from the head. If your executive leadership is not obsessed with its customers, nobody else will be. And you guys will continue to be rudderless which is demoralizing.

Big, fat, companies get lazy and that sucks for a guy who wants to make a difference. Go work somewhere that encourages logical (black/white) thinking and values engineers who want to turn customers into raging fans.

Or just work each day enough to not get fired, and build your own product on the side.

I've worked 6 years as a PM, last 4 at FANG

Here's some advice, which you are free to take or to leave, (and that's very reasonable since my advice is generic and I can't speak to your exact circumstances)

1) Just start doing it. Don't wait for someone to give you permission to prioritize customer needs. Pick up the phone and call them. Go to a store and watch them shop for your product. Talk to people. When you set OKRs/KPIs, just make them about customer needs. Be the change you want to see. Especially if you have spiritual buy-in from your manager. But your intentions have to be crystal clear on point about wanting what's best for the customer and the business and doing so in a rational way until you earn some social capital. It cannot be interpretable as political or they'll construe it as that and fire you

2) Use bureaucracy jiu-jitsu. Do what you think needs to be done in order to make the customer and the business successful. When someone tries to make you work on their arbitrary BS, give them a form to fill out and tell them it's in your team's triage queue. Make them force you to deprioritize a project which has clear value and then when that happens, make sure you announce loudly to all stakeholders why that project was depriortized and what's going to be implemented instead. If your stakeholders have even 2 braincells, they'll do the pushing back for you - you don't need to do it alone.

Lastly, you can't change an entire culture by yourself. For some places, it's just too late. But if you can find allies who feel the same way you do, you can be the beginning of a large change for your whole org by just being a good example

I'd be cautious about this advice. Many times even though the company in general might be a feature factory [0], there might very well be a human who actually meets customers, or at least tried meeting them and failed for some reason.

So a much better and safer idea might be first to figure if there were any attempts in the past, or is there any ongoing similar initiative right now, find the participants if there was any and then to proceed.

By the way if all the PMs at FAANG are like you, that might be a terrible place to work at.

[0] https://cutle.fish/blog/12-signs-youre-working-in-a-feature-...

> By the way if all the PMs at FAANG are like you ...

This comment doesn't seem necessary!

And lo and behold, still it is there
Seems like great advice.
Great, practical advice for companies of that size. We can debate about whether it's unfortunate that it's necessary (I'd tend to agree that it is), but learning how to do this is the basic block and tackling required to get things moving at BigCos.
You might enjoy reading all the things that Marty Cagan has written about product management. I think he has a good take on what it means to be a good PM, and what you're describing sounds like what he calls a Feature Team [1]. Unfortunately, it's really common to be in an organization like this where the roadmap is driven by outside stakeholders, and product managers are treated like project managers who just implement their ideas.

[1]: https://svpg.com/product-vs-feature-teams/

> Don't just build Something™, build an industry leading product that customers want and love!

One of the biggest challenges is that someone eventually has to say "no" for that to happen. It is easier to just say yes to whatever is wanted than fight with someone about doing it.

Words of wisdom and experience - I am with you on that one
Team 1 and team 2 both internally compete for projects at the same company.

Team 1 already knows their project won't be "bought", but they can't start on a new project yet, so what's the point of wasting developer time on it?

Obviously using a throwaway here. Our board members got it into their heads that successful companies must have an AI "play", so they instructed the CEO to invest about 10% of our development budget on AI.

We are doing absolutely inane projects that have no hope of succeeding.

We serve a niche industry where certified professionals have to do certain tasks personally, instead of being able to delegate to secretaries. Somehow our CEO has been convinced that AI can be trained to do these tasks, at a reliability level not achievable by other humans.

Team motivation is in a weird space: everyone is relaxed because there is no pressure to succeed - we all know the project will fail unless someone develops well-perfoming, human-level AGI before Q4/2020. Lots of long lunches and checking out early in the afternoon.

At the same time, everyone is worried how terrible the fallout is going to be once the project reaches its inevitable conclusion.

Interesting times, but at least we can now tell investors we are a keen company with an AI play up our sleeve!

Just pivot to "assisted-AI" where your solution is really bad but it adds "super-powers" to all their existing employees. It may give cover to some other businesses to fire staff under the "force-multiplier" argument that your software adds ("If their software makes every employee 33% better, we can fire 33% of our staff!").
And of course you're being facetious, because if everyone is 33% better, the company can fire 25% of its staff (right?).
That's hilarious - I can't help but think of this dilbert cartoon on making change:

https://dilbert.com/strip/1993-03-20

(I am not putting you down)

I would have thought of this one:

https://dilbert.com/strip/1998-03-17

My dad always disliked the strip you cite, because the change Dilbert expects is $5.25, but there's no way to provide $7.14 in a way that couldn't be trivially reduced to $2.14. If the goal is to make things easy for the cashier, he should obviously provide $2.14 and just keep the $5 he already has anyway.

You are right, that is a much much better cartoon as a reply! If it had been in my faulty memory banks...

(and I agreee - the first dilbert cartoon is super contrived)

Oh dear. Erroneous 'grossing up' percentages and mis-non-use of percentage points is a pet hate of mine. I didn't realise I was a cartoon!
I'm sure that's intended; Dilbert is smart but dumb. Or dumb but smart.
I'm pretty sure it's just a mistake because Adams wasn't careful.
Years ago I worked at a store with registers that didn't calculate change; myself and the other cashiers would need to calculate the change mentally. Once in a while I would get people like this who threw out convoluted amounts of change. Normally it was fine, but sometimes towards the end of a long day when my brain was tired I wanted to strangle them.

The store actually had really great employees overall and I suspect this little factor played a big part in that. Part of the application process was a basic math test and it was funny to see how quickly some applicants recoiled when they found that out. It seemed to be a great filter.

"How about you tell me how much change you are expecting" and then add to check.
Is that like putting a total on a restaurant check and leaving the tip "as an exercise for the server?"
That's actually how paying in a restaurant usually works, in Germany.
You don't calculate change. You just count it out, picking up coins and bills as you go. Start at the sum to pay and count towards the amount the customer gave you. Work your way up from the least significant digit using the smallest denominations. No hard mental calculations are involved, you just need to know how to count. Basic cashier knowledge they should be teaching you on day one.
"Basic cashier knowledge they should be teaching you on day one."

About 10ish years ago I had an idea for a product that would essentially provide online training on this for cashiers. Back then I thought 'but everything is moving to cashless payments, plus more and more registers calculate change, no need for this". I wonder sometimes if this was The One That Got Away for me...

On the other side you could have this pretty good AI, which can be made amazing just by adding a human step to it.
> we all know the project will fail unless someone develops well-perfoming, human-level AGI before Q4/2020

This is hilarious, and makes me wonder how many similar corporate AI initiatives are under way in the world right now.

I have had a couple conversations where a business guy starts off with a decent idea then he says something like "the cognitive AI module will fill out your expense report after watching you do it for a couple weeks".

What the fuck? If I had the ability to code a cognitive AI module which could do that I would not be building it for you, I would solve self driving and license the software for billions.

Business guys usually comes together and brag about their works. Quite often, they start to talk about things they heard but don’t understand much.

And the other one hear about it, get excited, but also don’t understand much. Then on the meeting, he brought the idea up and convince everyone to do it.

The next you know, you’re pulling your hair out trying to understand what is going on

This happens way too often. They often read a blog that talks about how X was implemented at company Y and mindlessly cite the blog for their own related-but-different-in-important-ways ideas and it’s upto the engineers to fact check the wackiness. It’s not pleasant.

This happened to me recently where a PM shared a blog about someone who had built an “all encompassing multi cloud cost calculator” for their org and had blogged about it. The PM was naturally extremely excited but I asked him to find more details about the tool and if/how that can be used. Turns out even though it was supposedly open sourced it wasn’t really available to just anyone but the author promised he would release it in a month. That was over 6 months ago, no word from the author or PM.

These blog fueled hype trains are extremely destructive. It makes engineering appear trivial. Building useful tool might be easier now but it’s not trivial. And if a tool sounds too good to be true it probably is.

A few years ago at a small company after a round of golf with some other shmuck, our CEO told us we needed SSO via OAuth, because that's how we can convince people we're secure. How soon could we get it developed? Spare no expense!

We had a single website with an already written to OWASP standards login, no external API or plans for any.

What always drives me crazy about instances like this, is that managers and the c-level seem to be much more willing to listen to some "random" guy or blog over their own people. People they hired, people that have a much better understanding of the issue, the processes and so on.

This effect is by no means limited to tech. And engineers, regardless of type, are by no means immune to that as soon as they reach higher management positions. I have yet to figure this one out. Which drives me crazy sometimes, because my gut tells me that as soon as I did most "problems" I have regarding managment would be solvable instantly.

They're just seeking some outside the box solutions. If you don't course correct, how do you know/show that you're driving?
In my case, the business guy stubborn and think he know best, many times.

Every times, I told him it wasn’t what he think. For a few times, I let it go, part to let he learn about the reality. I thought he would change the evaluation process. But no, he still stubborn.

I remember at Microsoft, people would need to win an argument with Bill Gate to get their idea approved. Sometimes, it was a really hear arguments. Maybe some people get inspired by this story too much.

Plus, how else would you create all that synergy.
At my last job, about a month or six weeks after starting, the CTO would meet with new devs and ask them if they thought we were doing anything wrong. He was clear “I have to ask you now because in a month it’s gonna seem perfectly normal to you.”

I recall telling him they were doing builds like no one I had ever seen (“Yes we have a plan to change it.”) and and asking why do you use R as the main language for the ETL pipeline (“It makes it easier for data science and we can run it in Spark.”)

I think a big worry for any C-levels is "what if my employees are wrong". And there is good reason to hedge against this, because insiders have clear interests in defending past mistakes.

And if you hired your people yourself, you probably know you skipped over some qualified people who were to expensive, and weeded out some overconfident people who turned out not to be all that. In the end, you wonder what those expensive smart people would have said, and you wonder if your confident sounding employees are just overconfident incapables that you failed to weed out.

Hence, getting an outside perspective from someone you trust has a lot of attraction. However, getting that outsider person to be knowledgeable enough, and getting them the right information, is a tough task.

When I was 17 I worked [production] in a sofa factory that made huge profit. They hired every highly specialized consultant available. I asked one of the consultants and some office folk for an explanation (I was paid 3 guilders or so per hours ($1.5)) To my surprise both the consultant and the office folk thought it was a fascinating question and explained elaborately how [to them] it was worth every penny to have written proof for every business process. Investors could point at anything and get a pile of reports explaining exactly why the chosen method was the right one.

(When I left they continued to pay me for months. It struck me just now that cheap employees probably looked great on paper.)

Which question?
Why they paid me roughly 1.5 USD and the consultants several thousands per hour.

My bad, I originally wrote " They hired every highly specialized consultant available for .... guilders each" but I only hear the price of one and I failed to remember if it was 5000 or 20 000 for a 2 hour chat.

I know a guy that works at a company where the CEO will sell something to customers not knowing anything about the technical details, and then come back to the business and "make them do it".
I was once being sold that as a partnership advantage - that a guy would sell with a .ppt and then afterwards we'd just have to build it.
Isn’t this the norm? I complained that sales were “demoing new features” to customers before the back-end dev team had even heard of these features. I was basically told to stay in my lane. A property developer making design mockups of new highrises doesn’t run it past the bricklayers first, so why should product/sales talk to us digital bricklayers...

In one sense, great, I don’t want to bother about what a customer’s priorities are. But it turns out that only works if you TRUST the product team.

In my previous job in a consulting company one of the sales people mentioned how this is the first place where he has to sell the project twice: once for the customer, and one for the co-workers who'll work on it.

It was a nice company. Bosses had very limited direct power over the developers and designers, and rightfully so -- it's supposed to be a team of experts, after all.

Because he is selling buildings that are too tall to be built with bricks...
I previously worked for a Dutch fintech company that operated in the same way, but from my understanding they were (probably still are) really quite effective, profits hugely increasing year-on-year.

But this Dutch company also makes use of some kinds of SWAT dev teams that help customers on the spot with issues, making sure the product lives up to the clients’ expectations, even if this means modifying a product delivered by the core dev teams. I.e.: if some feature was promised, but not yet part of the current release, the SWAT team might hack something quickly, often on the spot in the clients offices. Later on, such a hack might be replaced with a proper solution.

Yes, the best salesperson is usually the one least concerned with reality.

Or as one VC put it: Never let facts get in the way of a good story.

Him selling you that as an original was an instance of that itself as it's a Mark Twain quote. Funny how that works.
This makes more sense when you remember that being "concerned with reality" for a salesperson mostly means "Getting the commission paid and moving to a different role before everything blows up too badly", rather than "delivering software that meets the sales deal's contractual requirements".

Salespeople are too rarely judged/punished for the disastrus messes they leave behind, and all too quickly judged/rewarded for being able to convince a customer to sign off on a big number without any care for long term implications of that deal...

I don’t have the number but the percentage of success that “best salesperson” is small.

Most of the time, the development will be discontinued, or change the direction.

Solve self driving? How bout market prediction and just play the market forever. Why would you risk failure when you can just do nothing and make trillions?
Well, to be honest self driving sounds more useful to mankind ;)
If someone offered me AI that drove me to work while I slept or watched movies, or AI that filled out my expense reports, I'd ask if the AI is able to scan the receipts by itself.
I'd ask the AI to go to work for me, then I'd go hiking in the mountains.
And possibly tell the AI to chat with my relatives and help them with their endless computer problems.
Make an AI that constantly argues with the elderly on Facebook
Financier Martin Armstrong claims to have exactly such a system but it doesn't predict the market, it only makes quite accurate market forecasts.
(comment deleted)
Ahem, actual humans cannot consistently predict the market.
Exactly why we should use AI, no?

    - your ceo
Just start a software consulting business. An outsourced programmer goes for $100+ per HOUR. No need to have the initial capital you need for market prediction.
I had a moment like that once where the product manager said something like "at this stage of the process the software will go off and find the documents specifically relevant to this stage" - and I was like pointing out we could do a search but that might bring back irrelevant stuff or fail to find relevant stuff - he insisted that it would automatically find just the exact documents people would need at that stage in the process.

It was an "AI complete" feature as up to that point it required someone who knew what they were doing to decide what documents were actually relevant - not "close enough".

Oh? So the moment you no longer have people who know which are relevant the AI works?
Fire testers and QA, disable bug reporting, et voila, the most perfect software ever to have been created!
The product was used for arranging formal approval processes for things like drugs and government contracts - the definition of what documents were relevant was often quite strictly defined in a practical sense but less so in sense that a bit of software could make sense of.
Been there so many times.

I've been kicked off a project because I couldn't stop talking about training data (they already had) and machine learning algorithms (NLP, text classification) that we could implement right now to start automating a couple of internal processes that are currently pointlessly manual. Think moving incoming e-mail to appropriate downstream support channels.

Not enough magical AI / AGI in there.

The countless PowerPoint presentations built after my departure described processes along the lines of "the AI will detect when you're about to miss your connecting flight and book you into your favourite hotel with your favourite dinner pre-ordered".

Surprisingly, the project survived and now they collect training data and use machine learning for text classification.

Dude I see hilariously absurd ideas for AI implementation in both the film and podcast worlds. There is definitely potential - such as transcriptions - but people are way overselling the efficacy and trying to “disrupt” with AI in ways no industry professional is asking for.
Most people say they want "speech recognition", but actually mean they want "speech understanding". Think computer from Star Trek, not speech-to-text.
Isn't that a given when you're disrupting the industry itself? Of course not every idea is good.
It’s only disruptive when it actually disrupts something I guess is my point. I’m not so curmudgeonly as to think “this stuff will never work,” I just see so many folks selling it as if it already does.
Even transcription is hard when it's used in the way manual transcriptions are used. Whenever there is sufficient value in transcription to bring the manual process close to worthwhile the cost of mistakes will also be high. But lower value applications can have much lower quality requirements, e.g. imperfect transcription could still be used to generate a high level topic log of a conversation that might be useful e.g. for backtracking after a digression.

The pinnacle of the low failure cost principle must be ad targeting, it costs nothing besides opportunity to display the wrong ad. And the success metric can even be inverted if the mistake is sufficiently surprising: I'd probably be more likely to deliberately click an ad that is entirely off my beaten path, out of curiosity, than something that aligns with my actual interests. Who wouldn't click on an ad for e.g. curling brooms? Curlers.

At least once a month I get contacted by some recruiter contracting with a company like this. They all seem to have a vauge screen reader -> OCR -> AI fill in the blanks, form submission charter. They claim to be profitable and have 10+ customers, but their examples of how their product is used sounds like they are automating Sally in Accounting's job, and she's 2 years away from retiring, so if they could get the software to interface with the 1990s software she's been using for the last 10 years, they won't have to retrain her replacement when she finally retires. I'm sure Boomer Replacement is a market, but does not seem like a 1000x unicorn growth market.
I find that a C suite member talking about AI without a specific goal in mind (“we will use AI to automate X, which will help us do Y better”) is a huge red flag.
It also seems to be a main selling point of a lot of logistics and supply chain star-ups these days. I guess it sounds way sexier than "give us millions to build a new forwarder and our own tech because we don't want to use off-the-shelf software and we want to be acquired by DHL one day".
<cynical thought> At least they've stopped talking about blockchain though...
Isn't that a prerequisite to begin with by now?
Arguably most C-suite execs shouldn’t even be dictating the specific techniques used to reach an objective or solve a problem.
(comment deleted)
Once the CEO asked me to build a human level AGI in front of our only customer (small company).

I asked them what they wanted to do (it was solvable with keyword search) and told the CEO that I’d be happy to get it into the next version. It took an afternoon or so to implement.

Gotta love the PHB effect.

PHB Effect?
Certainly not. But the results they list are interesting - my gut tells me they wouldn’t be reproducible.

Can’t seem to find the full text though, pretty messed up that my tax dollars go to finance academia that I can’t even consume.

"PHB" means "Pointy-Haired Boss": https://en.wikipedia.org/wiki/Pointy-haired_Boss

The relevant bit:

> He is notable for his micromanagement, gross incompetence, obliviousness to his surroundings, and unhelpful buzzword usage; yet somehow retains power in the workplace.

It's interesting that you seem to be insulting your CEO, who managed to solve a customer problem with reasonable tech requirements for you and a grandiose upsold sales pitch. Seems like a win-win-win
> grandiose upsold sales pitch

Yes, liars should be insulted.

If it happened like the OP described, they just got lucky, but it could have gone differently. A good (but less than honest) CEO would have colluded with the developer before talking to the customer, both agreeing to upsell an easily implemented feature. However, the mark of a PHB is that he/she will ask for random features while completely misjudging their feasibility -- sometimes you'll get lucky, sometimes you'll crash and burn horribly.
My new hobby is using "collusion" instead of "collaboration"
My rule of thumb is that if it's a plot to dishonestly deceive the customer, it's probably collusion. If instead it's an honest plan made with the understanding of the customer, it's a collaboration ;)
> but at least we can now tell investors we are a keen company with an AI play up our sleeve

Obviously I don't know the details of your company situation, but I've experienced myself over the years, that sometimes it can be less overall cost and trouble to give this kind of lip service, rather than fighting an overwhelming fashionable trend until that trend runs its natural course to extinction.

> Team motivation is in a weird space: everyone is relaxed because there is no pressure to succeed

If I was leading that team, I would try to find (or insert) nuggets of goodness (smaller/non-obvious objectives and tasks) in that project which allow the team members to get some personal longer term benefit out of it.

And ideally find (or insert) nuggets of goodness (smaller/non-obvious objectives and tasks) in that project, which have a good chance of becoming useful to the company later - beyond the scope of the official project.

And hopefully the team would become excited about doing something meaningful beyond the official project objective.

p.s. I'm speaking from experience in this kind of a situation.

Well, it sounds so weird but intriguing. Do you mind telling the rest of the story?
The story would probably make little sense to most HN readers, since it's very old and what was very non-obvious back then, became very obvious 5 years later.

Around 1994/95 client/server was unassailable in board rooms (much like AI is now). And after initially speaking up against it, I ended up shutting up about my criticism of that architectural approach, since it would have just gotten me fired.

So I ended up sneaking some early Internet technologies into a big client/server project I managed. Doing that ended up benefiting those developers in future jobs, and the company, because they didn't have to re-write that part so quickly. :-)

Doesn't this speak more to the board's astounding foresight than inane projects?
I think he's saying the "foresight parts" were his initiatives, not the board's, and the board's part in it all had to be scrapped sooner rather than later while his initiatives did not.
Somehow PC Mag seems like the best reference here: https://www.pcmag.com/encyclopedia/term/clientserver

It’s hard to see the hype up close sometimes. The closest analogy I can think of and it’s an older one might be how in the mid-2000s everyone needed to make a “Web 2.0 mash-up” or how for awhile everyone needed “social” (remember Ping?)... if you were stuck with a stack based on jQuery and global variables, good luck transitioning to React without Facebook’s scale. Sometimes all you can do is try to stay organized, see a project through and hope it can evolve to something greater after the fad wears off...

> if you were stuck with a stack based on jQuery and global variables, good luck transitioning to React without Facebook’s scale.

My team is doing exactly this on my initiative and seeing some positive effects already, even though we're only like 2% of the way there. Would you mind expanding on what you think is futile about it? I wouldn't want to be the one advocating something that with hindsight will look obviously stupid.

There's loads written on re-writes.
I may be misreading them, but GP seems to be doing the re-write in the recommended way, small chunks at a time. I think the advice cautioning against wholesale replacement re-writes is sound, but piecemeal transition is much more achievable. I think it took about 5 years to transition Wayfair from asp to PHP one page/system/scheduled task at a time, but the result was a working system at all times that improved with the re-write. Not that I have any love for PHP, but (Classic) asp was even worse. (I can’t speak to asp.net, never used it.)
Asp.net Core is fantastic. ASp.net is ok but not as good.

Asp.net Core is cross platform, has a self hosted https server called Kestrel that is insanely fast, has a really sensible composition of middleware, built in DI, and a strong community. Hangfire is a great job runner, signalr is available with real-time push over web sockets, identity server 4 can handle all your Authn/Authz and Entity Framework Core + Linq is very powerful and a lot faster than the full framework version.

Cool, very good info thank you! I’ve heard great things about .net core but never had the pleasure of using it yet. I would love to play with F#!
Well, leaving aside the React vs Web Components debate, the only issue is that some folks add technologies like React but forget to remove the old ones as they go. They half-finish the job. Then they do that up to 5 times more...

My advice would be to try to refactor the jQuery app to reduce global state first. For example, use ASTs and other techniques to programmatically determine what global state is used where. Think of it not as “porting” to React, but more as ‘re-writing in React” — the sooner you can finish the rewrite, the better. Take it in smaller, thin, but global (across the whole app) steps, and work to break the app dependencies back down to separate components — this is especially true for CSS, which historically has been global by design for much of its life...

If shipping during a rewrite, make sure you have some very basic tests running. Try to implementation-agnostically look for and click text or otherwise use the web app in your tests, then run the tests before and after making widespread changes... Use screenshots from the tests to quickly visually scan for errors. Pay attention to errors in browser consoles also, if not using TypeScript to its fullest yet.

The PC Mag article seems mostly pretty accurate - however, I’d argue that the web isn’t classic client/server, since the server sends the code to the client just in time. Classic client/server had a totally different code deployment mechanism. It was a full app installation every time - often via sneaker network, since few corporate networks had enough bandwidth to deploy new apps over their network. And installation software infrastructure was almost non-existent. Version control systems? Seldom. Netscape was one of the very first apps that was entirely network delivered at really large scale.

If I had to describe the web to a time traveller from the 1980s, I might say the modern web browser is something like a super smart and capable 3270 terminal, while the cloud is the mainframe.

I remember just before my first web project. I worked on a Oracle client server project (SMDS management tool) and to install the client, you installed about 4 products via 14 floppy disks one after the other on the client PC.

Took two days for two of us to install it on five or six client PC's

So you can probably imagine what it was like when we had several dozens of client pc’s across several customer companies across several cities across the continent.
Oh yes in 94 that was my key take away, you could launch a new system as a website and save a lot on deployment cots on say 500 seats.

I recall discussing this with the engineering centre manager about how in 5 -10 years the web could replace fat clients on PC's

> Version control systems? Seldom.

SCCS ftw!

This may be a stupid question, but what does "client/server" mean in this context?

I would interpret it to mean any networked or Internet-based application that has both client- and server-side logic, which obviously isn't anything special in 2020, but it sounds like you're referring to something else that would now be considered outdated?

I think they mean a dedicated thick client using the OS’s UI framework, rather than a web browser.
Not only the UI, but all of the business logic - so a very thick client indeed.
I've always called these direct database applications. The implication that the client directly connects to the database without the benefit of a middle tier.
I might be totally off the mark here, but in context I assumed the contrast was with doing all work on a thick "client". A client-server architecture in principle lets you run thinner clients and offload the heavy work, but in practice the network would've been expensive.

A modern analogue might be something like premature distributed computing.

Maybe rather than:

A modern analogue might be something like premature distributed computing

A modern analogue might be n, where n is more familiar to the composer of this, or, the source of information determining the production of this text is most familiar with n, where n does not include the word premature

If my memory serves me right, distributed computing was the advent of smaller computers (back then often called mini computers like DEC Vax or IBM AS/400, but those were more like smaller mainframes, still using dumb terminals as frontends.

But you’re right in saying that the original client/server had all of the UI and business logic on a very fat client - and the server only served the data over very low bandwith networks.

Something like Oracle forms with a custom clinet application talking to a database server.
Yeah - kind of, but Oracle forms originally didn’t even have a graphical client - that’s probably why Powerbuilder and Visual Basic dominated the early 90s. Also, Oracle was still fighting it out with Sybase in the mini computer dbms space.
Oracle forms 2.3 & 3 where graphical terminal apps, starting forms 4.0 it also included windows (and X) clients.
> This may be a stupid question, but what does "client/server" mean in this context?

Not a stupid question at all, since terminology has been shifting over the decades.

Back in the early 1990s, the original client/server generally meant all application code (logic and UI) on the client computer, and all the data on the server. So a very fat client.

Database stored procedures (i.e. some logic on the server) only arrived on the scene later during that time, because the original architecture of all code on the client caused performance nightmares. But don’t get me started on the trials and tribulations of early stored procedures. They often caused more project turmoil rather than smoothen things out. — Partly because they weren’t good languages yet, partly because of amplifying developer vs. dba conflicts.

Without any server-side logic, I suppose user permissions must have been handled entirely by the database, with clients connecting as different database users?

Did row-level security already exist in some databases at that time? Otherwise this must have been quite limiting.

Row level security was usually handled through database views.
There were alternatives to stored procedures for centralization. I remember RPC and CORBA being hot topics around that time. The tiered architecture was a thing before the Web.
Think about open-sourcing some of the stuff you're doing. Otherwise it's likely to stay buried in the corporate IP portfolio
Is it really worth doing so if it's as inane as they say?
Machine learning requires a lot of nuts and bolts devops type stuff that isn't directly related to the problem you're trying to solve. I think it's a shame that a lot of this stuff gets reinvented at different companies and kept under a cloak of secrecy.

Any part of the problem that is not specifically related to the company's vision should be part of a communal effort make machine learning and AI tractable.

Companies should compete on their core Mission and cooperate on all the plumbing.

Would it be a better (even marginally) play to use AI to detect if they are passing off the work to underlings?
Ha. CTO at my last place did something similar. He hired an AI/ML team. I asked him what projects he had in mind and he said once the team was on board they'd find things to do. He also said we needed a voice app because he read an article about the size of the market. I quit before seeing how any of that worked out.
Previous employer did something similar. Hired a crazy expensive data scientist, spent truckloads of money on a data swamp, er, lake, and then didn’t really have any goals for what to do with all that capacity.

The new hire got lucky, as there was some low hanging fruit (optimizations we all knew about). The obvious solution was implemented and then he ex post facto claimed 100% credit for the revenue enhancement. Since it’s like 10x his salary every year he’s pretty much on autopilot.

So you all knew about optimizations 10x a data scientist salary, but didn't act on them?

Actually good that the company hired him then.

> So you all knew about optimizations 10x a data scientist salary, but didn't act on them?

Sadly, most engineers aren't allowed to pursue that kind of stuff. Normal dev jobs can be stifling.

If you walk into your CEOs office today and say "I can increase revenue from our site by 1 million dollars" (#) you will get a hearing. If three devs on that site do it, with a poc they will get the chance to do it 95% of the time.

But the CEO who hires a data scientist is explicitly asking that person to walk into their office and say "I can increase revenue by X" - that is their job. The website dev does not have that job.

And there are two views on this problem - the CEO did the right thing by hiring someone to explicitly optimise the site - there are improvements to be made, create the right organisation so that those improvements flow to company.

Or there is the other argument, that the organisation is stifling innovation from below, and that the CEO should have been actively soliciting improvements from dev team and elsewhere

Generally both are right

Not this place. Our department produced multiple designs and products that had substantial positive revenue. We even did some ML projects with our existing team and/or SaaS products. Anything that didn't come from the head office was treated as a rogue experiment.
That's why you have management to listen, decide direction and argue about it. Seems like engineering management wasn't doing it's job so someone hired a Data Scientist outside their hierarchy to actually get things done.
Yeah I thought this exactly. If he had any brains he’d negotiate with management a 5x bonus for solving it, tied to achieving the 10x optimisations

I did this several times in my early career and was paid a lot and it was win/win

You have to phrase it carefully, but if you phrase it as a win/win with no risk, they’ll sign off on it

I had a similar situation, but it didn't go through. I offered to reduce the company-wide monthly costs by 5% in exchange for 40k once by replacing an outside vendor with my own self-developed clone which the company would then own. Didn't go through because our investors feared an increased dependency on me as an employee.
funny how in any other type of relationship that increased dependency would be considered a strength and not a risk
Especially with investors, the incentives might be that you're better off doing exactly what was asked for i instead of going rouge to boost the company's profits. For you, the developer, that's an unnecessary risk and there's no reward for taking it.
That kind of ignores power structures. Higher ups seem to be more willing to listen to external peope than internal ones. Plus, why should they pay you more for doing "your job"? Compared to a super expensive external guy who's hiring needs to be justified.
What exactly are you talking about?
Yeah my fairly small non-profit recently hired someone with a math degree to do stats and "big data analysis." We are talking about a company with <100,000 total "market."

In my experience, to these people, big data means "the excels look really big."

what about human augmented ai? that is what successful ai companies use
Yeah exactly, the play here is to make AI assistants to human decision makers.
It could be worse... you could be at a company where using such technology is banned... because marketing and sales are scared of the blowback.
Oh boi does this hit hard as a engineer that recently got hired as a part of the AI/automation team on a startup, that few month in got told by the boss that "we need a AI team because we promised the investors. Investors are not interested in tech without AI baked in". Whelp.
I wish I knew the details of the project; getting to mess around with new technologies for a year and no strict deliverables is a great position to be in. Worst case, you got to learn some new tech and pad your resume for your next job.
Almost seems like menial work that your CEO might be using to gain a better foothold on gathering external investments. My experience with CEO's says that they aren't complete morons. I hope for your sake there is another valuable reason why he has you all doing this work.
Times change, patterns stay the same. I remember when Facebook got big, so obviously everybody had to copy them.

Imagine working on an accounting application when the CEO suddenly instructs everybody to figure out how accountants could connect with each other and maybe publish their balance sheets instead of cat pictures or whatever. Details changed, but it was that weird.

To kind of go against the flow here: _most_ of the projects I worked on seemed to be a waste of time when I worked on them, but ended up making a lot of money many years later, years after I'd moved on. I like the green field stuff, and green field stuff looks like a waste of time most of the time. The first three versions suck ass and don't do much, but without having them you don't get to something that doesn't suck. Both the first and the second project I worked on at MS seemed like horrible waste of time in early aughts, but have likely made tens of billions of dollars for it by now.

Then there are projects where I did something ahead of its time (and was ultimately unsuccessful) yet other people did the exact same thing later and made a ton of money.

Finally I ran engineering at a startup which spent ~3 years largely wasting time and money, only to be acquired for hundreds of millions of dollars for reasons that are still unclear to me.

You never really know. Success is a random, nonlinear process and your effort is but one input to it. I've given up trying to predict if something will be successful if the work that's being done at the front lines is solid from the engineering standpoint. Business is mostly about being very persistent and/or being in the right place at the right time.

For all you know your company might be one PhD hire away from absolutely blowing the doors off competition. Or it may get to that point years later because it started thinking about it now. Or having at least some sort of an AI strategy (even if not very successful) might double the acquisition price in some upcoming merger. All of those things would make your work worthwhile in retrospect even if the project fails. You never know such things.

These uncertain situations are usually a blessing in disguise: because management has no clue, you can pretend that you have clue, and steer things in the direction that's useful to you. Put some cool things on your resume, if nothing else. Move on, see if you have better luck elsewhere.

Thank you - it's nice to have a considered view on these things
This is a great comment. If you're comfortable sharing any more information, I'd love to know just a bit more detail. What were the technologies or strategies that seemed useless at the time, but eventually succeeded?
In the first project I worked on at MS we were entering a new, established market with multiple strong competitors, and because Microsoft at the time did not have the right tech stack to do web services, the initial tech choices were dubious at best. The first version looked great, but under the hood it sucked like you wouldn't believe. Then sales somehow sold it to some pretty large/important customers, and the team had to spend the next 2 years fixing things "under the hood". Now it's one of the leading products in its market.

My second project there was about enabling the desktop version of Office to be rented and backed by online services. At the time the idea was novel, and nobody believed it'd succeed, _especially_ because Ballmer was pushing it pretty hard. But succeed it did, wildly.

I know multiple such examples anecdotally as well, from friends. The initial versions of Azure seemed like a waste of time also (VMs topped out at like 32GB, everything sucked mightily throughout the entire stack, nobody thought it has a fighting chance). Today it's the second largest cloud, and growing rapidly. Still kinda sucks though. :-)

The initial version of Bing crawler was pretty horrible also (index team had more time, so their code looked squeaky clean in comparison), and it spent years trailing behind Google until they figured out how to close the gap (with "hiybbprqag" thing - the press got it wrong, they weren't "stealing" Google results per se; they augmented training data with clicks that come from Google search pages IIRC). Today Bing powers Duck Duck Go among other things. It's still not a wild success, but it's most definitely not a waste of time either.

In my own experience, often non-technical people will attribute things as AI that we wouldn’t, eg any basic automation. Really anything that’s in any way intelligent or seems that way. I had a project where people were excited about a feature that was basically just alerting when one value crossed over or under another... I wonder if your team could provide real value to customers providing some smart “AI” feature that isn’t actually machine learning.
The line of were AI starts is not well-defined. If you think about it, virtually all software can be considered AI if you put expectations low enough. From the other end, one could argue that once you understand the inner workings of a piece of AI, it just becomes a fancy algorithm to you. In the end, everything is just a piece of software converting input to output.

My experience is that people tend to consider things AI whenever it feels like "magic" to them, at least in non-technical circles.

On the other hand, actual AI is kinda cut-n-paste accessible now too.

I slapped together a POC javascript tinyYolo feature detector demo last weekend (using someone else's code and pre-trained model from their github project), and joked when I showed it around that "And we can tell investors we're running AI, deep learning, and convolutional neural networks in our realtime production workflow!"...

(But as we all know, all the _proper_ magic is done by the regexes buried in that Perl module dependency hidden in a deeply nested source code directory that no-one without a grey beard is ever game to peer into...)

If you have someone doing a task manually, you could technically argue that you’re using an incredibly advanced neural network. Just not an artificial one.

I was recently joking that I was training a neural network with a water spray bottle (teaching the cat not to jump on the kitchen counter). And just while I type this, my little neural network came to walk over the keyboard...

> my little neural network

Free idea for a children's TV show right there.

One interpretation of AI is "things we didn't think computers could do". Chess used to be considered an AI problem, now it's something we just expect.
Completely agree. If its artificial (all software) and its in some way intelligent p, or appears that way, (a lot of software, or features thereof), then you could argue its artificial intelligence, based on just those two words (ignoring the definition technical people give AI). That’s why machine learning is usually more useful from a technical discussion viewpoint.

> From the other end

Yeah, using wongarsu’s example of chess: brute forcing chess was once a highlight if AI achievement and now its just a crude search algorithm.

I had a boss not so long ago who kept selling our customers our "Conversational AI Bot". What we gave them was a fairly dumb keyword search of a library of questions the customer would type in along with answers - wrapped in some html widgets displaying cartoon robot heads.

It still astounds me that not only did none of those customers sue us for blatant misrepresentation, but most of them were delighted with what they'd bought.

There are a couple of lessons in that anecdote.
Yep. Still learning them...

I had a similar cognitive dissonance when doing "R&D Grant applications" a long time back. I kept on thinking "Research" was the sort of rigorous academic work you do to earn a PhD. In the government/business world, it seems pretty much spending time or money to learn how to do anything not 100% required for your business previously counts. Including things like "selling our widgets, only via the internet" being valid and acceptable thing to get government rebates for "R&D". I still feel dirty everytime I draft one of those grant applications... :shrug:

The government only cares if you're developing something that will make more money, which presumably selling via the internet will.

It doesn't have to change the world, as long as it moves the needle.

It looks exactly like my company, but I am few months ahead. I am now at the time where investors starts to ask for results. The CEO wants to please them and starts to put pressure on our team by changing priorities almost everyday (which impact the project quality). The thing is, everyone knows that the project is doomed to fail.
Many of us have been there. I think what struck me was how low the treshold really is for what's accepted as "AI" in most industries.

Do this:

1. make something that has some "modern" AI such as deep learning in it, but that doesn't do anything much useful (because that's almost impossible in most cases). E.g. predict something trivial based on a time series, and repoort it. We all know how hard this is, so just take some hello world ML project and change some inputs.

2. Find some easy project that actually makes business sense, and that isn't yet done, and can be done with simple logic or some old school "traditional" ML or constraint solving e.g. a scheduling/optimization problem.

3. Make sure these efforts are "merged" so that the fancy AI tech AND the measurable good outcome is the same project. The "AI" moonshot of the company.

4. You can now say you are doing "AI", you have measurable success.

A "friend" of mine is doing exactly that in its disruptive startup. Their AI part is a joke and handle a part that nobody really care about, but hey they are doing it like every other cool kids.
It cracks me up that on the new LG TVs (I have a C9), it has “AI preview”. Which means: when I hover the Netflix icon in the dashboard it presents a list of the most recently played shows.

I think the “Open Recent” menu debuted in 1980s? But now it is AI!

I thought AI in C9 tvs was about improving upscaling quality?
That too is “AI”. But there is a setting to turn off “AI previews”, that is just pulling some content from services into the dashboard.
Yes that sounds unnecessary confusing.
Maybe the confusion is deliberate.
To the average person AI makes everything sound more modern, "smarter". So it gets sprinkled in everything. Things that have been using the same logical algorithm since the dawn of computing are now called AI. The worst is hearing people in the field calling every piece of automation and single purpose code that does one thing the same way every time as "AI".

Everyone does it just to attach their old or boring tech to the fancy new trend and have some "cool" rub off on them.

genuine question here: why is using deep learning to do something useful impossible?

I can think of a bunch of potential use cases for gpt 3 alone.

or do you mean its impossible to build useful models from scratch because all the "easy" problems are solved?

this also seems like a limited mind set.

context: I'm a ML noob

> why is using deep learning to do something useful impossible?

This is completely false. Here are some examples: Google translate. It's infinitely useful. It's not perfect, but it's good enough for me when I want to quickly check whether my translation into my second language is okay, or I'm not sure I got the meaning right of some translation.

Second example: My home security cameras now uses object classification and only alerts me when there's movement in "high risk zones" and it's human. So many stupid false positives of shadows and stray cats completely gone. I'm pretty sure I can fine-tune it with examples of myself and my family and it will ignore them when it's reasonably confident it's them, but I couldn't be bothered.

Yes. Google Translate is obviously a useful product, and obviously Google will have thousands of areas where they can apply AI (enough that they'd even write frameworks for it). But 99(.99)% of us work in mundane jobs doing boring CRUD apps. My post was meant in this context.

You work in a company making an intranet product for the paper tissue industry. Your manager wants v3.0 to have some AI in it. No one remembers the fiasco when "Cloud" was added in v2.0

so what you're saying is...

you either swallow the CRUD app red pill, or you live long enough to become the "AI a la carte" manager

Google Translate was good before the so-called "AI revolution".
As far as I remember it was close to unusable. Even most basic translation to languages besides German, Spanish and French was a nightmare. That was at lest true during my second year at the university (~2010-2011).
Google Translate today is absolutely spectacular.

A fun game used to be "translate this phrase English to French, then translate it back again and laugh at how meaningless it's made by the round-trip". That doesn't work any more.

From what I've read, the early translations were really rough (but on par with competing free products), until they fired all their linguists and brought in AI guys.
Not exactly. Google Translate was always a statistical approach from day one. That was the reason it was better than the rules engines that dominated before that. The Translate guys really pioneered statistical machine translation.

However it was all done with hand-crafted statistical functions and code. The new stuff using deep learning is the first time it'd have been referred to as "AI".

Most of the "useful" tasks AI has helped us with are problems that are domain specific and lend themselves well to machine learning (for example object detection in images and machine translation as another poster mentioned).

However, what I think the poster meant was that just tacking on AI for the sake of it to a problem which most likely doesn't have an applicable use for it (which currently is the case for most existing IT projects or apps) is doomed for failure.

It's not impossible. But there is a very real gap between "this is cool in a research paper" and "this is deep learning that works in real life".

It's a large gap, covering everything from application topics, to data quality, to the need to actually run the damn think in a production setting with scalability, availability, error handling, etc.

Production applications of deep learning aren't particularly glamorous, they're not the "next big thing" right now. Rather they're improvements of existing applications.

Google's on device live captioning works really well, but still somewhat niche, and requires special / higher end SoC's to run.

makes sense. thanks.

models I have used seem to have their usefulness greatly outweighed by performance demands.

scaling and economics are another question entirely.

Perhaps we were spoiled with democratized web tech and it's wishful thinking to want everything to be that.

It will get there eventually. A lot of it is hardware / deployment constrained.

Search by image and object detection and computer vision in general is cool and potentially useful, but right now, it's cumbersome as fuck to pull out your phone, find the Lens application, take a picture etc. Needs to be baked into a wearable / neuralink type setup.

But self driving applications of CV work because the cameras are always deployed and running. But the hardware is expensive.

yeah I've resisted these fake ai project as much as possible, but sometimes the budget is there so you're better off spending it.

bet there's something between a full AGI and a set of ifs on the audit log that could help the human experts reduce error rates and fit within the direction constraints

Any chance at sharing what consulting company put the AI play idea in your CEO's head?
I used to work at a software house which makes software for few big companies. A few years ago our CEO thought it's time to diversify our income stream by creating some SaaS. He came up with a really then-buzzword-packed(AI, ML, IoT, microservices, Kubernetes, mobile first) product. Quite ambitious, especially for a team of 5 people, regular web devs who had no working experience with any of those. Everyone voiced their concerns but we were told to just use our best efforts.

Long story short: after a year or so, our boss decided to scrap our half-baked system and gave up on the idea of creating some internal product entirely.

I'm cynical about a lot of 'trends' that have popped up over the year, because oftentimes they're just compromises or marketing to get employees to join them. Notably, in recent years, a LOT of employers / recruiters will stuff "IoT" or "Blockchain" into their job descriptions, knowing full well they do nothing with it - or if they do, it's a couple hours a week they give up on to keep the employees happy, interested and motivated. It's a weird theater.

Most of those jobs are generic Java work, but it's hard to find motivated / qualified people to work on just that.

I've had a very similar experience. I'm surprised at how little so many managers and investors understand AI.

They talk about it like it's some sort of panacea that will make a company automatically grow 10x. Then you ask them what they actually want you to build and... Crickets.

Perhaps the most significant outcome is that you guys will be peppering your resume with AI buzzwords, which the board may be paying through expensive staff retention.
> Interesting times, but at least we can now tell investors we are a keen company with an AI play up our sleeve!

To be fair, this is absolutely not unique to you but literally every (software) company in america right now.

Ahh, I see. You misunderstand your true customer. It is not the purchaser. It is the investor — PE. Or, "the market".
I worked on a project that basically was a very simple rules engine, encoding a bunch of domain knowledge in a digestible dashboard format, which happened to use a few predictive models' output as well to drive a few of the rules. The product owner insisted that "AI" be in the name, whereas I was reluctant to put lipstick on that pig. Ultimately (as usually happens if the product owner is your boss) the "AI something something" name stuck, but the whole branding of the endeavor rubbed me the wrong way (even though the product was actually somewhat useful).
Many of the features can be a total waste of time, true, once we spent 3/4 of a budget building UI for the product whose biggest customers (95% profit) never used UI. But then again, business plans change, some features need to be customer-tested, etc.
I have a weird story of the same type, I developed a new module on the product (Quite an obvious one, no need to educate users), and got very little traction, but after 2 years, but reports and support started piling in. My new interpretation is that we just had to let the market pick up on it and do its transition at its own pace (I don’t know if development is paid for yet).
Failure of Agile can basically be summed up as: "customer not involved every day".
That much involvement is going to lead to customer driven architecture, which seems like another failure mode.
True, that's the other end of the spectrum. I haven't experienced that one, though.
"Customer involved every day" doesn't necessarily mean that you let the architecture or product be designed strictly for the customers need. Point is to have as much user feedback as possible, to take into consideration (or purposefully say "we're not considering that").

To end up with a useful product in the end, it's better to err on the side of involving the user too much, than too little.

Some projects need constant involvement.

Some need months of work to have anything of any use.

Everybody should go read Bullshit Jobs.
Amazing book. The funny thing is I never expected to see it applied to software engineering - but in this context it's very appropriate.
I listening to customers is not really something you can only do with agile scrum. You can figure out what customers need with roadmaps or projects too. Outside enterprise, you also don't have one set of customer/users, you have thousands or millions them.

I agile scrum often leads to situation iterate the teams iterate towards local optimization or solving problems that people think they need, but fails to deliver actually create next level impact, since teams are hesitant to make plans longer than in two week increments.

I think most successful product teams take the practice of closely listening to the users (as the whole team or product organization), trying to understand the user, but choose to build product they think is right, even it's not what the customers currently say they want.

This would be an interesting ask HN. I dont think theres much to discuss on the actual link since it looks like its just some sort of ad for some training program?
That's not how it usually goes. It's more like: How many of you know that the team is working on something that will never be released?
I work as a product owner in a company described almost exactly by this article. We shipped our important feature last month and nobody's used it yet. We have a product team totally separate from the engineering department and they come up with the ideas that we build. My input on the product is valued only at fairly low levels, around detailed implementation (how buttons should work, whether users will likely figure something out). I really don't like it, but at my level, I don't know what I can do.

My primary approach to address this is to push for improved data analytics, starting with our tracking and pipelines. I do think a data-driven culture can help lead the team/company in the right direction, and that it can spread from my level. Progress is being made, albeit slowly.

Execs have some lofty goals of changing the paradigm, but I don't see that happening in the next 2-3 years. Any advice on how I can help effect meaningful change from my position? Or perhaps could I be better served working somewhere else, building better habits.

I'm working on something that uses Hyperledger, so yeah.
I am currently employed to develop an entire data analytics system because a government department can't get their firewall rules right.

None of the members of this government department want a bespoke system, they want to use tools they are familiar with but due to the firewall rules this isn't possible.

What stack are you using? I did the same thing not long ago with Flask and Plotly.
We are required to use some internal assets, so I am using a combination of Flask, our "workflow execution platform", and some Amazon EC2, S3 and Glacier on the backend. Angular and a few data viz libraries for frontend.

It's very rigid and slow :(

Why don't you build gateway to th standard tools?
To put it bluntly, because that's not what the contract (that I had no part in) specifies.

The proper solution is just to fix their firewall. The interim hack is what you've identified, do some sort of gateway.

Unfortunately my bosses are non-technical and think we can simply copy google data studio with 1.5 guys and 12 months.

Understandably I am seeking new employment.

It truly is fascinating, the world of tools and ecosystems built up to sidestep inane security rules in organizations.

Spoken from experience, this includes things like Anaconda in orgs where devs can’t use just any Python packages, or scripts from the internet copied and pasted into files because the firewall blocks git cloning. One could even consider AWS as a platform for devs to get around InfoSec red tape and have some semblance of control. The goal as a dev here is to fight the fewest fights to make tools available, by getting access to the biggest “bundles” of tooling they can.

In such organizations, there is either no concept of cost/benefit of overly restrictive firewall rules, etc, or the culture is such that the security team has become entrenched and unquestionable.

Can confirm. I’m able to spin up multiple sets of m5.24xlarge without anybody blinking twice, but I’m not trusted to spend money to buy a ballpoint, for which I’ll have to go through the whole PO process. The disconnect here is unreal.

When the only tool you have is a hammer, everything by necessity becomes a nail.

This describes more than half of the corporate software projects ever started, IME.
Agencies and consulting companies have built their fortune on clueless customers. But I honestly don't really care anymore. I just want to write code and go home
Everybody working at Dropbox?
(comment deleted)
Due date driven work isn’t necessarily because that’s copied from manufacturing. It often seems to be just an accountability and planning measure. Ie if we (stakeholders) know the thing will be delivered in June, then I can launch my thing in July and I build that into my forecasts.

If there were no deadlines for features And teams could pivot willy billy based on whatever they find, cross functional planning would probably be difficult.

I think the right hybrid for larger companies is some agree on cadence for adjustments in direction based on customer feedback / learnings (eg quarterly)

At my company due dates are used purely as motivators. Every date promised to upper management is absurdly aggressive. I'm told this is meant to instill a "sense of urgency" to motivate people. It makes new hires burn themselves out. The few who survive the pressure eventually realize it's all a show and just get used to apologizing for all their "failures."
It's inevitable, isn't it, given that we have to work for a living?

In school they call it 'procrastinating', when you're supposed to be doing an assignment, but you're doing everything but the assignment?

You can force people to do the bare minimum - I just don't know how long we can have enough jobs where the bare minimum is better than not doing it at all, or automating it in some fashion.

This is the question of the 21st century and I'm afraid it'll only be the upcoming generation of politicians like Andrew Yang who even stand a chance of answering it in a way that doesn't lead to significant civil unrest.

The problem is that software no-one wants often has the best careers.

I worked on a system used by many people and it was hard work, was getting 10-15 years old, held together with tape and lots of users who all had their gripes and requests.

I moved to a system hardly used by anyone and life is so much better. Get to play with interesting technology and no one minds because there is now risk of annoying a our users who dont really care. The best thing is I get paid more here too.

What area? I've mostly quit software because of how much I hate working on complete garbage and also don't have the schooling/engineering skills to work on truly cool stuff. Pivoted to wood working.
Funny, I know a guy who was did woodworking (and construction) that pivoted to software.

I worked with him on a consulting project used by nearly 30 million people, great dude and great experience.

On the other hand, I didn't have an engineering degree, and worked on software for a major bank, and then a consulting company where I worked with ex-construction worker.

I found a gig on a team at another company where I make 40% more. The team I work on has zero real customers at this point, and we're doing real interesting stuff. We plan on converting our customer base over to the work my team has done, but that's still in the works.

Anyway, I think schooling isn't as important as people may think. You can learn some really cool and cutting edge things if you put your mind to it. And if those skills are marketable (not necessarily valuable, although companies might think so), you can get jobs utilizing those skills.

Tinkering with the tech you're interested in can be a good way to get into a position working on that piece of tech. It might not always work out, but it's worth a shot if you really want a fulfilling and interesting job in that area.

Been in the industry for over a decade most of which was in fintech, some in crypto. I don't count any of that as "cool". I've still got some years left because it's good money but eventually I want to pivot to wood working. I started working on my own apps this year and it's much more enjoyable.
That might look good in the short term, but there are many companies and roles which require you to show the actual number of users, or the load of the service that you worked on. Also many technically challenging issues only come out under load, and actually working on challenging things are very different from reading about them. Just my 2 cents.

    there are many companies and roles which require you 
    to show the actual number of users, or the load of the
    service that you worked on.
I got my first job as a programmer in 2001 and not once was I asked that. I'm sure they exist but I wouldn't count on that being so common as to significantly impact the OP's career prospects.

Two things I've most often noticed people care about when hiring:

1. experience with the exact tech / field that they're hiring for

2. having brand-name job experience (google, amazon, etc).

It's sad but you'll probably get better mileage from having worked on a useless prestige/pet project at google using fashionable tech than a critical system written with JavaEE & serving a lot of high-value customers at Alliance Generic Insurance Services Corp.

That last sentence sums up the sad state of hiring in the industry well.
probably depends if you are applying to another faang or if you want to work on mission critical insurance technology

people who really need skills are probably good at indentifying said skills

What happens when one is working on something that is neither of the two things in your last sentence?
I do agree that there is a risk of it all crashing down. I dont think they ask us for load or users, but they notice an area where money isn't coming in.
> there are many companies and roles which require you to show the actual number of users, or the load of the service that you worked on

Really? What do you base that statement on?

This feels so true! I had a similar experience.. spent 3 years working for big US companies, completely focused on whatever trend would impress investors the most with no one giving any thought to what might actually be _useful_ for people who, you know, actually give us money.

Now I work for a small company doing very niche work and I don't think I could love my work more. I mean people do use our software, but there's no VC funding so no pretense of needing to hop on the latest bandwagon. It's just so much better.

Don't a large portion of IT projects fail?