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
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