Live data from Hacker News

Ask HN: Seeking advice from programmers for non-programmers

news.ycombinator.com

11–20 of 36 posts

Re: Ask HN: Seeking advice from programmers for non-programmers

#11
Great questions, Dan. Thanks for bringing them here.

An overwhelming majority of the time spent on a software startup is at the terminal, coding. If you're not doing that, then you damn well better be bringing something else of value, a lot of value, to the table. Things I'd be looking for...

- Specific domain knowledge. You gotta be the guy who says, "No, no, no, that's not the way you do in this industry. You do it this way. And you sell it this way."

- Our customers' industry contacts. You gotta be opening doors for us while we're busy coding.

- Analysis, design, testing, implementation. You should be very proficient at all the stuff on the Systems Development Life Cycle that's not coding.

- Operations. You should good at running the business while we code. This could include many things like accounting, marketing, selling, order processing, help desk, legal, etc.

We programmers are not dummies. We are working on the critical path, but we recognize that a whole lot of other stuff has to happen in order to be successful. And we want to be successful, which is a primary driver. Can you do that other stuff? Great. If not, you need to find some way to add value.

And don't forget, ideas != value. We all have a million of them. What else ya got?

Re: Ask HN: Seeking advice from programmers for non-programmers

#12
post #6

Dan, I can't speak to all your questions, but I'll try to help out where I can. in my experience the easiest way for a techincal person to respect a "business type" is for the business guy to know a thing or two about coding and software development. This doesn't mean knowing how to build Twitter over a weekend, but you do need to know what they're going through. With that being said, the best way to pitch an idea to…

I have enormous respect for business people who have no technical knowledge, and behave accordingly. Conversely, if you know that you know nothing about parts of what I do, then why do you feel it's necessary to have input into it? I think knowing your own strengths and weaknesses and allowing others to employ their own strengths is just as valuable a skill as actually learning a bunch of technical stuff.

>I have enormous respect for business people who have no technical knowledge, and behave accordingly.

Conversely, if you know that you know nothing about parts of what I do, then why do you feel it's necessary to have input into it?

I agree, I think this ties back to what icey mentioned in his/her parent comment.

I definitely know my strength doesn't lie within the technical side of things, but I do know that a proven model of success for a technology start-up is for the founders to have some sort of technical background. You need to be able to understand the problems that happen which can hamper the growth of the business. That is why learning how to code is important to me.

Re: Ask HN: Seeking advice from programmers for non-programmers

#13
The typical view of a business type by a software engineer is not pretty. It gets pretty close to, we do all the work, they do little but interfere with us, and then they take all the money. So it's an uphill battle to have a good relationship. (The _truth_ of this view varies wildly from company to company, but the perception is always there.)

See the movie "Office Space" for details. :)

Things that are a good idea: * Your technical staff is probably very smart, and not just about their jobs. Listen to them. They're particularly good at working with data. If they say that your market research doesn't sound right, even though that's your job and not theirs, it's worth going through it. Geeks are generally happy to learn things, too, so if you're actually right and can show it, we really like that too.

* Give your geeks the big picture. It really does help, because we're constantly making long-term tradeoffs, and if we know where the company is going, we'll be less likely to need to say, "Uh, we need to do a massive project for that feature, sorry!"

* Try to give clear requirements and make changes early. It's not an easy thing to ask, but a change made in planning phases is cheap. A change made when the project is in beta is expensive if not impossible. A business type giving a list of changes every day late in the project is infuriating.

* As a corollary, ask to see things early. A prototype with partial functionality is good. It's really true that a lot of times a business type just can't reasonably know what they want until they have something to play with (which is fine), so get that sooner, when things can be cheaply redesigned.

* Understand that changes aren't free. Schedules get made based on original requirements. If the requirements change, it will take longer to finish. If the deadline is fixed, you can't ask for something new without giving something up. Business types that understand this are much, much easier to work with than ones that don't, and are by far the exception.

* Programming requires uninterrupted time, like making a painting or writing an essay. If someone asks you a five minute question, it can take half an hour or more to get back in the flow of what you were doing. Try and send not-urgent questions via email, schedule meetings for the beginning or end of days, and if you can take, "Can I get back to you in 15 minutes?" for an answer, that'd help.

* Understand that these guys can, and do, do the math with respect to compensation. When I had a CEO that asked everyone to put in 60 hour weeks, and then we ended up with 3 figure bonuses when he got a 7 figure bonus at the end of the project - none of us ever respected him. If we're giving more than expected, and we will, show us some of the reward, or watch us leave. Even in a down economy, a competent techie can find greener pastures if it turns into us vs. them.

