I've been involved in two startups, and I won't "say" run away, but you
know I'm thinking it.
First startup had a great product - a virtual mall coded in flash
designed for dial-up modems (33kbps!) and looked fantastic. Problem was
it was written by a couple 18-year-old whiz kids who didn't know how to
document anything, and when the inevitable labor dispute came up, they
walked and the entrepreneur was left with undocumented, unfinished
code. The moral of the story is you must include time (and time is
money) for documentation. Pound this into their head. Document
requirements. Document test cases. Document architectural decisions.
Document engineering decisions. Document process flows and data flows.
Make this a brain dump. BTW - this will easily take as long as the
coding, but if you don't, when it breaks and you're not around, they're
screwed.
Extreme case #1: I set up a Linux box as a samba server, NFS server, and
DNS server. It has a custom backup script that backs up to a remote
server. My documentation is 40 pages.
Extreme case #2: I set up Symantec ScanEngine on a three Linux boxen
behind a load balancer. Custom script to convert Symantec logs to plain
text. 130 pages of documentation.
Extreme case #3: I set up 3 VMware heads with a NAS backend and a back
up server; three VPN servers; DNS and mail relay. 86 pages of
documentation.
Guess what? I never forget anything about these systems and whoever
takes over for me will know everything I do about them as well. It also
serves as proof of testing and if anyone ever says I didn't do anything,
the proof is in the documentation that I did what I claimed. Also, it's
fun to do destructive testing and put screenshots in the docs.
Regards,
George Toft
On 3/23/2014 9:38 PM, David Schwartz wrote:
I have some general questions relating to a programming project for a startup,
and someone suggested this might be a good place to post them.
A guy I know is involved with a start-up and they need to have a commercial
router reprogrammed for their specific needs. (I can’t address the why’s or
wherefore’s about this. That’s all they’ve told me thus far.)
Since this list probably has a fairly wide range of people on it, I figured a
few of you might know something about taking on projects for startups, and also
maybe even programming routers.
I found the product page for the router they’re interested in using, and it has
a link to download the GNU-licensed source code that they’re obligated to
distribute. It’s a tarball that contains a customized version of OpenWrt, an
embedded Linux distro designed mainly for use inside of routers and similar
equipment.
(see http://openwrt.org for more info)
I’ve looked over the OpenWrt site, and it uses Packages to allow you to add
your apps into a virtual file system. Since the router’s logic, as a Package,
wouldn’t be part of the distro, it’s probably not included in the tarball. But
the configuration screens may be.
Anyway, this guy wants me to talk with their tech dude about implementing
custom firmware for these devices.
I’ve never programmed routers before, but it seems like little more than taking
data packets from one port, filtering them, maybe translating and/or
transforming them, and sending them out of another port. I don’t know exactly
what they want done yet, so I don’t know why they need customized firmware.
Ignoring all of the specific, and keeping in mind that they’re a start-up and
are probably under-capitalized, I have the following
QUESTIONS
1) Generally speaking, how easy is it to find someone who has experience doing
this kind of work? (embedded Linux for equipment, including routers)
2) What would they normally charge? (ie., is it a super-specialty kind of
thing that would command a really high rate? Or would $50/hr be considered
reasonable?)
3) If they want to pay mostly or entirely in equity, how would you arrive at a
fair compensation rate? How much harder would that make it to find someone to
do the work?
4) I could probably learn what’s needed and do this for them, but it wouldn’t
be as fast as someone who’s programmed routers before. I’m trying to decide if
I’d be better off saying I’ll do the programming and everything myself, or take
this on as a kind of Project Manager and do what I can while finding someone
else to do the coding. They’d still be paid in stock, I’d imagine.
5) Assuming they have some kind of a spec, how much work would be involved
before you’d start coding? IOW, how much prep work would be needed before
you’re ready to code this? What I’m getting at here is this: is there a good
chance there’s 40-50 hours (eg., a full week) of prep work, like rebuilding and
tweaking the OS, verifying it can be loaded onto the device, figuring out how
to debug it live, and so forth? Or is this something that would take a day or
so?
6) How could I split this into some smaller deliverables for project management
purposes? (I’m just not familiar enough with embedded projects like this to
guess what kinds of milestones someone might set.)
Keep in mind this is a commercial product that they want to reprogram. The
vendor is going to be of little or no use in helping with anything. So we’d be
hacking this thing all the way.
I’m curious what your opinions are. Please refrain from things like, “turn and
run away as fast as you can!” I get that some folks won’t go near startups.
That’s fine. It doesn’t alter the fact that these guys are looking for someone,
and they’ll find them sooner or later. I’m just trying to get a sense of how to
negotiate with them and if it’s worth my while to consider taking it on it
myself.
Thanks!
-David
---------------------------------------------------
PLUG-discuss mailing list - [email protected]
To subscribe, unsubscribe, or to change your mail settings:
http://lists.phxlinux.org/mailman/listinfo/plug-discuss
---------------------------------------------------
PLUG-discuss mailing list - [email protected]
To subscribe, unsubscribe, or to change your mail settings:
http://lists.phxlinux.org/mailman/listinfo/plug-discuss