Unoffical empeg BBS

Quick Links: Empeg FAQ | RioCar.Org | Hijack | BigDisk Builder | jEmplode | emphatic
Repairs: Repairs

Topic Options
#332500 - 28/04/2010 01:59 Software developers - How can I manage one?
FireFox31
pooh-bah

Registered: 19/09/2002
Posts: 2494
Loc: East Coast, USA
How can I manage a software developer when I have no knowledge of the commercial software development process? That's the bottom line, you can skip the rest.

I have an idea for an Android app which is in demand and doesn't exist, so I want to create it as soon as possible. But, I know nothing about app development; only college-level Computer Science programming. To get the job done, I need a software developer. But again, I know nothing about the commercial software development process or how to manage a software developer. I may also need a database / web guy; another field I know little about.

To the developers and project managers among us, can you recommend any resources which can teach me how to successfully complete this project? Do you have any experiences with small business software development / project management which could help me avoid making "the same old mistakes"?

At this point, all I have is a software design and fundamental programming knowledge. I wish that would be enough to drive the project, but I imagine a million pitfalls:

- Should I use a contracted developer who'd leave at project completion, leaving me nobody to maintain the code? Or hire a developer, requiring me to provide long-term work to fill their time?

- How do I motivate a developer to be as dedicated to the project as I am? How can I reward them for their work?

- I don't know any of the industry best-practices and methods for development which a hired/contract coder may expect to be in place.

- How do I confirm the quality and security of their code?

- How do I secure the code and ideas from being leaked in a "work from home" telecommuting virtual workplace?

- Is there any reason to open source it? I'd like to use existing open source components, but what are the implications (security, stability, etc)?

- Is it even profitable to make mobile apps? Android first for quicker return on investment, then iPhone and pray I get into the app store.


This project is so exciting to me. I want it like I wanted empeg lit buttons, and other people want/need it too. I know I could learn the Android coding, database and web technologies enough to do this entirely myself, but that's just silly. I appreciate any advice you can provide to help me manage employees/contractors on this project. Thanks!!
_________________________
-
FireFox31
110gig MKIIa (30+80), Eutronix lights, 32 meg stacked RAM, Filener orange gel lens, Greenlights Lit Buttons green set

Top
#332516 - 28/04/2010 18:04 Re: Software developers - How can I manage one? [Re: FireFox31]
tfabris
carpal tunnel

Registered: 20/12/1999
Posts: 31600
Loc: Seattle, WA
I have a great idea for a product. It's an add-on to an existing product. I believe there's a market for it. Similar add-on products exist, but nothing exactly like this one. I think it might make money.

However, it's a physical product that would need prototyping and fabrication, using techniques that I'm not familiar with. Most likely some kind of plastic injection molding. The product is so simple that it's essentially a single molded piece of plastic, which, in large quantities would cost pennies per unit to manufacture, but could be sold for as much as 20-30 dollars per unit, retail.

And I would have no idea how to get into the retail channels for this product's market, no idea how to market it, nothing.

Basically, what I've got is an IDEA. That's all I've got. I don't even know if the idea is patentable, because it's simply a variant on existing ideas. I can choose to keep this idea to myself and try to manufacture and market it on my own, or I could choose to give or sell the idea to someone else, someone established in the marketplace who already has the manufacturing back-end, and attempt to get something out of it that way.

I'm essentially in the same boat that you are, and have all the same questions.
_________________________
Tony Fabris

Top
#332531 - 28/04/2010 19:10 Re: Software developers - How can I manage one? [Re: tfabris]
JBjorgen
carpal tunnel

Registered: 19/01/2002
Posts: 3584
Loc: Columbus, OH
I hear that software developers resist management and are generally unruly and unkempt. A strange breed. I wouldn't associate with them at all if I were you.
_________________________
~ John

Top
#332536 - 28/04/2010 19:17 Re: Software developers - How can I manage one? [Re: FireFox31]
sn00p
addict

Registered: 24/07/2002
Posts: 618
Loc: South London
I replied to this earlier this morning, but just as I was previewing my reply, my power cable fell out and I lost it, so here's take 2.

Originally Posted By: FireFox31

- Should I use a contracted developer who'd leave at project completion, leaving me nobody to maintain the code? Or hire a developer, requiring me to provide long-term work to fill their time?


Either way it's going to cost $$$, decent software developers are valuable.

Originally Posted By: FireFox31
- How do I motivate a developer to be as dedicated to the project as I am? How can I reward them for their work?

Quite simply, a decent paycheck should provide a decent motivation for any developer, it looks like you want a freelancer so their motivation is going to be getting paid and moving onto their next paycheck.

Originally Posted By: FireFox31
- I don't know any of the industry best-practices and methods for development which a hired/contract coder may expect to be in place.
Not quite sure what you mean here? Do you mean design paradigms?

Originally Posted By: FireFox31
- How do I confirm the quality and security of their code?
Unless you're a decent software developer yourself, you can't. You have to trust them. I can make rubbish code look decent and decent code look rubbish.

