Agile Software Development Methodology
Discover how agile software development benefits our customers when it comes to quick delivery, adaptive planning and a flexible response to change.
Utilizing agile software development guarantees a flexible planning approach, continual enhancement through regularly updated prototypes, frequent status updates, and prompt responsiveness to rapidly changing circumstances—such as your feedback indicating a need for adjustment to a specific feature. This collective approach ensures the timely and budget-conscious delivery of your project.
Here’s what our agile methodology looks like in practice:
Project management practices
We leverage Agile, specifically the Scrum process framework, which has proven effective in overseeing intricate product development. Our teams excel at tackling complex adaptive challenges, ensuring the productive and creative delivery of products with the utmost value.
Our project management methodologies encompass the creation of tailored software, meticulously designed from the ground up. This demands a combination of a reliable, proven structure and project-specific creativity.
We adhere to well-defined principles in software development quality and utilize standard milestones as the foundation for our development processes. To obtain real-world feedback at the earliest opportunity, we break down your project into several sub-projects, enabling you to launch in stages.
Keeping your project on schedule
Ensuring timely software delivery commences with the establishment of a well-defined and realistic schedule. To ensure we’re on track we:
- Establishing compact, frequent milestones and deliverables enables us to receive regular, measurable updates on the project status and promptly address minor setbacks.
- Prioritize the scheduling of significant tasks initially, focusing on addressing the most crucial and potentially risk-laden features early in the project.
- Vigilantly monitor progress on a daily basis through a project extranet and conduct weekly status meetings to ensure both your team and ours stay aligned with the schedule.
A concise functional specification
Ensuring everyone stays informed and guaranteeing stakeholder buy-in for the product hinge on the development of a robust functional specification. This doesn't entail an overwhelming amount of technical documentation for you to navigate and understand. Instead, it involves a dynamic document and visual prototype that can evolve based on your feedback or market demands.
The prototype and functional specification are consistently updated and accessible to you via our secure project extranet.
Common development environment
For each project, we establish a uniform environment to ensure that every member of the development team operates on the same platform, utilizes identical tools, and adheres to a common set of coding standards.
Quality
Initiating with a thorough test plan that assesses functionality, performance, reliability, and compliance with requirements is where software quality begins. We uphold the belief that quality is a collective responsibility of the entire development team, extending beyond the sole domain of the Quality Assurance (QA) team.
Our goal is to establish a functional build (prototype) as early as possible in the project and maintain its working state while incorporating additional features. This approach ensures that software testers and our QA team can commence verification early in the process. We employ industry-standard issue tracking systems, such as Microsoft Team Foundation Server, to monitor change requests and defect reports throughout the entire life cycle of the project.
Communication
One of the major challenges in software development is communication, or the absence thereof. To mitigate this, right from the project's inception, we:
- designate a single-point of contact
- Utilize a secure project extranet to ensure that all involved parties have access to the most recent documentation and the latest project build.
- Maintain project knowledge in a collaborative portal to facilitate the monitoring of decision legacies and streamline knowledge transfer upon project delivery.
We also recognize the significance of internally sharing knowledge, ideas, and best practices:
- We extensively leverage our collaborative intranet, ensuring that the entire Geecon team can access and benefit from the knowledge and research of each team member.
- Our developers play a central role in weekly meetings, presenting the latest advancements in technology and innovation, exchanging ideas, and generating new concepts.
Meeting contractual commitments
We establish a close feedback loop between you and the project team, fostering transparency in the development process. To guarantee your project stays on schedule and within budget, we:
- communicate the “big picture” to the team so that everyone is motivated towards the common goalrewrite above paragraph without changing meaning
- Conduct daily team meetings to synchronize the activities of team members and ensure everyone is updated on the current status of the project.
- Employ an automated web-based time sheet system, enabling project managers to receive daily status reports from team members.
- Will promptly raise a flag if we observe anything deviating 'out of bounds' for any reason, be it changing requirements, slipping dates, etc.
Change and configuration management
Our Software Configuration Management (SCM) system integrates tools, processes, and teamwork to guarantee the delivery of superior quality software. While the functional specification serves as the software project's "bible," practical changes are necessary during development and after release in real-world scenarios.
Software changes undergo comprehensive planning, coding, testing, and release processes, mirroring the procedures of any other software project, whether it's part of an ongoing development project or a modification to a live system.
Source code control and version control
To handle source code and version control, we utilize Microsoft Team Foundation Server, a highly dependable and flexible system. All non-static inputs to the project, including, are subject to version control:
- source files
- test scripts
- design documentation and requirements documents
- end-user documentation
- graphics
Quality management
Our quality assurance Our testing strategies encompass both black box (manual) testing conducted by the Quality Assurance (QA) team and white-box testing conducted by the development team. Our process emphasizes that developers are accountable for delivering code without defects, enabling the QA team to concentrate on evaluating the product's state.
We engage in both white box and black box testing as we recognize that neither approach alone can expose all defects. Unit testing and peer code reviews, for instance, are effective in identifying potential vulnerabilities or performance bugs that may be challenging to detect through black-box testing. On the other hand, black box testing is instrumental in revealing defects like inconsistencies in the user interface, compatibility bugs, unexpected error conditions, and timing-related bugs, which can only be brought to light through manual human testing.