Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

Some friends of mine came up with an idea for a web application which we (so far) think could be great. I made the analysis and all the early stages of the development process and I'm about to start the coding. I'm talking about something that is barely a mid-level project, so I consider one developer (myself) should be enough.

The thing is that we are trying to assign roles to each one of us so we can be focused on our duties and have clear our responsibilities within the team. We are a crew of four people, three of us (my friends) are business people who would do the marketing, customer relationship, management and accounting stuff and I'm basically the developer. I have in mind to get them involved into the development process by giving them documentation to write and use them as testers, all of that besides the management duties they have.

Perhaps someone out there have been in the same situation, so I would appreciate if the experience is shared so we can effectively give ourselves positions in the project based on what I explained above. Which are the essential roles or the optimal team layout so the idea can be developed successfully? The question is not strictly about programming, but it's related to build a software entrepreneurship beyond the code, that is something that I'm sure plenty of us are looking.

Any help is really appreciated! Regards.

share|improve this question
    
I take it that you have not read about Scrum yet. Have you seen this? en.wikipedia.org/wiki/Scrum_(development). You might want to read this and update your question with more specific details. –  S.Lott Feb 16 '11 at 17:03
    
Great resource! Surely I'll come back to update the question. Thanks a lot S.Lott. –  romeroqj Feb 16 '11 at 18:00
add comment

5 Answers 5

up vote 2 down vote accepted

When my friends and I (7 of us) began such a project, the one thing we agreed on was that no matter what happened, we would still be friends at the end of the project.

Now that the warm and fuzzy stuff is out of the way (-: here is how we managed things:

  • Strong team leader: Someone with a vision of the project, and someone to center us when the discussions got side tracked. Ours happened to be an officer in the Army/WestPoint. He kept us on track!

  • Weekly deliverables & documentation: We were responsible for completing items like requirements gathering (business & technical), to creating use & test cases (based on requirements), UML diagrams, mock ups, prototypes, etc., along with the relevant documentation. Having this document (about 400 pages at the end in our case) was very helpful.

  • Play to skill sets: Each one of us had very specific set of skills, and we were assigned/took aspects of the project that fit us the best. At the same time, several of us stepped in for others for whatever reason. We were respectful to not take over someone else's portion, but offered help/suggestions when we saw things weren't moving or getting off track.

  • Break project in manageable tasks: From Project Management, Data Model/DB design, Coding, UI, etc. Try not to be too granular, but that we found was more art than science.

  • Prototype early & often In retrospect, since we were doing this on a tight timeline, we should've created a prototyped and adjusted the requirements as needed. We used the waterfall approach, which worked in our case, but I think a rapid prototyping was more what we should've used.

  • Breaking the impasse: There will be a time when you will not agree on what path to take or what to do next. Give someone the authority to be the tie-breaker if things come to that.

  • Passion & Trust: We believed in our project, its goals and values. That kept us going with our work when the times got tough. And we knew we could rely and trust on others on the project -- not just to do their job, for us to have a honest discussion about various aspects of the project without any negative implications (If only I could bottle that up ... )

While our project didn't launch (another company beat us to it), we learned a lot from it. And yes we are friends to this day. (-:

HTH, good luck!

KM

share|improve this answer
    
Great answer, sometimes we tend to tight ourselves to specific titles! Excellent advices beyond the project itself, at the end what most exciting about is the opportunity to success along with our friends. –  romeroqj Feb 16 '11 at 23:38
add comment

First and foremost you need to let your friends, whom I assume are technically naive, that you cannot make an application over night that needs to work. Also, they need to understand hardware and software costs up front to work that into a budget. I would recommend an extra developer or at least more technically minded person as the documentation and testing you get out of them will not be very complete; Example being they are not going to test for SQL injection or XSS nor will they be able to create the functional spec that you will need to build off of if it takes off and you bring on more people. This is from my experience of having non-technical managers at what would be considered startups.

share|improve this answer
    
You assume correctly! XD Yeah, I'm gonna need some techincal backup on the fly to test the aspects you mentioned. What I realized a couple of days ago is the level of ownership that developers should take over the project to overcome those naive thoughts. Thanks for the feddback Woot4Moo. –  romeroqj Feb 16 '11 at 19:01
add comment

Two essential roles in the team that develops web-app (IMO) are:

  • Designer
  • Programmer

These two roles require significantly different set of skills. It's much harder to be good both at design and programming, so finding a good web designer is a worthy step.

You don't need dedicated testers at this stage, focus on unit tests and good code coverage instead. You also don't need database administrators (at least for now), since your site wont produce high server load for some time.

share|improve this answer
    
Considering the level of the project I can do by myself the unit testing and DBA. Agree, I must be worried about the designing part because programmers can suck at it (I do) and might become time consuming. –  romeroqj Feb 16 '11 at 19:12
    
Nikita, would also help kind of outsourced designing help? Or is a must to the designer to be involved 100% of the time? –  romeroqj Feb 16 '11 at 23:39
add comment

Invest in a good web designer. A lot of wep app developers make the mistake of doubling as a web designer, which is its own distinct skill set that is not necessarily something that comes naturally to a dev.

share|improve this answer
add comment

I think you need to start with three people:

  1. A project manager/business analyst/product champion to keep the chains moving.
  2. A server/IT ace.
  3. A programmer.

Some might argue that you can find someone who can do both #2 and #3, I disagree.

Server/security issues will unnecessarily distract your programmer.

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.