Originally Posted By: FireFox31
- How do I secure the code and ideas from being leaked in a "work from home" telecommuting virtual workplace?
You can't, again it's trust, an NDA might give you a 'false' sense of wellbeing though.

Originally Posted By: FireFox31
- Is there any reason to open source it? I'd like to use existing open source components, but what are the implications (security, stability, etc)?
You have to be very careful on your obligations when using open source code, for example:

BSD has advertising clauses, so you have to say "This product contains portions of..." etc.
LGPL (generally) requires you to dynamically link to the open source components. Any changes you make to the LGPL code must be made public.

GPL (in basic terms) requires you to make available the source code to your product upon request to whoever has obtained the binary from you, that person is then able to freely distribute the sourcecode wherenever they want, they can't however relicense the code under a more restrictive license.

Originally Posted By: FireFox31
- Is it even profitable to make mobile apps? Android first for quicker return on investment, then iPhone and pray I get into the app store.
If profitability is the aim of the game, I would have thought that aiming to get into the iPhone app store would be the number one aim.

Top
#332542 - 28/04/2010 21:03 Re: Software developers - How can I manage one? [Re: sn00p]
wfaulk
carpal tunnel

Registered: 25/12/2000
Posts: 16706
Loc: Raleigh, NC US
Originally Posted By: sn00p
BSD has advertising clauses, so you have to say "This product contains portions of..." etc.

The advertising clause was removed in the late '90s. So some BSD-licensed code requires that, and others don't. You have to look and make sure.

The upshot is: if you're using anyone else's code, make sure that you understand the license restrictions before you commit.
_________________________
Bitt Faulk

Top
#332551 - 28/04/2010 23:22 Re: Software developers - How can I manage one? [Re: sn00p]
Dignan
carpal tunnel

Registered: 08/03/2000
Posts: 12341
Loc: Sterling, VA
Originally Posted By: sn00p
Originally Posted By: FireFox31
- Is it even profitable to make mobile apps? Android first for quicker return on investment, then iPhone and pray I get into the app store.
If profitability is the aim of the game, I would have thought that aiming to get into the iPhone app store would be the number one aim.

Obviously this is getting trickier and trickier to debate. I'd tend to agree with you, but I think it depends on several things.

First, he mentioned he had an idea for an Android app that doesn't exist yet. That says to me that it might exist for the iPhone (and chances are that it does). I'm assuming it's not a tip calculator smile

Also, like he said you can get into the Android app market a whole lot faster than the App Store.

It's true that the audience is much larger on the iPhone, but I can see there being benefits to going Android first. Plus, as an Android user, I'm happy to see someone aiming there first. There's enough people doing it the other way around already smile
_________________________
Matt

Top
#332556 - 28/04/2010 23:40 Re: Software developers - How can I manage one? [Re: Dignan]
gbeer
carpal tunnel

Registered: 17/12/2000
Posts: 2665
Loc: Manteca, California
Sit down and write a specification. Describe what is to be accomplished by the software, and how the UI is to function/look.

edit: Then get someone you trust to read it and see if they understand it.


Edited by gbeer (28/04/2010 23:41)
_________________________
Glenn

Top
#332563 - 29/04/2010 01:26 Re: Software developers - How can I manage one? [Re: gbeer]
FireFox31
pooh-bah

Registered: 19/09/2002
Posts: 2494
Loc: East Coast, USA
sn00p: Thanks for both of the replies. You've confirmed my concerns

Quote:
- I don't know any of the industry best-practices and methods for development which a hired/contract coder may expect to be in place.

I've seen developers on this BBS mentioning coding methodologies they use. "Sprints", iterating customer demands for clarification, Q&A testing (Tony mentioned the MS process once and it blew my mind), etc. I created an application for a small business so I've been through some of these steps, but I'm assuming there's an industry standard set of steps for managing the development process. A freelance or hired developer may expect to work within that process and I don't know it. Learning it would save me from reinventing the wheel.

Quote:
Sit down and write a specification. Describe what is to be accomplished by the software, and how the UI is to function/look.

Now that, I can do, and do very well. With a team of only two or three people, there will be a lot less tree swings.

Matt: Android first, on principle and on business practicality. The Android version would clarify demand for the app, fund the iPhone version, and help resolve first gen issues. And it can continue to gain traction and generate demand while it waits in the Apple App Store approval queue. Heck, maybe even write a web based HTML5 version while waiting for Apple to approve it. Seems like the best way to do business these days.

Tony: A clever compliment? Thanks. Or do you actually need plastics manufacturing and marketing help? I know just the guy. smile

Thanks for your input.
_________________________
-
FireFox31
110gig MKIIa (30+80), Eutronix lights, 32 meg stacked RAM, Filener orange gel lens, Greenlights Lit Buttons green set

Top
#332564 - 29/04/2010 01:52 Re: Software developers - How can I manage one? [Re: FireFox31]
hybrid8
carpal tunnel

Registered: 12/11/2001
Posts: 7738
Loc: Toronto, CANADA
It takes about 2 weeks to get approval for an app for the App Store. You can sign up now and get all the registration stuff out of the way. If your developer has a Mac, it's likely not going to cost any more to develop an iPhone version first. It will likely be developed quicker, depending on how complex the app is. The UI layer stuff, if standard, should be very quick.

