Take the 2-minute tour ×
Webmasters Stack Exchange is a question and answer site for pro webmasters. It's 100% free, no registration required.

I am the first developer in a large scale web project, in the real estate sector. I am not an expert in any field, I know the basic of all, programming, databases, something about design and a little bit about SEO, and website optimization / caching. And I have some knowledge about other technologies and stuff that could be required in the project.

So I am a developer, my boss does some drawing on a paper to present me his ideas and then I start programming and I show him the result. Until now there was no problem, but now the web application is large enough, and it lacks a little bit of database optimization and intuitive user interface. Beside the website, the project also has an offline newspaper, and a desktop application that is a reduced version of the online one, both this things are not managed by me, but by other people or developers that are external to the company.

We do not use a collaboration tool for sharing knowledge between the people working on this project, just emails, and we do not use a development methodology, as for the team, we are: the developer(me), a designer, a secretary and the boss.

I have the possibility to ask the boss hire the people I want so I can increase the team and have the right person dealing with the right part of the project.

This is the story, the real question is, what should be my attitude towards the project and the company? Should I stay a developer and participate in taking decisions and organizing tasks from time to time to help the boss? Or should I get more serious about this and try to learn project management and implement everything I consider it's required to ensure the quality of the work and final results?

I am the one who best knows what has been developed until now, should I try to organize all the work and the team? Or should I ask my boss to hire some expert to do that?

I hope someone before has been in my position before and can give me any good indications..

Thanks!

share|improve this question

3 Answers 3

up vote 1 down vote accepted

There are multiple steps in designing a new project. The first step starts with the generic idea of what you want. Or in this case, what your boss wants. He provides you information and you write down notes and collect information about his precise wishes. Stay away from your computer, unless you just use it to keep notes!
In step two, you open your favorite text editor and start writing down a basic plan based on the ideas you've just collected. You determine your needs and make estimates about how long each feature will take to design, develop and test. You write a nice document and you let your Boss read it to make sure you're on the right track.
In step 3, you start designing some code examples, simple databases, some mock-up and whatever else to provide you more details on what needs to be built. You are at this level now! It's far from finished but it will allow you to divide the project in logical blocks. This is also a good point to start generating lots of diagrams, preferably UML diagrams, that will provide plenty of details of the whole project. This should give you more detailed information on all the parts of the project and to make better estimates of the time needed to finish each part.
Step 4 is basically the part where the workload gets divided. You know the parts, you know how long each part will take, approximately and you should have detailed information about what each part should do. Use this information to decide if you need more developers and let each developer write a technical design for the piece of the project that they will be working on. These technical designs then need to be reviewed to make sure they all fit together.
Writing code is step 5. Now the real code-monkeys will start working! All code written up to this moment will just have to be stored and might be used as reference material, but should NOT be used for production code without proper checks. Use a Source/Version Control System to maintain the code between all developers.
Still not ready, you now go to step 6, which is testing. Developers should never test their own code, or the code of their team-members. So you will need to find/hire some experienced testers who are willing to test the whole project. If you deliver your project untested, you will definitely lose customers and the value of your project will be next to nothing.
Finally, step 7: deliver the product to the users. For web applications, this means making the server accessible for the World.

I estimate that you're halfway step 3 at this moment. While whatever you've build might look great to you, don't even think it will be nearly finished! What you have could still be used for small-scale situations but you have a long road to go. You will have to pick some development methodology and you will need to start creating a lot more documentation. Functional designs, technical designs, UML diagrams and whatever more. And yes, this takes a lot of valuable time, but also keep in mind that all these documents can be used from a marketing perspective too! Your boss could use it to find investors, who can now examine what you're trying to create

You have a very small team so I would think you will need some additional help. I would suggest that you find two more developers and an additional tester. While your secretary could do some of the testing, their regular job will make it impossible for them to do complete tests. Most likely, they will click 5 buttons and then tell you it's broken... An experienced tester will tell you where the final product is having errors and where it stops following the original design!
And you? You should become a project manager! As you say, you have some experience but to build a large-scale project, you will definite need an expert. Preferably two or more. You would be their chief and you will be the one who will make the technical decisions. And the developers will first have to write technical documentation, which you will need to approve before they can write the code.
Don't stay a developer, though! You're too inexperienced to handle large-scale projects! You would be great to manage the whole project, but not to build it yourself!

share|improve this answer
    
Thank you for the detailed lifetime of a project and for your recommendation about managing the whole project! –  Alexandru Trandafir Catalin2 Nov 10 '10 at 18:21

A medium to large scale project has many points to observe. One step I really think you should go through along with project design is setting expectatives and service level agreements. I mean, you and your boss should define along with other requirements:

  • how many people we estimate to use our app?
  • do we need to worry about performance? (this question depends on previous answer).
  • if yes on the previous answer, what are the desired measures (max response time = 3 seconds at full load? 5 seconds? half second?)
  • how much data will we generate? do we need to worry about storage?

This kind of questions lead you to a better server and app sizing and design.

The first idea that cross my mind is to hire a designer to take care about UIs, effects, and so on. You already have one. That's great.

The second idea is to have a formal testing methods batch (unit tests, requirements reviews, software design reviews, ux testing, performance/stress/load testing). This can REALLY determine if you are done or if you still need to work polishing further.

With previous step, you can determine for example if the bottleneck is within database, application, server responsiveness (too many calls), and will help you to talk to your boss, show real data and say "we need to hire a DBA" or "we need a PL/SQL developer" or "hey, let's tell designer to use CSS sprites" or so on...

Hope this helps.

share|improve this answer
    
Hi buddy :) Thanks for the explanation, it will be usefull after some testing to decide who we will need to hire next! –  Alexandru Trandafir Catalin2 Nov 10 '10 at 18:23

So here some tipps from me. I find the other answers very good.
Maybe this is helpful maybe not . It worked for me ;-)

1) Find the very best genius and intelligent person to give you tipps. This is the most timesaving, so for me it is the most important one. (maybe one management person, one technical to discuss with)

2) With the help of Point one find what is the state-of-the art and find the absolute best people who can work with it.

So for instance if managing information is a relevant factor. (I have to guess if this relevant to you project or not.)

Consider OWL, which is part of the semantic web standards. A very good programmer can make an ontology, can index, and can reason about the data and give the most relevant results to users. Maybe all in 3 days of programming.

http://wiki.dbpedia.org/OnlineAccess
dbpedia_org/sparql

This is a simple interface based on OWL.

Or consider the programming language R (r-project.org). With R one could analyze market prizes, generate charts, answer a question like ‘is this a cheap prize for the property’, or maybe even make a forecast for the near future. R was even praised by the New York Times as a helpful tool.

share|improve this answer

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.