* Techies are not big on hierarchy and authority. After all, especially in a technology company, we know more about what we do than you do, and if that's the core product, there's often conflict between who is in charge and who knows about what actually is the product that pays the bills. We like to think that we work _with_ the business types, not _for_ the business types. If you project the story of doing some useful work that we don't want to do (like find buyers for our product, get us good press, find investors, stuff we want to happen but don't want to do), it'll go a lot better than if you present yourselves as 'leaders' with 'vision' and expect us to do your bidding. It's a team, and while we get that the buck has to stop somewhere and it's going to be the person with the title in the end, prima-donna VPs are just as well liked by us as prima-donna developers by you.

Someone could write an equivalent set of bullets in the other direction - yes, business people are smart, their jobs are hard, and they're often worth the salary they earn too (and certainly a lot of techies are useless.) But I'm probably not that someone. :) Hope that this is somewhat useful to you, though! I certainly have found that some business people treated technical people well and were good to work with, and others, not so much.

Re: Ask HN: Seeking advice from programmers for non-programmers

#14
post #10

Dan, I can't speak to all your questions, but I'll try to help out where I can. in my experience the easiest way for a techincal person to respect a "business type" is for the business guy to know a thing or two about coding and software development. This doesn't mean knowing how to build Twitter over a weekend, but you do need to know what they're going through. With that being said, the best way to pitch an idea to…

While I truly applaud you for trying to build at least something yourself, I have to ask why you think you need to do that? I, as a programmer, wouldn't expect you to build a prototype. What I _would_ expect is a very detailed list of use cases that shows you've thought this through. Sure, that's not something you can simply show in a five minute conversation, but mockups are great for this purpose.

As I explained with gdp, I believe you need to know some bit of the technical side of things to succeed in a tech. start-up. To me it just makes sense. I have tried the mock up approach, with not so great results. So right now I'm trying a different approach.

I love solving problems, and I like making things. In my learning I've come to enjoy doing this through coding, but I know that my skills currently won't fly in scaling a startup.

Re: Ask HN: Seeking advice from programmers for non-programmers

#15
post #11

Great questions, Dan. Thanks for bringing them here. An overwhelming majority of the time spent on a software startup is at the terminal, coding. If you're not doing that, then you damn well better be bringing something else of value, a lot of value, to the table. Things I'd be looking for... - Specific domain knowledge. You gotta be the guy who says, "No, no, no, that's not the way you do in this industry. You do it…

I agree with your points and would like to add this:

> "No, no, no, that's not the way you do ... in this industry. You do it this way."

This would be great especially when the next sentence is "And here is why: ..."

Re: Ask HN: Seeking advice from programmers for non-programmers

#16
Having spent time on both sides, I'll offer one pro-tip:

Never comment on how difficult something should be. Just don't do it. Physically restrain yourself if necessary from saying, "but it's only doing X, it shouldn't be that difficult." [1]

If a smart technical person says that it's going to be hard, then it is going to be hard. If it really is a blocking issue for you, you instead need to bring your team into the bigger picture and ask, "At the end of the day, we're trying to solve a problem like X. How can we permute X into something we can solve more easily?"

[1] Only if you are technical can you get away with this. You'll still be wrong if the other person has thought about it quite a bit more than you have, but at least you'll be able to understand and appreciate the explanation they'll throw back at you about what deep complication makes the problem hard.

Re: Ask HN: Seeking advice from programmers for non-programmers

#17
You need to develop the ability sell, advertise, publicize, make deals, etc. In short, all the things a programmer may wish to not do.

I'm the very deepest of technical kinds of guy, but on many co-working projects, I'm still the business guy, as I'm very comfortable with talking to customers, selling and negotiating work.

Re: Ask HN: Seeking advice from programmers for non-programmers

#18
post #6

Earlier quoted context omitted.

I have enormous respect for business people who have no technical knowledge, and behave accordingly. Conversely, if you know that you know nothing about parts of what I do, then why do you feel it's necessary to have input into it? I think knowing your own strengths and weaknesses and allowing others to employ their own strengths is just as valuable a skill as actually learning a bunch of technical stuff.

>I have enormous respect for business people who have no technical knowledge, and behave accordingly. Conversely, if you know that you know nothing about parts of what I do, then why do you feel it's necessary to have input into it? I agree, I think this ties back to what icey mentioned in his/her parent comment. I definitely know my strength doesn't lie within the technical side of things, but I do know that a prove…

I think you're on the right path... Getting a technical background is important to get a feel of the problems that your engineers face and as long as you know that they know better than you and let them decide the technical choices, it's going to work well... And, learning how to code is a great way to learn that things are sometimes much more complicated than they seem :-)

