Understanding the solution
Once we understand what the solution is to be, we first reconcile if your current set of systems and tools can fulfil the requirement. If not, we investigate if there is a product that can purchased. We hate reinventing the wheel. Our clients are our partners. The last thing we would want to do is get our partners to spend time and money on a solution that already exists.
Â
Once all of the above checks out, we are now ready to start development. The develop process is conducted using agile principals. High collaboration with incremental delivery.
How do we solve problems
The first and most important step for us is the analysis. Nobody writes a single line of code until we fully understand the problem and we have consensus as a team on what the solution is to be.
Â
Who is the team ?
The team is all role players and stakeholders. Technical and business resources. This is a critical component for the success of the project. The most successful projects are the ones with the highest level of collaboration in the team.
The First Development Tasks are Around Setting up a Project Structure:
A project structure defines the tools to be used to achieve a smooth development process.
Task and Defect management System
Tool used to capture user requirements and bugs
Functionality Prioritization
Priorities what is most important and what needs to get built in what order.
Code Repository
The safe and secure tool that stores the source code and allows collaboration between the Software Engineers.
Document Repository
Area to store securely store documents related to the projects that allows collaboration.
Role Players
Everyone is responsible. Business people, the Tester, the Technical Lead or the CEO if their input is needed in making the project a success. Software Development is a collaborative approach if you wish ensure success. We win together and loose together.
Delivery Cycle Length
Delivery cycles can be 1, 2 or 3 weeks long. We call this a sprint. It allows for enough time to get something meaningful done without the risk of doing something wrong and only finding out much later.
Collaboration Tools
Face to face collaboration is number one. Nothing beats it. However there are times we either cant have everyone in person together or it is more efficient to chat electronically. The team needs to decide the platforms used for collaboration.
Environment Preparation and Setup
Local
This is the environment running on the Software Engineers Machine. It is used purely for development purposes.
Development
Once the Software Engineer completes development of a feature, it is deployed to this environment so that other Engineers on the team are made aware early and determine that it does not affect other areas of the system.
QA
Mostly Testing takes place here. Functionality is tested, stability, performance and its effect on other systems. Business also used this environment to vett and sign off functionality.
Production
This is the live environment processing real data and servicing actual customers.