Today I’d like to share best practices that I use to make every project, that I work on, successful and few helpful tools to keep in touch with client. This article also gives detailed answer to the question
What will you get besides of great technical expertise if you start working with me?
Most of projects that I develop are hosted on my development server during the development cycle with no charge. So, let’s say your project is called CarsRental. Right after we start working together, you can see first results on a http://carsrental.goloborodko.com. Test server updates are essential after finishing of each
I upload working code to my server so client always keeps hand on his project.
Specifications, Technological stack & Database design
This is a very important steps of building a successful project. Having initial idea makes possible rapid prototype development but understanding of all the intricacies and vision of a post-prototype development is important for a database design. Common problem of most projects is an wrong database design that leads to a high code complexity. Another issue is wrong technological stack choice, that leads to poor scalability and makes problem fixing and support very costly. That’s why sometimes it would be faster to create project from scratch than to support existing code with bad architecture. My code is always supportable.
Version control systems are the standard of development and Git is a must for me. Using Git instead of FTP access gives oportunities to control code quality, commits history, tasks performace. I always have an exact copy of a server environment on my local machine so deployment becomes easy. Git branching makes post-production process quite easy when I can work on a new functionality while adding some tweaks and fixes to a live server with real customers.
I am a self-organized person. And Trello organizer helps me a lot to be even more organized in my work and personal life. It is really simple and poweful. Sometimes it’s enough just to use a simple GTD approach with few tasklists – ToDo, Doing, Done, but for a big projects where team of 4-5 developers and project manager works closely to client I use more task states and involve Product Owner to the development cycle.
Let me share an upproach, that I use when managing the project or doing a technical consulting.
- Tasks – new tasks that needs to be discussed with client. Usually processed by Project manager
- Frontend/Backend – two ToDo columns for developers according to their specialization. Usually processed by developers
- In Progress – gives a Project manager and Client an overview of tasks that are performing right now. Processed by developers
- Dev Server – tasks for Development server testing. Processed by Project manager and quality assurance engineer
- Live Sever – tasks for a live server testing. Processed by Project manager, quality assurance engineer and Client
Every website needs administration – content management, users management, entities management, reports, etc. Usually I start on an admin dashboard as soon as possible to give Client a tool to manage website on the early stages of development. I use a rapid prototyping approach for admin part creation – usually it’s bundles and code generation based on a templates with a further customization for a specific needs. Usually it contains users management, entities management (for example, for Cars Rental project it will be Cars, Deals), bills/payments management and payment or user registrations reports (daily, monthly, weekly). Complex projects could have more entities, for example, for a social football betting project we could have Clubs, Leagues, Matches, Scores, Bets, Users, Pools, Results, Predictions, Winnings, Transactions as a primary entities.
Reports and screencasts
My goal is to keep close connection to a client during a full development cycle. I handle regular meetings on skype/hangouts, provide daily/weekly reports on tasks and monthly/bi-weekly reports on hours. My clients are happy to receive screencasts recording about new features, milestone overviews and for manuals on how to maintain website.
Hope you’ve got some ideas that may be helpful for you to improve your project workflow. It works for me, hope, it will for for you and for us!
Get in touch with me to know more – I’m open to share my experience and expertise.