On the other side, I believe that when you look for a programmer you should look for someone who has a little interest in business and tries to learn... Having both founders trying to understand what the other does goes a long way to having good communication.

Re: Ask HN: Seeking advice from programmers for non-programmers

#19
I'm an apps developer (I work more "end product" than services) and architect who deals day to day with system engineers (who build the tools we build upon), product managers, project managers and testers. So i'm a few steps down from yourself and also have a step "lower" in regards to system engineers (who are programmers programmers and know more about the system than the requirements, if you get what I mean). Sorry my world isn't start up world, I work for a big 'ol transport company but I hope this helps.

- How do software engineers perceive business types? - How do they come to respect or disrespect someone in this role?

Depends, but the easy trap to fall into is that they will think that you are making decisions that effect them without understanding their problems. They may not understand the sales process, they may not understand the considered risk you took when you sold that feature YOU KNOW you didn't have even though clinching that deal was strategically essential.

Therefore you really need to ensure that you communicate effectively and listen to them effectively. Most mis-placed anger is just a massive misunderstanding. You can also mitigate this by having a reference in their development-sphere who backs you up if your decisions are brought into doubt (which you need in companies that are so large that you don't have the time to give to them).

- How can I best approach a software engineer with an idea?

Slow the fuck down. I mean sure build it up a bit but don't pile on the features, it needs to be a challenge but business types seem to be very good at talking about a huge number of features which makes projects sound like death marches. Work on the core principles of the project and leave the star-gazing out of the initial conversation.

Oh and have a plan and some work done that looks like work. A lot of devs impressions from such meets are: "he wants me to do all the work". Especially with tech start-ups. Some devs don't appreciate how much work the rest of it is.

- What can a business type do to build trust with a programmer?

Listen, same as with anyone. You may need to poke them a little more than other people to get their "real" opinion sometimes but most coders are the same as everyone else.

- What motivates programmers? Success? Personal fulfillment? Money?

Tech, interesting tech or an exciting sounding project, then money. Sometimes its the other way round.

- What do programmers think motivates business types?

Money and politics (Alpha-malism)

Re: Ask HN: Seeking advice from programmers for non-programmers

#20
I'm a programmer by trade but I also have my own startup and have a decent amount of business experience. I'm writing this from a programmer's perspective though.

> How do software engineers perceive business types?

The idiots who constantly make bad decisions that cause programmers to work even harder and miss sleep.

> How do they come to respect or disrespect someone in this role?

"We promised we'd implement this feature to a very important client by next week. How hard is it?" Generally for a feature that is esoteric and nearly impossible to implement. And usually for a client that doesn't generate much revenue.

> How can I best approach a software engineer with an idea?

Talk to them. Ask their opinion. Most programmers love to know details, backstory, and to be part of the process.

> What can a business type do to build trust with a programmer?

Talk to them. Programmers hate to be asked or told to do something without knowing why. You'll generally get a better result if they know why the feature needs to be added instead of just telling them to put a button here that does this.

> Horror stories or success stories about these two worlds coming together in startup glory or catastrophe

I was employee #2 at a web startup that was barely in the black (perhaps just solvent) after about 5 years in business. I ran IT. The owners brought in an angel who invested a nominal amount of money for a ridiculous amount of ownership (47.5%). The angel brought in a CEO. The CEO brought in salesmen. I hired a few programmers and a network guy. The salesmen brought in even more salesmen. The CEO brought in someone to oversee me.

The CEO was a "big-bang" kind of guy so he immediately started pitching the product to anyone he could find. The product wasn't ready and hit all sort of problems. Lots of infighting and little political factions starting springing up between the new guys and the old guard. Both sides thought each other were idiots. We knew the market and the new guys had no experience with either web or the industry we were in. We knew how to save money and generate profit and they knew how to spend it.

Within 2 years there were at least 8 VPs in a 40-person company (only about 20 of them worked full-time onsite). By the time I left, the company had 60+ people on payroll, with about 10-15 of them being IT. There were probably a dozen VPs (I lost count and didn't care anymore), and was burning about $7M/yr with no sign of turning a profit. The "business types" are still figuring out how to make money, still over promising and under delivering, and just about everyone there hates the place.

> What motivates programmers? Success? Personal fulfillment? Money?

Challenge and accolade. A good programmer loves to solve puzzles and wants to be acknowledged for his or her work. Very few things are as deflating as busting ass on a feature that someone else gets all credit for. Programmers love toys- this includes fast hardware and good equipment. If your programmers don't have dual screens and a computer built in the past 12 months, something is wrong.

> What do programmers think motivates business types?

Ego. Resume building. Money. Job titles.

Post reply on HN