Live data from Hacker News

Ask HN: Should we bring software dev in-house?

news.ycombinator.com

261–270 of 607 posts

Re: Ask HN: Should we bring software dev in-house?

#261
I’m doing project like this for more then a decade now. What worked?

- evaluate the new team on some thing very special for you for example try to take from the 20% you never realized

- if this work don’t feel you are on right rails.

- go next creating the smallest project that bring the most value to you

- piece by piece you will have replaced the most important parts of the old system

What didn't worked?

- if the management is not very convinced and involved

- if the old system doesn't have api or in general has poor interoperability

- don’t change target, try to keep the target frozen until the job is done and testable

Re: Ask HN: Should we bring software dev in-house?

#262
Probably not going to see this comment but if so can you answer these questions. Have you shopped around for an alternative? Do you guy shave complicated stuff like tailing an origin of an order back to a specific sales person? Do you need 3 way matching? Do your customers prefer using an ERP you're always working with? What are the things holding you up your execution?

On the ERP stuff I've done a lot and it's usually the reason stuff gets buggy and 'hard'. Stuff like say realistically you have to complete an order of say 10 linear feet of rope but it comes in packs of 6 so they have to order 2 but the sales rep said they'd sell the remainder on another work order etc etc.

The ERP you might have one guy that's on oracle, another on something custom, and these systems all interface differently.

Another is in the quoting process if you are making quotes that are timely or have an expiration. Some things just take a lot of foresight when you set out to make them.

Re: Ask HN: Should we bring software dev in-house?

#263
Hey, CTO of a healthcare company here, been doing the CTO thing for over a decade, and in tech leadership for nearly three.

My advice is to work to find a partner that has both deep technical experience (they should write code most days) and practical business experience. That's hard to do, but unless you can, I think you're better off not bringing dev in-house.

Whatever that person's title is, make sure they have some skin in the game. They should be able to understand business goals and recommend technical strategies to meet them.

I suggest finding someone who is at a point in their life and career where they are not using the opportunity to build their resume, but are instead focused on the success of your business.

It takes an experienced leader to resist the pressure from hype marketing and developers to use the new shiny, and instead focus on software that will have a shelf life of 5-10 years.

There are seemingly irrelevant technical choices that you won't understand (like the choice of a UI framework) that can end up costing you millions in "framework churn" (I've directly experienced this several times). This is where it takes a leader that is aligned with business goals rather than interesting or popular tech-of-the-moment to make the tough and unpopular calls.

Technology is the beating heart of your company. Evaluate your technical partner with the same rigour you would use for your cardiologist. You're placing an enormous amount of trust, and I'm not being hyperbolic when I say the wrong decision can cause your company to flatline.

Re: Ask HN: Should we bring software dev in-house?

#264
Here is a success story from a unicorn startup. They started a traditional business; there was no IT at that time. The business was good, and they had already made a lot of money.

They want to create a digital product for the business. They first hire a local person and freelancers. Then they work together to build the product. The local person acts like a CTO and product lead. Freelancers are developers. Then they want to speed up the project, they hire an offshore/outsourcing company - a quality one from a developing country. They worked very hard, with fast responses.

After a while, the product is really working; they start in-house devs. The original local person became CTO. They hire product people(product managers, product owners) locally(cause they know about business requirements...). And they grow massive devs in developing country without visiting that OR just only 1 or 2 on some year.

Re: Ask HN: Should we bring software dev in-house?

#265
I used to work for a large multinational ($80b market cap; 55k+ employees) with a penchant for in-house development because vendor exhaustion is real and under-discussed in the business world.

Their trick for doing it was recruiting heavily in regions of the world with great junior dev talent at comparatively low costs (in their case Latin America, but it could be eastern Europe or elsewhere) and have them work with more senior middle and top managers to guide the architecture and technology decisions. At any given time, if you took a snapshot, you'd simultaneously have numerous SaaS subscriptions, numerous devs as described working to replace those same SaaS subscriptions, and numerous completed projects that, if purchased on the market, whether SaaS or not, would have cost exponentially more than the developers' salaries. No freelancing, no subcontracting, only proper employees - but yeah, you need to make the economics work and your milage will vary.

Full disclosure: I have since left that company and work as a consultant doing precisely that kind of work for others, it's only fair to note

Re: Ask HN: Should we bring software dev in-house?

#266
I'm gonna go out on a limb here without knowing much about your situation and say that you're intuition about "...our current solution seems like a straightforward CRUD app, I fear the devil is in the details" is spot on. CRUD is inflexible when modeling processes. It doesn't have time as a core part of its design.

But the problem isn't about the details, it's that most developers don't want to actually do the job that they're trying to automate with software. They won't shadow the warehouse workers, they won't pick product, they won't work with the tools to do the job. Thus, they won't understand how to write software that models your businesses processes because they won't venture to experience the pain and gain the knowledge. They'll just end up building a CRUD app that uses the latest frameworks and "Best Practices", which, unfortunately, have nothing to do with making your business adaptable.

Sure, there's exceptions, but they're hard to find and demand a high pay because of the daily value they create. Hi ;)

You can attract experienced developers to a non-glamorous industry like logistics (I would LOVE THIS JOB). They don't even need to be experienced developers, they need to be willing to gain empathy by "going and seeing" the work to model it correctly.

Look for people who want to create value, who want to "go and see" for themselves before writing any software. The curious shall inherit the earth.

You don't need to hire a bunch of people, so pay well.

