Your own project management: working with the developer
Posted on 16/04/2014
Web-developing services being in demand provoked the appearance of bulk of the developers who wish to meet this demand.
Suppose you have a few thousand dollars and you want to start up your own Internet product. It can be the site, telling about the existing goods and services, web application for user data processing or whatever you like. You have an idea, a desire, passion in your eyes and clear understanding of how your product should work, but you have no opportunity to perform it on your own. I am sure millions of people all over the world were and certainly will be in the same situation.
Here comes the discussion of the problems the businessman meets when addressing to the contractor - a web application developer. This article does not come across the topic of looking for a good choice but touches the important aspects of co-operation with already hired developer.
Purpose and tasks
Do not feel shy to share with the developer the general thoughts about system parts purposes. Every developer has some analytical abilities giving him the opportunity to focus on the details of the discussing object.
Technologies
In my argumentations I build on PHP as a basic technology for the web development. The pair PHP/MySQL is the simplest and the most common mean for your plans achievement.
Wish visualization
Any technician understands easily any schemes, diagrams and pictures. Large volumes of text as the description can be useful in case you unfold the details of working algorithm or any other sequence which can be visualized by a fifth-former. Speaking about the interaction of the end user and the future product system, one cannot do without visualization tools.
One of the simple tools that I recommend is utility named Pencil (http://pencil.evolus.vn/).
For example within a few minutes you can easily create the following login page model. You don't need to have any technical skills for it.

With such models you will have a more comprehensive picture about how things work in the system. It is important that in case you would like to have a complicated interface which varies depending on the user behavior you will need to have the templates of all possible interface modes. Here I touch quite a deep subject named UX (User Experience) which in the west is idealized and set up above the project technical side.
About the wheel invention
Like the doctors IT employees are divided into 3 types: designer, maker-up and developer. Some people can combine several abilities: for example one can meet the developer who can impose HTML and CSS, or the designer having skills in Photoshop and other graphics package who can impose HTML and CSS. Even less often one can meet the designer, maker-up and developer combined.
I believe that the focused expert can have more deep knowledge in the certain sphere but if you cannot afford to hire such kind of specialists you can make up your mind.
It is not a secret that many internet projects use readymade components (for example JavaScript libraries). Having the creative passion and desire to make an ideal product you are sure to have your system worked on all devices and browsers. Ready made CSS solutions like Foundation or Bootstrap will be helpful for you. Any backend developer can use such frameworks after 30 minutes manual reading.
I would like to note PHP frameworks which I work with and touched this topic in one of my articles.
Coding Style
It is natural when several people work with one and the same system at different time. In that case the rules observance, adjusting the appearance of the program code is necessary.
My personal preference is Kohana style defined here http://kohanaframework.org/3.3/guide/kohana/conventions.
Marking time
Your hired developer is the hostage of your circumstances but just imagine the builder dealing with the building front finds out the developer has decided to make the building several meters wider. Well, unpleasant feeling, isn’t it?
There is an approach named Agile which means using the loop coding, where before and after it the release version appears. Split the loops into smaller parts. This allows you and your hired developer feel more comfortable. After every performed task test your system with the developer and achieve system working capacity on each stage.
Even the budget can be divided into following parts.
Ideally, when you can afford:
- 1) to hire a designer who will create PSD model based upon your counterparts (from Pencil).
- 2) to hire the maker-up who will create HTML/CSS files based on PSD model.
- 3) to hire a developer who will "liven up" the system, connect soulless HTML with the database, add JavaScript code if the imposer has failed to do it.
Remind that the first and the second stage can be completed by getting the readymade mode at resources like themeforest.net. It will cost you from 15 USD but will save a lot of time.
Files Safety
The ability to use control version systems boarders on the trivial today. Bitbucket and Github are the best-known ones. Spend a little time to understand the work principles of these systems to get the profit from their introduction. One of the reasons of these systems usage is the possibility of project source files back-up. Another reason is the possibility to undo the editing without serious consequences in case there are sudden problems with new functional.
There is a possibility for the developer to see what code area he has edited and then the debugging will get much quicker.

Above mentioned picture has the example of the editing taken from Github.
A lot of developers get into a habit to work with Git like archives as the backups. I am sure such skills are a must-have for any developer.
About small parts
No matter how carefully you think over your site or system working process there are some details which are always hidden within. Any developer always asks a lot of questions. And it is an important sign of getting the right person. Let it look like a nuisance even sometimes the questions can be repeated all these is the sure sign the developer thinks and tries to understand what he should do. It can be handy if you discuss these details separating every topic.
For example basecamp or github issue tracker are suitable for it. A simple email correspondence is not always obvious when speaking about the long dialogue.
It is necessary to remember that unaccounted details can delay the performing of some work stages. It will be better if you add 20-25% of time to the timeline the developer has defined for the task performing.
Starting up the new project, you as a manager must know what you are doing but your contractor necessarily is a more competent specialist in this sphere than you. This idea is one of the delegation element described almost in every management textbook.
About ambitions
To my mind Donald Knuth told that “premature optimization is the root of all evil”.
Any successful project was and being rewritten for many times. Do not impose high requirements to your project at once.
There are plenty of ways to optimize the site or the system but if there is any reason to spend resources at the beginning?
For example why use Amazon S3 as a graphics archive if your current traffic is 10 visitors a day.
I believe it is wise to follow MVP idea (http://en.wikipedia.org/wiki/Minimum_viable_product).
About personal relations
I still remember one of my clients every hour asking me: "How is it coming along?" You guess what the end of that work was. Of course it was hard to explain to such person that sometimes I need to eat and sometimes go to the bathroom. One of my University lecturer said that the fail is 95% manager's fault and only 5% contractor's one.
But no means I claim that the developers are not responsible at all but the style and the tone of the work are set by the project manager.
The foregoing is the effort of my thoughts and experience transferring into some advice. That is for you to decide how good they are. I am sure the main thing is to enjoy how and what you do.
Sergey Koshkarev
April 16, 2014