Earlier quoted context omitted.
If you do go this freelancer route I would assume that there will be no code to maintain long-term. The freelancers should be building a prototype, not something intended to last decades. Either the freelancers work out and you begin hiring a permanent team (hopefully converting some freelancers to full-time) who will promptly rewrite / revise the prototype or you will go back to paying for software. Either way the p…
Is it common to build a prototype to throw away, and then actually throw it away and build the "real" thing? I've never seen that, ever, in 20+ years of software work. The prototype ends up being the long-term production version, for all its faults and weaknesses.
Ask HN: Should we bring software dev in-house?
251–260 of 607 posts
Re: Ask HN: Should we bring software dev in-house?
#252I’m part of a 20-person company that was in a similar situation. We have since built our software in-house, replacing the software we previously struggled with, and it’s worked out even better than I originally hoped because it felt so audacious at the time. One thing I think is key is making sure that whoever is leading this project (the lead developer, not just the person they’re reporting to) needs to know the bus…
Re: Ask HN: Should we bring software dev in-house?
#253Earlier quoted context omitted.
This is excellent advice but I would back up a few steps and do a few things before bringing in a freelancer team. Identify a part of this system that can work somewhat in isolation and is non-critical if at all possible. Then document the requirements for this part thoroughly. This allows you to: - Have something smaller for your new team to cut their teeth on. - Ensure you have collected all the diffuse domain know…
> This is difficult and time consuming so start now. A specific difficulty you are likely to face: Your expert employees are busy doing their jobs. Writing requirements means taking attention away from that work - a difficult proposition, especially if they have managers who will ask why their KPIs are slipping.
Re: Ask HN: Should we bring software dev in-house?
#254Re: Ask HN: Should we bring software dev in-house?
#255Re: Ask HN: Should we bring software dev in-house?
#256If you're going to hire one guy to start, check their portfolio to see that have build apps from scratch, and evaluate the quality. Many can't ship.
Re: Ask HN: Should we bring software dev in-house?
#257What worked great to me as dev?
. the direct connection with the CEO as he became a high level PO. With this arrange we were always sure that our work was giving value to the business.
. I learned a LOT about the business and loved it
. I was in charge of growing the team when the amount of work justified it. I got several wonderful devs onboard.
What worked great for the business?
. they decided and prioritized the direction of the (customized) product.
. they understood the strategic constraints and possibilities of their software
what was tough for all?
. at least the first full year, was spent killing bugs and making the project work properly. Operations needed too much support in that initial period. Stressfull times.
Starting with a pair of Senior Devs is a good choice IMHO. If you trust them, even better.
Those points I mention above that I found great, are your selling points to hire some good Developers.
Re: Ask HN: Should we bring software dev in-house?
#258One idea is to start it as a skunkworks project, with a very experienced and skilled person starting solo. With the express understanding that, if this is successful, you'd expect them to ultimately lead it (head of engineering, R&D, CTO, or whatever fits). Greenfield development is appealing, and the big growth potential adds incentive to do that greenfield in a way that's aligned with the goals of the company. Don'…
Re: Ask HN: Should we bring software dev in-house?
#259Earlier quoted context omitted.
> This is difficult and time consuming so start now. A specific difficulty you are likely to face: Your expert employees are busy doing their jobs. Writing requirements means taking attention away from that work - a difficult proposition, especially if they have managers who will ask why their KPIs are slipping.
Oh - you're so right. I see this probably around 20-25% of the time. Schedules slipping because you can't get time with the main SME.
I imagine the complicated part would grow wordy enough to stick out like a sore thumb.
Perhaps eventually have a freelancer turn it into technical documentation. The stuff we admire (if done right) but hate to do. (or in my case clueless how to)
(disclaimer: I know nothing, im just reading the comments.)
Re: Ask HN: Should we bring software dev in-house?
#2601) Silo responsibility and keep the structure flat. Minimize how much people are stepping on each other's toes by giving them one whole "piece" of the puzzle and letting them take ownership of that piece.
2) Give them freedom to approach the problem with the best methods and tools they know how. Tasks should be long-term goals that allow the engineers to flex their creative and problem-solving muscles. Competent engineers will find ways to communicate and coordinate with who they need to, when they need to.
I must emphasize tools. If a problem could benefit from a new language, let engineers explore that path. In replacing some maliciously obfuscated 20-year-old C and PHP code, I entertained several languages before settling on Nim for our analysis routines. It slots easily in to our servers and is invoked via scripts, makes fast C executables, and the maintenance, refactoring, and readability jump has almost made my job too easy. You will need to balance against "bus factor", but keep your competitive advantage in mind. Take a strong look at web technologies like Clojure and HTMX that can attract talent, keep head count low, and increase product quality and maintainability.
3) Use team interviews. Your team will work together to suss out fakes and find good fits far better than any single interviewer, especially a single interviewer without the requisite expertise. Don't just ask technical questions, ask open-ended critical and creative thinking questions.
4) Do entertain the possibility that young and fresh engineers can integrate well, learn quickly, and explore possibilities you never thought of. Our hardware team has a couple of much older (60s) engineers with very old-school practices who are dragging them through a quagmire. Keep an eye on your competitive advantage.
5) A note on our company's old issues: Eons ago, they hired a VERY expert (PhD qualified) engineer as a contractor years ago to build all of their systems. He fought them over the intellectual property and deliberately obfuscated code to keep his job. Make sure your team is in-house and salaried, and that you own everything they produce.
Also, avoid desktop applications. The current state of desktop is a disaster. It's difficult to make anything truly useful, and you'll probably need a web view anyways to make use of JavaScript libraries that actually do what you want. As much as it sucks to say, your software probably needs to be a web application. KISS, and again, look towards tools like Clojure and HTMX to simplify things.
Host as much as you can in-house. The decline of "cloud" has already started. Make sure your IT person is competent and can architect solid infrastructure, because you can't expect the same from Microsoft or Amazon these days.