I would think that even with low sales you'll have a much higher and faster return on the iPhone. Is anyone actually making any money with Android apps?

If this is an Android-centric app or there's already a healthy competitive landscape on the iPhone, then go for Android first. Otherwise, I don't see any benefit of doing the Android version first. In fact, if it's a good idea, someone may very well implement an iPhone version after hearing/seeing your Android version - before you get a chance to do it.

BTW, when hiring a developer, the most important thing to see is other work they've done. A resume or talk about what they've done, in the end, doesn't mean shit. Neither does where they went to school. Or if they went to school.
_________________________
Bruno
Twisted Melon : Fine Mac OS Software

Top
#332585 - 29/04/2010 16:51 Re: Software developers - How can I manage one? [Re: FireFox31]
canuckInOR
carpal tunnel

Registered: 13/02/2002
Posts: 3212
Loc: Portland, OR
Quote:
I'm assuming there's an industry standard set of steps for managing the development process.

Hahahahaha. /me wipes away a tear. Oh, that's rich.

Quote:
A freelance or hired developer may expect to work within that process and I don't know it. Learning it would save me from reinventing the wheel.

FWIW, I'd ask the developer how they like to work. If they're really capable, they should be able to guide you through their process. The current hype is to use the Agile method -- that's where the "sprints" come from. Essentially the application is broken into small chunks of work, each of which deliver some business value on completion. Each chunk of work should take no more than, say, 3 weeks (the length of a "sprint"). Every day you can get a 5 minute synopsis of what he did yesterday, what he plans on working on today, and any roadblocks he's facing. The point of this isn't to micro-manage, it's to find out about the roadblocks and problems as early as possible, so that you can remove them (or adjust your expectations). Note that it's the developer who will tell you how much he can get done during a sprint. It's your job to prioritize features.

