Defining technical specifications
To have a clear roadmap of the development we need to define technical specifications for the project together with a client.
It is preferable to do through few iterations of interviews with our lead developer, who will form a team and make software architectural decisions.
After this stage a client will receive next information:
- The technologies that will be used;
- Approximate deadlines of the first delivery of the product;
- MijnDev team members, that will be working on the product.
Forming a team
In order to keep the quality level we have a minimal team of four units that a client can hire for the product:
- Lead developer. Communicates with a client, collecting technical specifications, performs code reviews, designs application’s architecture. Schedule: On demand, depending on the stage of the project, up to full time
- Software developer. Develops the application, according to the specifications and Mijndev processes. Schedule: Full time
- Software tester (QA). Checks the application against the specifications, creates reports on bugs and communicates to developer and lead developer. Schedule: on Demand|Full time.
- System administrator. Sets up new servers, continuous integration and delivery system (Jenkins), git accounts and repositories, Jira projects, Hipchat integrations etc…)Schedule: on Demand|Full time.
Part-time (10+ hrs/week) or full-time developers
Part-time (5+ hrs/week) or full-time QA engineersAlso from time to time we add our interns to do non-critical, trivial tasks. This will cost our client no additional costs and will remove some load from full-time developers.
Setting up tools and Processes
After the initial technical specifications are set – it is possible to perform the setup of the tools, that will be used during the process of Agile development.
The minimal set of tools that is necessary for our processes to function is:
- Jira. With this task manager we can always see the current status of every feature/task. In Jira features/tasks of a client’s project are described with “tickets”.
- Bitbucket (Git hosting). This git hosting has good integrations with other Atlassian products, and is easy to use and maintain.
- Development server(s). The place, where a client, developers and QAs can test the features under development.
- Jenkins. The tool, that automates the testing and delivery of the product to testing, staging or live servers.
- HipChat. The chat application from Atlassian, that has robust integrations with all the tools above and cross-platform application clients.
We use Agile methodology with continuous integration and delivery.
Having short delivery cycles, the client is able to see the result of the work right after one feature is finished. All human errors during the delivery process are eliminated with the help of automated continuous delivery (Jenkins).
Lowering time-to-market it is possible to react faster on the changes of the market without sacrificing quality.
To read more about our development processes, check “Development process”.