Our Software Development Process

 

Development process (Why?)

  • Ensure project management success

  • Minimize business disruptions related to the software development cycle / bugs!

  • Communicate, communicate, communicate: ensure all stakeholders are aware of all changes, before implementation

  • Continue to deliver industry leading software

  • Optimize project delivery time and minimize cost and risk factors


Development process (How?)

Getting there:

  • Introduce full project management into all development activities

  • Business certification process to occur on all software releases; end user validation and sign off is a requirement

  • Conduct SQA (Software Quality Assurance) on all development projects

  • Distribute "Release Notes" to all stakeholders, prior to implementation

  • Formal testing environments that reflect the same architecture as production environments


Process High Level Diagram

process custom software solutions.png
Screen Shot 2017-08-23 at 3.10.50 PM.png

Development Methodologies 

Agile Software Engineering (Moderated)

Definition: Agile software development is a conceptual framework for undertaking software development projects.

  • Most Agile methods attempt to minimize risk by developing software in short time periods, called iterations, which typically last one to four weeks. Each iteration is like a miniature software project of its own, and includes all of the tasks necessary to release the mini-increment of new functionality: planning, requirements analysis, design, coding, testing, and documentation. While an iteration may not add enough functionality to warrant releasing the product, an agile software project intends to be capable of releasing new software at the end of every iteration. In many cases, software is released at the end of each iteration

  • Regardless, at the end of each iteration, the team re-evaluates project priorities

  • With our moderated approach to Agile software development, we conduct documentation for requirements, but these get centralized on our task management system which is IS Unified. As requirements change, the specific task reflects the change. This allows for documentation to be running along with a fast development process

  • All these iterations and communications get orchestrated via our IT Management System (IS Unified) which is updated in real time based on SQL Server transactions

  • We follow the Scrum process which prescribes a set of day-to-day practices for managers and developers; the practices are meant to embody and encourage particular values. Proponents believe that the exercise of these practices, which are traditional software engineering practices taken to a so-called "extreme" level, leads to a development process that is more responsive to customer needs (Agile) than traditional methods, and creates software of better quality


Scrum Project Activities

Our commitment to support

In order to stay on top of all business priorities we conduct the following project activities:

  • Daily Scrum chats: done via skype chat with all team members. Each member gives an update of the items done the day before and items to be accomplished the current day. During these meetings, project managers and clients also have the opportunity to steer development resources to high priority items and determine if further meetings are required to enable the work to be completed

  • Sprint planning sessions: these meetings take place at the beginning of each sprint and they are focused on establishing goals for the next 30 days of work. The project manager / team leader and client need to participate in these meetings in order to plan the work ahead and establish deadlines

  • Individual task meetings: these meetings are conducted on as needed, they run via "gotomeeting" and their purpose is to communicate and explain detailed business requirements for a specific task. The project manager and client are responsible for determining when these meetings are needed to run with specific development resources


Software Engineering

Pooled based approach

  • In order to keep business continuity and provide the best resources to a specific development task, we manage our development work via a pooled developer approach

  • With this approach, we match a task to a specific developer from our full time and part time development engineers

  • In other words, the developer with the most skills for a specific task will get to lead the development and ensure a successful implementation

  • For every development project, we ensure that at least four developers in our pool have the knowledge required to maintain the application. This provides knowledge redundancy and ensures extended support for our clients

  • When we initiate a development project, we divide the work in teams of two to four developers. This approach has proven to be extremely successful and allows for rapid SDLC

  • We also have a very positive attitude towards training and professional development. This is a key factor on keeping our engineers motivated and provides top quality knowledge to our clients


Technical Experience

  • We have 80 active developers and business / systems analysts in our engineering pool; however we have access to over 150 development professionals through our partnership with companies such as Data Perceptions, Procom and Microsoft Canada. In other words, if for some reason we do not have a specific skill set internally, we have the resources to get it in a very short time

  • We take pride in our constant training on new technologies as they become available. As a Microsoft Gold and Oracle Gold partner we have access to all new and emerging technologies before they hit the market