The Design of Software (CLOSED)

A public forum for discussing the design of software, from the user interface to the code architecture. Now closed.

The "Design of Software" discussion group has been merged with the main Joel on Software discussion group.

The archives will remain online indefinitely.

Fastest way to execute ideas...

I posted this on "Business of Software" but no one responded so hopefully I will get some feedback in this forum.

For a programmer, what is the fastest/efficient way to execute some of the brain stormed ideas?

1. Code it yourself
2. Outsource it w/detailed specs.
3. Use code generation software

Idea #1 has burned me out w/my last project after a while. When I try to outsource some enhancements, the programmers demand to either a)rewrite the code b) get entire source code to make enhancements. I didn't feel comfortable sending out entire source code to make very small enhancements that were clearly documented.

Idea #2, its very easy for the outsource company to sell my idea and code to my competitors.

Idea #3, looks most promising to me.

Any other thoughts on this?
Tuesday, February 01, 2005
As long as the code generator is decent.  A lot of them insert a lot of cruft that doesn't do you any good.

Also, a lot don't add the stuff that makes for a truly finished product.  That tends to require hand tooling.

Otherwise, people should use tools that make their lives easier.
Aaron F Stanton Send private email
Tuesday, February 01, 2005
Know of any good ones?
D. Lambert Send private email
Tuesday, February 01, 2005
If you ‘outsource’ the work, that makes you the boss.  The programmers should not be ‘demanding’ anything from you.  If they don’t want to work to your rules, find someone who will.  I think you are mixed up as to who works for who.

It’s not clear what you mean by ‘execute’. You don’t really execute a brainstorming idea. 

First decide if you are building the actual product, or just trying to get a quick and dirty prototype running.  Then you will have a clearer picture of what is the best course of action.  (Code generators may be fine for a prototype, but not for the final product.)
John Senior
Tuesday, February 01, 2005
michelle: "the programmers demand to either a)rewrite the code b) get entire source code to make enhancements"

One question you should be asking yourself (and them) is why are they demanding this? Either they are primadonnas who you want to filter out anyway, or they may have a real point - maybe an insight into the extensibility and flexibility of the existing codebase.

Even if it may not be what you're wanting to get out of the process, don't close your ears to things that may help you.
Andrew Cherry Send private email
Tuesday, February 01, 2005
Hmm, surely there are no code generators sophisticated enough for this task (yet). Or did you have something in mind ?

Or, is this a "clever" bit of marketing, as your product is in fact a code generator ? If so, refer to "The Last One", circa 1980s.
Nemesis Send private email
Tuesday, February 01, 2005
How about another choice: buy a commercial component set or library that does what you need? 

This may be a category of outsourcing.  But with regular outsourcing I assume you pay for labor to craft code that implements exactly what you need. 

In contrast, the commercial solutions available are not priced on a 'per hour' basis and are likely more general in nature, but often are easy to adapt to your purpose. 

Outsourcing could get quite expensive (and be slow and have lots of risk) even if you're paying third-world development rates.  Commercial components and libraries are priced on a totally different scale; since they're semi-mass-market solutions the price being charged is a tiny fraction of what it would be if you paid to have it developed from scratch just for you.  Of course, the components are a more general purpose tool that does more than you need and that will take some time to tailor to your specific situation.  But, still, I think commercial components and libraries are often the best solution.  You get big time leverage for relatively small-time cost.

(Of course, open source components and libraries can be good too, if available and if they're licensed appropriately, i.e., MPL or some other commercial friendly license, not GPL.)
Herbert Sitz Send private email
Tuesday, February 01, 2005
Simply by the way you are asking the question, I would venture a guess that you are not a professional programmer yourself.

Other than that, you question has so many unknowns that it is practically impossible to answer it. How much money and time you have? How big you think is your project? If you have enough time, you can learn how to program and do it yourself.If you have enough money, you can hire a better/more reputable programmer..If you have neither, you can offer a programmer sweat equity and see if someone is interested..

oh!! and code generation tools do not work..

My personal suggestion is that: after your write your own, sit with someone who is good at proramming and have them review your design and code. It would help you figure out the correct options.
Vaidhy Send private email
Wednesday, February 02, 2005
My thoughts:

If the product is good, it *will* have competitors.

You're thinking, yeah, but I want to be first to market, and I need N months to deliver it. But -- they too need N months to deliver it.
Alex Send private email
Wednesday, February 02, 2005
5 years ago I started implementing a community site for a special ethnic group. It took me couple of years to build a good size user base and get rid of all the bugs. I spent couple of hours a day programming for those 2 years. Even though I had few thousands users but only few of they paid and instead of making thousands of dollars a month, I made only few hundred a month. Even worse, some of the portal community sites started targetting my client base and my income dwindled from few hundred a month to less than hundred a month.

Since I coded the whole thing myself, I promised myself not to code and instead spend all my energies into business development and writing requirements. I thought that next idea would be much better executed if I focussed on business analysis and requirement documenting and leaving the programming to offshore people.

I have not found much luck with offshore people lately either because the good ones either want to rewrite or want the entire source code to make any enhancements. I just feel lost and depressed and I don't want to repeat my past mistakes.

I would rather execute 6 ideas/year than 1 idea for 6 years.
Wednesday, February 02, 2005
1. Code it yourself in python
fool for python
Thursday, February 03, 2005
No, Ruby.
Alex Send private email
Thursday, February 03, 2005

Have you considered why the good ones want to rewrite the application?

Either way, it seems to me like a communication problem. If you want to outsource, find a good programmer and keep him/her on a permanent retainer.
Vaidhy Send private email
Thursday, February 03, 2005
He wanted to rewrite it because he thought that the application is poorly written. He could rewrite it for lets say $3000.00. I would rather pay $20/hr to make enhancements for detailed speced out page. My old crappy code is doing fine and all I want are enhancements and bug fixes. Seems like I have to do them myself :==)
Thursday, February 03, 2005
Michelle, Maybe you could build a simple API for connecting the main body of your code to the parts you want the programmer to help you write?
Seun Osewa Send private email
Thursday, February 03, 2005
Michelle, it depends what you really want in the end.

If your coding is more important then either re-code yourself, either find someone who will do it. The question is at what price and how long it will take.

If the results are more important (=the revenue and profit you make in the end), then do *whatever* it takes to get there. Rewrite the specs, rewrite the code, etc.
Stefan Send private email
Friday, February 18, 2005

This topic is archived. No further replies will be accepted.

Other recent topics Other recent topics
Powered by FogBugz