As someone who has done a bit of telecommuting on a software development project, all I really needed was a) access to a code repository on a server somewhere (you should control this... I'm partial to git), b) remote access to any systems/resources that I'd need to do the work (in this case, if the developer doesn't already own an Android phone, you may need to provide him with one... no need to pay for service, however), and c) some of your attention when I need clarification of specs, or other feedback. The hardest thing to get was (c).

Top
#332586 - 29/04/2010 17:05 Re: Software developers - How can I manage one? [Re: hybrid8]
canuckInOR
carpal tunnel

Registered: 13/02/2002
Posts: 3212
Loc: Portland, OR
Originally Posted By: hybrid8
BTW, when hiring a developer, the most important thing to see is other work they've done. A resume or talk about what they've done, in the end, doesn't mean shit. Neither does where they went to school. Or if they went to school.

Your hiring practices, then, would miss a lot of good people. I can't show you any of the work I've done in the last decade, because it's proprietary, under NDA, and not distributed outside the company it was written for. Furthermore, I don't keep copies of it -- not only would that be a breach of my NDA, it would be completely unethical. All that I can do is show you my resume, and talk about what I did in general terms -- perhaps providing more specifics about the architecture of some sub-components. I'm hardly the only developer with such a background.

And, FWIW, just because I show you "other work I've done", doesn't mean I actually did it, any more than what's on my resume is true. I can show you a very efficient file copy routine I "wrote" the other day... if by wrote, you mean copied off the internet, but oops, I forgot to mention that when I showed it to you.

Top
#332587 - 29/04/2010 17:21 Re: Software developers - How can I manage one? [Re: canuckInOR]
hybrid8
carpal tunnel

Registered: 12/11/2001
Posts: 7738
Loc: Toronto, CANADA
No offense, but I wouldn't hire you to work on a project like the one being described in this thread. There are many developers writing proprietary code for a living, but they should still have something recent to show that is public. In this type of job, just like in other creative jobs, you should be prepared to show a portfolio - that goes a lot further than a resume.

So while some good people would be missed, it also cuts out a lot of chaff right off the bat.

When I want to see the goods, I want to see a completed project, not a routine, and the developer should be able to explain how it was conceived, developed, what stumbling blocks they had, what tools were used, etc. Someone with a track record isn't going to be pulling code off the net. Someone with any exiting reputation isn't going to need to either.

If hiring someone green, then they may not have a tremendous amount of code written on their own. But they should still have some. Someone fresh out of school who has not worked on their own software (anything really) isn't someone I want to touch (ever again). It's potentially (and always in my experience) a sign they lack passion and self-motivation, as well as creativity.

I've worked with some great people and I've worked with some real duds in the past 20 years.

For a first-timer, it might make sense to go to a small "shop" or "studio" that specializes in taking an idea from concept to completion. There should be no shortage of those at the moment, with decent client lists and published (public) examples of their work. It would be difficult for someone who hasn't dipped their toe into this industry to audit whether a particular sole developer has all the skills that will be needed for the concept as it evolves.
_________________________
Bruno
Twisted Melon : Fine Mac OS Software

Top
#332588 - 29/04/2010 18:06 Re: Software developers - How can I manage one? [Re: gbeer]
tanstaafl.
carpal tunnel

Registered: 08/07/1999
Posts: 5549
Loc: Ajijic, Mexico
Originally Posted By: gbeer
Sit down and write a specification. Describe what is to be accomplished by the software, and how the UI is to function/look.

edit: Then get someone you trust to read it and see if they understand it.


One aspect that no one has mentioned is that even though you have the idea in your head of what you want to do, by the time it is done it will be very different from what you currently imagine.

The only recent development I've been involved with wasn't really software, well, I guess it was after a fashion: it was a very complex sales entry form for a radio station. I had lots of help from Paul Grzelak, and also some help with VB macros from a bbs member whose name escapes me now... Alvin something or other I think. Anyway, when I say complex, I mean like this:

=IF(NOT(ISERROR(SEARCH("FLEX[",X18))),VALUE(MID(X18,SEARCH("FLEX[",X18)+5,SEARCH("]",X18)-(SEARCH("FLEX[",X18)+5))), IF(AH18>1,(ROUNDUP((INT((F18-B18+1)/7)*(AH18-1)/AH18),0)*(Q18+R18+S18+T18+U18+V18+W18)) + D117,(ROUNDUP(INT((F18-B18+1)/7),0)*(Q18+R18+S18+T18+U18+V18+W18)) + D117))

The point being, in the process of developing this spreadsheet, we kept discovering better things to do and better ways to do them. We'd look at something and say "Wouldn't it be neat if..." and sure enough it would become a must-do improvement. Someone who today looked at the final result and had ten minutes explanation of what it did could sit down and duplicate the functionality of it in a couple of days, maybe less. In our case, from the first workable prototype to the final magnificent form was about a three year odyssey. In appearance the prototype and the final version weren't that different, just a matter of refinement. But in power and functionality it was like comparing a Schwinn to a Harley Davidson.

As you work on the project, you will constantly come up with ideas to make it look better, work better, and increase functionality, until eventually you have to draw a line in the sand and say "This is it! No more!"

Be prepared to spend a lot of time getting to that line.

tanstaafl.
_________________________
"There Ain't No Such Thing As A Free Lunch"

Top
#332599 - 30/04/2010 01:26 Re: Software developers - How can I manage one? [Re: hybrid8]
FireFox31
pooh-bah

Registered: 19/09/2002
Posts: 2494
Loc: East Coast, USA
Bruno and canuck, thanks for the interesting insights. I'm taking notes.

Quote:
I want to see a completed project, not a routine...

Since a developer is likely a part of a larger team, I'd have to see the project they contributed to and examine their part of it.

Another idea is to interview them and ask them how they'd solve specific problems. It'd be hard to rip off the Internet during an interview, and would show their higher level thinking. To me, syntax is far less important than the actual problem solving.

Quote:
to go to a small "shop" or "studio"

Thanks, I didn't know development shops would create apps designed by a client. That may be the way to go. It has some of the same downsides (they're the only ones who can maintain the code) and some new ones (my work will be fit in among their other clients).

Thanks again.
_________________________
-
FireFox31
110gig MKIIa (30+80), Eutronix lights, 32 meg stacked RAM, Filener orange gel lens, Greenlights Lit Buttons green set

Top
#332600 - 30/04/2010 01:47 Re: Software developers - How can I manage one? [Re: tanstaafl.]
FireFox31
pooh-bah

Registered: 19/09/2002
Posts: 2494
Loc: East Coast, USA
tanstaafl, thanks for that insight. Thankfully, I've been through this once while developing a custom small business application. Creeping Feature Creature must be kept at bay. That's why I believe in writing a strong design specification and searching for the roadblocks in the entire process before doing too much detail work. On my application, I did a proof of concept of every questionable function first. Then, putting them to use in the final program was straightforward busywork.

Quote:
As you work on the project, you will constantly come up with ideas to make it look better, work better, and increase functionality

I recently heard the following similar interpretation:
To write a truly solid program, you must write the entire thing, start to finish, three times.

During the first write, you learn how components will interact in ways you didn't initially plan, and you see how the limitations of the language shape your design. After the first write, the code will be a jumble of primitive and evolved ideas, but your design will be solid.

During the second write, you will learn how to best use the language for the finalized design, finding more efficient ways to achieve the known goal. After the second write, the code will again show different stages of evolution, but you'll know what works.

During the third and final write, your proven design shell will be filled out with proven optimal code, all at the same stage of evolution for consistency. This code is clean enough to begin a long life cycle.

One of my plans was for me to hack out a first write of the code, learning the syntax as I went. This would iron out my design and give me a proof of concept that I could shop around to developers (and begin building business partnership deals and raising funding). The developers would do the second (and third?) write to apply their knowledge of the syntax to my knowledge of the design at that deep level.

Is any of this even reasonable? Is app development easy enough for a copy-code-off-Usenet hack like me to make a first draft? Full disclosure, this app is complex, merging many technologies used by the big boys.
_________________________
-
FireFox31
110gig MKIIa (30+80), Eutronix lights, 32 meg stacked RAM, Filener orange gel lens, Greenlights Lit Buttons green set

Top
#332604 - 30/04/2010 07:32 Re: Software developers - How can I manage one? [Re: tanstaafl.]
tahir
pooh-bah

Registered: 27/02/2004
Posts: 1919
Loc: London
Originally Posted By: tanstaafl.
One aspect that no one has mentioned is that even though you have the idea in your head of what you want to do, by the time it is done it will be very different from what you currently imagine.


Having spent almost 2 years on a failed bespoke system for our business I concur. When it's from the ground up there are always different ways to do stuff, every turn you take has an impact on what were previously assumed to be core functions. Of course if there's anywhere that might be able to help you do this well it has to be this board.

Top
#332612 - 30/04/2010 15:29 Re: Software developers - How can I manage one? [Re: hybrid8]
canuckInOR
carpal tunnel

Registered: 13/02/2002
Posts: 3212
Loc: Portland, OR
Originally Posted By: hybrid8
No offense, but I wouldn't hire you to work on a project like the one being described in this thread.

No offense taken -- I wouldn't hire me for a project like this, either. smile

Quote:
There are many developers writing proprietary code for a living, but they should still have something recent to show that is public.

Why? I have far too many other hobbies to go home after writing code all day, and write more code so that I can have something "public".

Quote:
When I want to see the goods, I want to see a completed project, not a routine, and the developer should be able to explain how it was conceived, developed, what stumbling blocks they had, what tools were used, etc.

Funny... those are all the same expectations I've been encountering during the interview process, yet all of the interviewers have been satisfied with my ability to answer their questions without ever seeing the project. In other words, the ability of a developer to explain the project is not dependent on the ability of the developer to show you the end result.

Quote:
Someone with a track record isn't going to be pulling code off the net.

That's also not true. Someone with a track record knows when they're about to re-invent a wheel, or if something is out of their own sphere of expertise, and know enough to go look at what other people have done. It's called research. The difference between a good developer and a bad developer is that a good developer will take the time to understand what the code he pulled off the net is doing, and why, instead of just plopping the code into his own project. Furthermore, I've seen bad developers write their own (poor) algorithms for things where a good solution already existed just a google away.

Quote:
If hiring someone green, then they may not have a tremendous amount of code written on their own. But they should still have some. Someone fresh out of school who has not worked on their own software (anything really) isn't someone I want to touch (ever again). It's potentially (and always in my experience) a sign they lack passion and self-motivation, as well as creativity.

Oh. You're one of those. No offense, but you're not someone who I'd ever want to work for. I don't lack for passion, self-motivation, or creativity when it comes to my job, but software development is the last thing I want to do when I go home after a day of software development. I want to exercise my passion, self-motivation and creativity for other things, too. It's called balance, and I expect any (pontential) employer to understand that.

Quote:
It would be difficult for someone who hasn't dipped their toe into this industry to audit whether a particular sole developer has all the skills that will be needed for the concept as it evolves.

Amen to that.

Top
#332613 - 30/04/2010 15:34 Re: Software developers - How can I manage one? [Re: tanstaafl.]
canuckInOR
carpal tunnel

Registered: 13/02/2002
Posts: 3212
Loc: Portland, OR
Originally Posted By: tanstaafl.
One aspect that no one has mentioned is that even though you have the idea in your head of what you want to do, by the time it is done it will be very different from what you currently imagine.

The recognition of that fact is one of the prime drivers behind the Agile software development model, because "by the time it is done" changes meaning. There's none of this "throw the spec over the fence and wait for two years before you see the results." Instead you (the client) get frequent updates that you should be immediately able to use, so when reality starts to depart from "the spec," you can start to make adjustments much sooner in the development lifecycle.

Top
#332614 - 30/04/2010 15:53 Re: Software developers - How can I manage one? [Re: canuckInOR]
hybrid8
carpal tunnel

Registered: 12/11/2001
Posts: 7738
Loc: Toronto, CANADA
Originally Posted By: canuckInOR
I wouldn't hire me for a project like this, either. smile


Yes, it's important to remember what type of project we're talking about. So my points are in relation to this type of hire. I think some of what I wrote it being taken out of context.

Quote:
Why? I have far too many other hobbies to go home after writing code all day, and write more code so that I can have something "public".


If this is the type of job someone is likely to go after, or other freelance type work, then it's important to have a portfolio of sorts. If someone is in a 9-to-5 then it's not as relevant. For this type of hire, the employer isn't expecting that they will have to further train the employee. When you're contracting someone it's preferable that they hit the ground running, not spending the next 6 months learning Objective-C and how to use Mac OS.

Quote:

Funny... those are all the same expectations I've been encountering during the interview process, yet all of the interviewers have been satisfied with my ability to answer their questions without ever seeing the project. In other words, the ability of a developer to explain the project is not dependent on the ability of the developer to show you the end result.


Explaining can only go so far, and not everyone has the ability to explain. Of course if someone lacks that ability I'd also caution to stay away. smile I have extremely high standards, so it's important for me to see at least some work along with the explanation. I'd also look for someone who is comfortable with architecting good solutions. The second developer that I had working for me, I had to bloody architect everything and almost spoon feed them pseudo code. That was a nightmare. They were fresh out of school and thought $50k wasn't a good starting salary. They didn't even deserve $25k as a competent software engineer should have been able to perform without all the hand-holding and with at least three times the output.

Quote:

Quote:
Someone with a track record isn't going to be pulling code off the net.

That's also not true.


This is being taken out of context. My reply was directly to you having mentioned that someone would be dishonest and steal code to represent it as their own. That's what I was talking about. I'm not talking about using shared/public code where it's appropriate. There's a lot of framework and wrapper re-use in Mac OS development for instance and it's something I really appreciate and encourage - when the solutions are sound.

Quote:
It's called research. ... Furthermore, I've seen bad developers write their own (poor) algorithms for things where a good solution already existed just a google away.


We're in complete agreement here. The ability to research and know when to use existing code is also of paramount importance, and IMO, a valuable skill to demonstrate.

Quote:
Oh. You're one of those. No offense, but you're not someone who I'd ever want to work for. I don't lack for passion, self-motivation, or creativity when it comes to my job, but software development is the last thing I want to do when I go home after a day of software development.


Again, your situation is different. I was referring to someone out of school. I'm sorry, but if someone has just graduated and all they have to show is a resume referencing a bachelors (or college diploma), then I don't consider that very valuable unless I'm looking specifically for an extremely entry-level person. Not what I'd consider for, nor recommend for, a job like the subject of this thread.

A motivated and passionate coder will have written and designed all manner of projects, big or small, on their own time while at school. I'd rather hire someone who isn't even in school but has simply been writing code on their own with something to show for it. That's the only way you're going to find someone without job experience that does have experience with what you're looking for.

People used to be able to graduate from UofT with a CompSci degree without knowing a single line of C. Certainly without any GUI or Mac/Windows API experience. That stuff just wasn't part of the curriculum, so it was important to do stuff outside to gain some real-world experience, even without being part of the job force. That's where one could see an immediate distinction between a merely competent programmer (by-the-book, a regurgitater ) and an excellent one (a creative, an engineer, an inventor, an artist).


_________________________
Bruno
Twisted Melon : Fine Mac OS Software

Top
#332617 - 30/04/2010 16:17 Re: Software developers - How can I manage one? [Re: hybrid8]
wfaulk
carpal tunnel

Registered: 25/12/2000
Posts: 16706
Loc: Raleigh, NC US
Originally Posted By: hybrid8
People used to be able to graduate from UofT with a CompSci degree without knowing a single line of C. Certainly without any GUI or Mac/Windows API experience

Computer science isn't programming. It certainly isn't familiarity with GUI APIs. If you just want a code monkey, you're better off hiring someone with a "degree" from DeVry or equivalent.
_________________________
Bitt Faulk

Top
#332619 - 30/04/2010 17:14 Re: Software developers - How can I manage one? [Re: hybrid8]
canuckInOR
carpal tunnel

Registered: 13/02/2002
Posts: 3212
Loc: Portland, OR
Originally Posted By: hybrid8
Originally Posted By: canuckInOR
I wouldn't hire me for a project like this, either. smile

Yes, it's important to remember what type of project we're talking about. So my points are in relation to this type of hire. I think some of what I wrote it being taken out of context.


Ah, okay. I follow where you're coming from, now.

Quote:
Explaining can only go so far, and not everyone has the ability to explain. Of course if someone lacks that ability I'd also caution to stay away. smile

You've got my agreement there.

Quote:
A motivated and passionate coder will have written and designed all manner of projects, big or small, on their own time while at school.

I disagree with this completely. As a CS grad from UWaterloo, I neither had the time, nor the inclination, after spending 12+ hours a day in the lab or at class, to do projects on my own. However, I had a farly large body of class-work that I could talk about, in exactly the same manner, even if the projects were a bit more contrived. (And, by the time I was in final year, some of those projects were of my own devising, anyway.)

Quote:
I'd rather hire someone who isn't even in school but has simply been writing code on their own with something to show for it. That's the only way you're going to find someone without job experience that does have experience with what you're looking for.

I'm certainly not against hiring someone who's self-taught, with no school credentials -- that describes some of the best developers I've known. Smart people are smart people, regardless of their education status.

Quote:
People used to be able to graduate from UofT with a CompSci degree without knowing a single line of C.

Ignoring the fact that CompSci != Programming, that there are a plethora of languages beyond C (I didn't write any C for 8 years after graduating), and that it's the concepts that matter more than any particular language.

Quote:
Certainly without any GUI or Mac/Windows API experience. That stuff just wasn't part of the curriculum, so it was important to do stuff outside to gain some real-world experience, even without being part of the job force.

The industry that I went to work in (at the time I finished school) was predominantly running on IRIX (which then migrated to Linux). What good would Mac/Windows API experience have done me, or my future employers? I didn't have any GUI experience until a couple of years ago (when I started a project using PyQT), and no Windows API experience until about 3 weeks ago. Some of my friends ended up doing embedded software, and some doing telephony. My brother works for a bank coding complex statistical formulas. None of them have any GUI or Windows/Mac API experience.

Quote:
That's where one could see an immediate distinction between a merely competent programmer (by-the-book, a regurgitater ) and an excellent one (a creative, an engineer, an inventor, an artist).

Rubbish.

I'm starting to get the sense that you hold this opinion because you have a limited notion of what constitutes "real-world experience".

If you have a particular requirement for "must have experience in developing Android apps", then sure... you'll want to see someone who has actually written something for Android. If you get a resume from someone fresh out of school, then of course any relevant experience would have been gained on their own time -- unless their school has a course in Android app programming. But I sure wouldn't hesitate to interview someone who's resume included developing a proprietary Android app that was used on private company phones that were only given to, for example, repairmen sent to the field.

Top
#332630 - 30/04/2010 21:21 Re: Software developers - How can I manage one? [Re: wfaulk]
hybrid8
carpal tunnel

Registered: 12/11/2001
Posts: 7738
Loc: Toronto, CANADA
Originally Posted By: wfaulk

Computer science isn't programming. It certainly isn't familiarity with GUI APIs. If you just want a code monkey, you're better off hiring someone with a "degree" from DeVry or equivalent.


No kidding. But back in the early 90's CompSci was the only thing available if you wanted to be a programmer and go to university locally. There was no software engineering degree until later. People I know who were already competent programmers before university, went and did CompSci degrees. Some of them finished and others didn't bother.
_________________________
Bruno
Twisted Melon : Fine Mac OS Software

Top
#332632 - 30/04/2010 21:38 Re: Software developers - How can I manage one? [Re: canuckInOR]
hybrid8
carpal tunnel

Registered: 12/11/2001
Posts: 7738
Loc: Toronto, CANADA
Originally Posted By: canuckInOR

Ignoring the fact that CompSci != Programming,


Again, if you were hiring around here in the 90's chances are your university applicants would all have CompSci degrees. So in addition to the many programming courses that were mandatory for said degree, they'd also have a giant heap of math.

Quote:

that there are a plethora of languages beyond C (I didn't write any C for 8 years after graduating), and that it's the concepts that matter more than any particular language.


But that plethora isn't going to help you when you're looking for a C,C++ Obj-C developer. C was an example, I could have said anything else - other than Turing, which was UofT's big thing. If you're looking for a hire to hit the ground running you need someone with real-world experience, and if that person is fresh out of school, that has to come from their own efforts usually. Perhaps from part-time jobs or freelance, but extra code nonetheless.


Quote:
The industry that I went to work in (at the time I finished school) was predominantly running on IRIX (which then migrated to Linux). What good would Mac/Windows API experience have done me, or my future employers?


Well it's a good thing you weren't looking for a job designing/writing Mac or Windows applications. Again, it was an example.

Quote:
Rubbish.


My experience with (knowing, working with, designing for, talking with) hundreds of software engineers over the years has shown me different.

Quote:

I'm starting to get the sense that you hold this opinion because you have a limited notion of what constitutes "real-world experience".


No, I just know what I've required on projects I've lead and developed and I know what I require on some stuff I'm working on now. Again, I believe my points are quite relevant to the type of person being looked for as the subject of this thread.

Quote:

If you have a particular requirement


Bingo. Again, these are situations outside the expansive walls of a large corporation where you can ramp someone up over weeks and months and start them with an entry-level salary padded out with benefits. But even in such a situation, I picked out the super-stars from the average folk quite easily. ATI had a handful of super-stars, a ton of middle-of the road and unfortunately quite a bit of dead weight as well.

Quote:
But I sure wouldn't hesitate to interview someone who's resume included developing a proprietary Android app that was used on private company phones that were only given to, for example, repairmen sent to the field.


I would probably interview someone like that since they do have experience. However, they may not stack up as high as someone else with a little less on the job experience and simply more self-sprung Android hacking. You do want to get someone that has project-sense however, not simply someone who can write loose bits of code. They have to be able to grasp the bigger picture, see how things fit together and be able to work with the schedules and parameters you give them.
_________________________
Bruno
Twisted Melon : Fine Mac OS Software

Top
#332633 - 30/04/2010 21:43 Re: Software developers - How can I manage one? [Re: FireFox31]
hybrid8
carpal tunnel

Registered: 12/11/2001
Posts: 7738
Loc: Toronto, CANADA
Originally Posted By: FireFox31
Thanks, I didn't know development shops would create apps designed by a client. That may be the way to go. It has some of the same downsides (they're the only ones who can maintain the code) and some new ones (my work will be fit in among their other clients).


There are many companies offering complete iPhone (and I suppose Android) project development. Basically one-stop shops that will even handle non-code assets such as icons/graphics, sound fx, and even potentially marketing.

Any such hire/contract should leave you with a complete project which is well written and well documented, easily picked up by a future contractor/employee. I know that at least the ones I looked into a couple of years ago even had maintenance contracts. Obviously you won't be maintaining the code yourself, but I should hope you are paying for a deliverable you can easily re-deploy into the hands of someone else who can should the need arise.

Anyway, even a couple of years ago some of these places had very well written descriptions of what they do, including mock timelines. So you should take a look and see if you find something/someone you like and feel will fit within your budget and requirements. A lot of iPhone software is written this way.
_________________________
Bruno
Twisted Melon : Fine Mac OS Software

Top
#332634 - 30/04/2010 22:02 Re: Software developers - How can I manage one? [Re: hybrid8]
canuckInOR
carpal tunnel

Registered: 13/02/2002
Posts: 3212
Loc: Portland, OR
Originally Posted By: hybrid8
Originally Posted By: wfaulk

Computer science isn't programming. It certainly isn't familiarity with GUI APIs. If you just want a code monkey, you're better off hiring someone with a "degree" from DeVry or equivalent.


No kidding. But back in the early 90's CompSci was the only thing available if you wanted to be a programmer and go to university locally. There was no computer engineering degree until later.

Computer Engineering isn't about programming any more than Computer Science is. Maybe you mean Software Engineering? University of Toronto (if that's what you meant by local) started their Computer Engineering department in the mid-60's.

Top
#332635 - 30/04/2010 22:18 Re: Software developers - How can I manage one? [Re: canuckInOR]
hybrid8
carpal tunnel

Registered: 12/11/2001
Posts: 7738
Loc: Toronto, CANADA
Sorry, I did mean SWEng. You'll notice I had written "software engineering" elsewhere.

Anyway, back to the thread... FF, good luck with your searches and please update the thread if you find any companies you're interested in working with.

And Tony, are you interested in throwing any money into solving your plastics problem?
_________________________
Bruno
Twisted Melon : Fine Mac OS Software

Top
#332721 - 04/05/2010 13:29 Re: Software developers - How can I manage one? [Re: hybrid8]
matthew_k
pooh-bah

Registered: 12/02/2002
Posts: 2298
Loc: Berkeley, California
Spend time on your business plan. How big is your market? How much value are you delivering? How much will people pay? What will you have to spend to make a sale? Could you support your app with adds? Do you need a free and a paid version?

Then, find someone who is at least conversant in your market area, and spend time on your product. What does it do for me? What is the most basic feature set you can ship it with? What is the most important feature? The second most important feature? Write down all the features on note cards. Sort by value. Why are those things at the bottom even there? These discussions should be a back and forth. Lobby for your feelings but come to a consensus. You're already half blind to the needs of user.

Now, you have to chose between hiring a consulting firm vs hiring individual developers. I work for a consulting firm that does mobile and web applications, so I'm a little biased, but I've worked as a developer on a distributed team being hired individually off craigslist. In the end, the consulting firm should be able to eliminate (or at least reduce) the amount of technical risk. People that have done this before, do it every day, and can show you their previous projects that are similar to yours can give you a very good idea of what it will take to get your app going. Individual developers will be cheaper to hire, but will be much more difficult to judge.

Next, throw out to specifications. Write user stories that break down your features into a deliverable unit of work that you as the customer and as the user can verify works. "It has a log in system" -- no. "A user can log in" -- yes. "A user can log out" -- yes - and this can probably be done later in the development cycle, and no VC or demo watcher cares that you can log out.

Go to meet ups. Tell people about your idea. Don't make them sign NDA's, get them excited. There are no ideas that are so good that if you tell it to people they will instantly give up their idea and start working on yours. None. You're going to have to spend hours convincing them that your idea is better, and to come join you and make it work. Starting to get this speech down right now is better than waiting till you've got an audience with someone you really care about.

Resources
http://www.pivotallabs.com/ <- Where I work
http://www.pivotaltracker.com/ <-- How to manage the software development right
http://www.softwarereality.com/soapbox/nda.jsp <-- NDAs
http://steveblank.com/ <-- Minimum viable product

Top
#332745 - 04/05/2010 22:51 Re: Software developers - How can I manage one? [Re: matthew_k]
tanstaafl.
carpal tunnel

Registered: 08/07/1999
Posts: 5549
Loc: Ajijic, Mexico
Originally Posted By: matthew_k
You're already half blind to the needs of user.

!!

Many years ago (about 25 if memory serves) I was part owner of a radio station. The chief engineer and I created our own traffic/billing/accounting software on an 8088 system running Informix on a Xenix operating system. I did the system design, he wrote the code in C.

It was brilliant, compact, efficient, and so intuitively obvious in operation that the engineer and I were pleased that we had written in a few months time a better system for running a radio station than anything sold commercially... and the systems out there sold for about $100K.

Then we handed it over to the sales manager who was also the general manager, and his wife who did the accounting. It was completely incomprehensible to them. Things that were obvious to a pair of geek programmer nerds were completely at odds with how they wanted to do things, and since the software was written for them to use, not for us, well... you get the point.

To sum it up in a few words: your priorities as a programmer will not be the same as the end user's.

tanstaafl.
_________________________
"There Ain't No Such Thing As A Free Lunch"

Top
#332748 - 04/05/2010 23:41 Re: Software developers - How can I manage one? [Re: tanstaafl.]
hybrid8
carpal tunnel

Registered: 12/11/2001
Posts: 7738
Loc: Toronto, CANADA
That's when you hire a software designer, like me. smile
_________________________
Bruno
Twisted Melon : Fine Mac OS Software

Top