Every project awarded to us, we approach as a product of our own and realize the importance of putting up the right project team. Engineers should know how to work together, feel comfortable doing so and share the same philosophy.
We found the way to offer our clients a fair price for efforts of the experienced product development team. Our model is simple: no unnecessary staff, administration, nor sales staff to pay out commissions on. Only people, that matter to your project.
Drucode team knows that only continuous improvements and timely updates make online products successful in a long run. Constant productivity of a technical team and agile development - are the keys to success. They give opportunity to deliver new versions of product quickly and easily. Code quality improves gradually as team collaborates on each feature. On most projects, Drucode uses classic Scrum methodology for development.
Scrum methodology is a part of Agile development framework, with its strict, well-defined rules. There are certain roles (such as Product Owner, Scrum Master, Development Team), certain way to organize scope (Backlog and User stories) and to plan work (Sprints).
We try to get the full understanding of customer's business, philosophy, strategy, goals and expectations. Meetings are held in person: either in our or customer's office. Usually it takes us 1 or 2 days to learn all we need to proceed.
At this stage guys self-organise into a team. Depending on a skillset, level of interest and availability.
It is easier to understand a project fully, if all features are well-determined, structured and prioritized. We start from essential ones.
For team to stay focused, it is important to realize all stages, that the project is to go through. That's why we create project roadmaps: simple and efficient way to keep the team informed on important milestones, dates, events.
In the very beginning, we need to understand how users will interact with the product. To find it out we write/draw possible use cases.
We try to simulate user's expected behaviour and make it comply with the use experience we'd like to deliver. At this stage UI mock-ups are designed. That's how smart, user-friendly interfaces are born.
We believe in importance of beautiful, aesthetic designs. People must enjoy using the product, easily understand how it works.
In the process of UI prototyping, fundamental features may be re-evaluated. The entire team gets a better understanding of product's strengths and weaknesses. As a result, product strategy may be altered a bit.
Once list of features is determined - it becomes an early version of a product backlog. The list is put into task registration system. Further backlog organisation, prioritisation is performed. Now we are ready for the first sprint planning.
Team decides which backlog items will appear in the first sprint. During each sprint it is important to conduct daily stand-up meetings. All project team members should participate. Such meetings help to keep a track on the progress, identify possible difficulties at the early stages.
Usually it is a 4-hour meeting at the end of each sprint. Purpose of such meetings is to present sprint results, discuss project metrics, define mistakes and find the way not to make them in the future.
Pair programming can save you time. Depending on the challenge, working together at one computer gives better results, than working apart. Sometimes for the problem to be solved, it needs to be looked at from a different angle.
In most cases, clients that come to work with us- already have data for their websites. Or sometimes, while supporting the project, we face the task of protecting client's information. To secure the data on the client side, we use several proven techniques. The main directive, we adhere to in such matters, is the integrity of client's databases. All updates are implemented through the code. For each of the stages of development process, we use individual instance-environments.
Version control system. In our work we use Git. Thats a decentralized, flexible and very effective tool. Git was developed by Linus Torvalds, - the creator of Linux. There is great number of companies that rely on this system in their projects, including such giants like Google, Microsoft, Facebook and LinkedIn. In the capacity of our branching strategy we have been successfully using a model described by Vincent Driessen in his article A successful Git branching model.