I hate saying this, but marketing is everything. Start posting on LinkedIn. I know. Everyone hates it. But software developers are on it. And so are tons of people looking for jobs.

When you do finally hire someone to do the work, go live every day. And the only way to do that is to identify small wins in the processes. Start chipping away at the bottlenecks. This is the way.

Good luck. You're not alone. So many people have the problems you're experiencing.

Re: Ask HN: Should we bring software dev in-house?

#267
I wouldn’t necessarily focus on “retaining talent.” Instead, I’d build a system where losing talent won’t hurt you. (Although, you can usually avoid losing talent at inopportune times with some simple performance bonuses -- "Get me through to X point, and you get a bump.")

A project like this will require a variety of people. New builds, problematic builds, or maintenance projects all demand different skill sets -- and different personalities.

If you need someone to jump in and untangle a mess, the right person for the job will have a take-charge attitude. However, that same attitude might cause issues once the project is running smoothly.

If you want someone to get it done and build it right, that’s great. But that person might be bored to tears when you transition from an all-hands-on-deck build phase to a skeleton crew for maintenance.

If you need someone who can maintain the code, tirelessly clean it up, polish the rough edges, and fix bugs, chances are that person wouldn’t have been the right fit to kick off the project.

These are all oversimplifications, but you get the point.

So, build the system assuming you’re going to lose staff. Hire people who are productive and get things done. Ensure you have good documentation and a solid handover process in place. Make sure everyone on the team knows how to do builds and has a designated backup.

What I’ve seen work really well are small teams -- like an “agency within the company” model. I’ve done a lot of digital transformation projects over the years, mostly in eCommerce and mar-tech systems (all systems with many integration points).

The single biggest thing that dooms projects is bad requirements. For example, "Oh, I don’t know how XYZ system works, but I’ll be damned if I’m extending that old agency’s contract by another year, so we’re losing access to the data on Friday -- just do what you can!" (This actually happened on a past project, and we lost the entire Product Information Management (PIM) system, forcing us to manually redo a lot of data. Don’t be that guy.) Make sure your system is fully mapped out and that you understand how it works before replacing the team.

When building your team, start small, as others have suggested. A product owner (who can double as your UX designer in a pinch), a tech lead (who can double as your QA automation engineer) -- look for people who can wear multiple hats. Over time, the team can grow, but start with a small team and challenge them to impress you. Then, sit back and see if they do.

Give them plenty of leeway. Don’t burden them with a bunch of “this is how we do things” processes. Hire smart people, empower them to make changes and challenge you, and let them tell you what they need to be successful.

From experience, I can’t stress enough that bad requirements kill projects. Someone creates a totally BS PowerPoint, hands it to a dev, and says, “Build this!” Or some junior dev says, “Yeah, I don’t really understand, but we can do five years’ worth of effort in three months…” That’s a recipe for disaster. They panic, cut corners, and leave you worse off than where you started. No junior folks for mission-critical roles -- seriously.

Look for pragmatic, honest, and hardworking people. Anyone who isn’t comfortable telling you to “fuck off” when you deserve it shouldn’t be in a leadership role or on a mission-critical project. Look for people who strive for a deep understanding.

You’ll also need to give them the right tools. I’m constantly shocked when I show up at a company where the cheapest person on my team is billing $1,200 a day, yet the company wants to saddle everyone with five-year-old Dell laptops and no external monitors, mice, or keyboards. Or worse, they say, “Here’s our 12-year-old Jira instance, but you don’t have admin privileges…” or, “You can VPN in and use a remote desktop client that runs like it’s on a 56.6k modem!” (I’m trying not to be outrageous, but both of these are issues I’ve faced in the last year.)

As the stakeholder who will own this team, make sure all the other BS is cleared off their plate. Give them whatever equipment they want, give them the project management systems they prefer, and don’t try to shoehorn them into your existing setup. Provide them with all the admin privileges they need. Your job is to knock down all the barriers that slow them down.

So, look for a strong leader who’s willing to dig into the details and isn’t afraid of hard work. That should be your point person to start with. “I want you to move a mountain for me -- what do you need to get it done?”

Happy to chat, my email is in my profile.

Re: Ask HN: Should we bring software dev in-house?

#268

To me, the question is, can you build a better software team than your current product provider has? If you are planning to hire developers as if they are just construction workers, you're in for a bad surprise. Plus, attracting talent to such an industry would be very hard unless you are willing to pay high amounts, often with equity. If you're going to hire one guy to start, check their portfolio to see that have b…

In my experience most folks stay at a company because of the relationships they form, not necessarily because of the work.

If you have a team of great people with an awesome attitude and human leadership, you could be doing almost anything (tech wise) and be happy.

The best technologists tend to follow each other around, if you have an exceptional leader, folks will follow them to the company, regardless of the business domain.

Re: Ask HN: Should we bring software dev in-house?

#269

Can you simply buy the provider? This may be simpler than it sounds. Once you own it, it’s your asset and you can then attempt to fix management to focus on producing a better product. I’ve been involved in a few attempts to do exactly what you’re talking about with varying degrees of success. Feel free to reach out to the email in my bio.

What's the use of buying a team that doesn't do management right? The only possible reason for wanting to buy a software provider and turn them into an in-house team would be if they were a stellar team, with stellar management.

Re: Ask HN: Should we bring software dev in-house?

#270
From the inside, I’d recommend that if you bring software dev in house, you bring it entirely in-house. There’s nothing worse (as an in-house developer) than having to work with contractors that have zero skin in the game beyond their paycheck.
Post reply on HN