Live data from Hacker News

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

news.ycombinator.com

71–80 of 607 posts

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

#71

Earlier quoted context omitted.

>hire somebody rather senior to be a "CTO" The right person fulfilling that kind of role can make all the difference. When there were no comments I wrote a little message which instinctively favors focused CTO effort myself: At the one extreme you write all new code. At the other you have a turnkey system using code that is already written, perhaps a system brought together by combining various task-specific apps. Or…

Right, and notably you want the CTO whether or not the answer is: * build a team in house * bring in some contractors * make the most of the existing vendor through API integrations * switch to a different vendor * some combination of the above because somebody with the right skills, attitude and integrity has to be in charge of it.

there's another option: buy the vendor. in the absence of details, it's unclear if this is even feasible, but the vendor already has the software they need, it just needs additional work done on it. so instead of reinventing the wheel, buying the vendor allows you to fix the existing one.

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

#72
My two cents:

You have a greenfield development project with a very well understood set of business needs and requirements, and you have the budget (I'm guessing) to run some small-scale experiments without the usual sort of time pressures; to a certain kind of developer (hi!) this is super attractive.

I would spend a few weeks getting to know big chunks of the core use cases, and then architect a system designed from the beginning to handle those needs, and the prototype a bunch of that system over a couple of months.

Although these time estimates are totally armchair bullshit, what I'd actually do is timebox both steps to something like "two weeks" and "two months" - that'll help mitigate scope creep that'll come from not having the usual sort of time pressure. It's not about getting it done, it's about finding out what it would take to get it done, and seeing how much can be accomplished in a set amount of time is a good way to do that.

The key bit in all cases is (1) hiring good people (2) getting out of their way except for (3) keeping them on track. (One trick for #3 is to have them propose plans, and then always ask "okay but is there a simpler way to do it?", 2-3 times, kinda like 5-why's).

For #1, I'd look at talks people give at conferences, and then either try to hire those people, or ask those people for referrals.

For #2, that's your executive-level corporate culture. Unfortunately, from what I've seen, you either already have it or you don't, and that's probably not something you can change because if you don't have it, you also don't have the psychological safety necessary to find out that you don't have it - although, you can look for where you've got high employee churn, and that's where your problems are.

For #3, I'd use a combination of what I call the "wine trick" with "ELI5". The "wine trick" is that you don't actually need to know anything about wine to find out if someone else does: just get them talking about the details of their special interest, and if they can, they know a lot about their subject. Combine that with "Explain It Like I'm Five" to find out if they're actually just bullshitting, and because the other way to find out if someone knows a lot about something is if they can teach it. (Plus, they'd need those communication skills during the rest of this process anyway).

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

#73
Hello,

I've only done B2B transformations (revisiting all software systems and realigning/reimplementing them in parallel) like this in multiple verticals, both physical and digital, for the past 20 years as a Fractional CTO for companies in your revenue range and larger.

As needed I can traverse the entire pyramid from top to bottom from business strategy, finding partners and vendors, and informing everything down to the nuts and bolts alone for maximum alignment, and ensure it's learned alongside team members in the organization.

I often help with the budgeting and estimating process and find customers save significant time and money with the right strategy, approach and oversight.

Here's my take:

1. ATTRACTING TECH TALENT:

- Consider a contract-to-employment model. I've built teams where contractors who prefer employee life can switch over. There's other options too depending on your current mix and structure.

- Emphasize training at all steps. I guarantee clients a trained and productive resource, regardless of employee or contractor status.

2. THIRD-PARTY TO IN-HOUSE TRANSITION:

- Success: Helped clients reduce days-to-cash by 50% with custom solutions, projects relatively on time, and staff that remained able to work in the new system.

- Caution: Seen projects stall due to underestimated complexity, or avoiding realities (ie., data may not be as good as they thought)

- Run fast from anyone who wants to build only code from scratch from the outset. Also run from buying an all-in-one system until you know what your critical path is. I have worked around and through both, including from the start, and rescuing projects.

3. POTENTIAL PITFALLS:

- Underestimating current system complexity.

- Cloud lock-in: It's the new software/vendor lock-in, just sneakier. There are ways to have your cloud cake and eat it too while maintaining options.

- Over-engineering: Build software has become horribly overcomplicated. It's hard to keep things simple and flexible, easy to make it complicated. Helping everyone understand the data and process together sheds a major light on the path ahead and create a better sense of ownership.

4. ALTERNATIVE SOLUTIONS:

- Hybrid approach: Develop core competencies in-house while using strategic third-party solutions.

- Agency acquisition: I've facilitated M&A deals where companies purchase agencies.

- Vendor-as-internal-department: Set up external vendors with internal SLAs.

KEY CONSIDERATIONS:

- I would start with an honest assessment of where your organization truly is and where it wants to be. Beyond advisory or building, learning where your business needs to head and measurable ways to get there is critical.

- In-house dependency is important, but there may be better external options too that can be much more stable than an agency with interests with multiple clients.

- Any culture change and planning for it is critical.

- Industry standards (SOC, HIPAA, etc.) and architecture will ultimately decide the fate in 5-10 years.

- I keep software sales promises honest and accurate to the company, ensuring clarity on current state and future direction. Includes negotiating contracts that work for the business, not the vendor alone.

I have a lot of conviction about what I do because I've done it and still do it, keeping up with where things are headed to provide input on where things could be. I train to process, and so the process is central.

If you'd like to chat more, I'm happy to offer an hour of my time.

I'm genuinely curious to see how much actual valuable information and insight I can provide to help you think through your situation. Firehose, or key points. My email is in my profile or reachj45@gmail.com

My goal is to give you as much food for thought as you like, knowledge as possible, regardless of any direction you ultimately take. My email is in my profile if you're interested in a no-strings-attached discussion, except I'd like you to bring the most painful issues.

The world is an odd place where people who don't understand software sell it to people who don't always know how to buy it, let alone roll it out. Navigating this can be an outlier for impact. I'm here to help change that where it crosses my path and get technology working for people instead of the other way around.

Note: Edited from a laptop instead of written from a phone. :)

In case anyone's thinking of reaching out, offer is open to anyone relative to my availability.

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

#74

Working on logistics software has been my day job for 14 years. You can attract experienced developers by giving them autonomy, GOOD pay, and a healthy work environment. I wouldn't trade a "cool project" for any of that. It does sound like the best solution would be to bring most of the development in house, but integrate with third-party APIs where it makes sense (ie, the data transfer piece you referenced)

>I wouldn't trade a "cool project" for any of that.

something-something "Life is short to deal with problems we didn't have to have"

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

#75

Earlier quoted context omitted.

Right, and notably you want the CTO whether or not the answer is: * build a team in house * bring in some contractors * make the most of the existing vendor through API integrations * switch to a different vendor * some combination of the above because somebody with the right skills, attitude and integrity has to be in charge of it.

there's another option: buy the vendor. in the absence of details, it's unclear if this is even feasible, but the vendor already has the software they need, it just needs additional work done on it. so instead of reinventing the wheel, buying the vendor allows you to fix the existing one.

I was wondering if a starting a new company was a better way.

It has one customer (initially).

If it doesn’t pan out you can drop that shitty vendor.

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

#76
Right in the middle of a retiring of a big external platform and moving it over, slice by slice into separate company owned products and APIs (and a few off the shelf things mixed in too!)

I think there’s plenty of sensible advice about getting a technical person with experience and expertise to help make the right decision. Between doing it yourself, building a platform with various tools stitched together to finding ways of getting what you need from existing suppliers and other tooling.

Something I would also suggest is to be really clear right now on how you currently work, how your existing platform works and the problems it’s causing or at least the opportunities you feel you’re missing out on.

To do this suggest getting a “discovery” team together and doing some service design and analysis to map out your user flows, business and tech. The as-is. and laying against that all the pain points and missed opportunities.

Then using the same team to help you craft how it should work. The to-be vision.

Then using that to-be vision and the insight and expertise you’ve developed to help you decide how best to get to that to-be vision. As cheaply and sustainably as possible.

Part of the organisation I’m helping out. There’s a vast difference between the parts where that discovery work was done (and done with clear purpose) and the bits that haven’t been done. And the endless delay and struggle they’ve had.

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

#77

> "This feels like a quagmire in which development can quickly stall." It depends. In the end EDIFACT is just a protocol. If you go the Java route Smooks, for example, has pretty decent support to read/write EDIFACT messages. If you do not want to do the heavy lifting yourself, both AWS and Azure provide SaaS services to do the heavy lifting for you (AWS: B2B Data Interchange, Azure: Azure Logic Apps) > Besides, can…

> It depends. In the end EDIFACT is just a protocol. If you go the Java route Smooks, for example, has pretty decent support to read/write EDIFACT messages.

You can also do shim servers to translate between protocols - a long time ago, I had to interface with a Rails app (by another team, so I couldn't modify it) with an Emerson (the industrial giant) SOAP API, and what turned out to be effective was a Sinatra shim server that only converted JSON to SOAP. Now I could plug the two together without worry.

So - I'm guessing you could have a Java Smooks applet that translates from a JSON API to the EDIFACT protocol, and then you can write your main app in anything you want.

PS - Seconding the "don't go microservices", even though I'm advocating for one here - IMO, you only want microservices if they can be fully defined, independent products; a JSON/EDIFACT translation service would probably qualify.

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

#78

This is a variation on the "build vs. buy" question that has been active in IT for decades. And answered for decades, too. Building something yourself makes sense only when that something drives the unique value prop from your business. But if your needs are something that is more generic, buy it. So it all comes down to what you said about operating in a specific niche. If that niche is your value prop, and the reas…

Yes, and also when you hire software developers you want someone who understands that they are running internal tools which is COMPLETELY different from building consumer apps. Simplicity is key. Keep the team small and lean.

Also the build vs buy decision has to be made with every feature. If its not your competitive advantage just buy it. Dont make a new database, just use postgres etc.

There are a different set of developers that can navigate through this than the ones who will reinvent the wheel if they can.

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

#79
post #62

IME what works best getting new projects kick started is hiring a very small team of senior freelancers, making one of them lead, and letting them loose. I worked on such a team once and it was really excellent. The advantage of this strategy is if the experiment doesn't work out, terminating freelancers is much easier than permanent (I noted you're based in Europe). Contrary to what other people said, I wouldn't try…

+1 to this take. I think hiring a CTO at the start might lead to its own distinct challenges, especially if that's not something familiar. Hiring a small excellent team of builders could be an effective solution, especially folks with sufficient experience and very strong communication skills.

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

#80
post #57

Unless this software is your core business, I would look at a third alternative: contracting the work out to experienced developers to replace the platform. If it works well, you can bring development in house slowly after the platform is more mature. Worst case, you’ll have a more responsive external party managing the platform for you.

Worst case is that you don't know how to run a software team and you end up spinning your wheels for ages and then have to onboard a Dev team and convince them they want to clean up someone elses tech debt. Thus making everything cost 10x what management initially thought.

This is probably the last thing I would suggest.

Post reply on HN