Process & Practice » Project Methodologies
AgileAgile software development is a conceptual framework for software engineering that promotes development iterations throughout the life-cycle of the project. A software development methodology is actually a strategy for success, and as such must prioritize objectives. An agile approach builds on a common framework of principles and practices, but even more important, one of those principles encourages us to adapt to change; to adapt to different objectives and constraints on a project. However, given the business environment today, there are certain challenges for which agile development excels.
It is a light-weight methodology that allows our teams to develop software in the face of vague and rapidly changing requirements for our valued clients. This light-weight methodology combines a set of principles, practices and processes that allows the Aprosoft development team to build software quickly and build software properly. The methodology can be successfully deployed in small, medium or large-scale business environments.
At the heart of the methodology is the Product Team. This team contains all of the skills necessary for successfully delivering a working software product. It includes people who perform the roles of a product owner, developer, architect, quality assurance, requirements engineer, business analyst, documentation specialist, and user interface designer. It also includes a person who is an actual customer of the product or who can act on the customer's behalf. This person plays a pivotal role in defining concrete requirements, prioritizing requirements and setting acceptance criteria for requirements. By working together, this team moves from initial concept to final delivery.
The specific agile features are iterative requirement determination, design, build, and deploy cycle. Users and developers determine requirements based on testing feedback and production support experience after initial deployments. The users rank the needed capabilities. The developers design and build a set of the highest ranked needs within a development cycle timeframe. If development of the set is taking longer than expected, the lowest priority items are deferred rather than slipping the schedule. The users test the developed capabilities and developers resolved any problems. The developed capabilities can then be deployed and the cycle repeated.
Modified AgileDepending on the project type and size, Aprosoft often employs a modified agile development process. Aprosoft has been using for the last two and a half years. The business problems solved by this development are extremely complex. Modified Agile made our development process less painful.
Aprosoft’s Modified Agile Development Model Features:
» 3 week cycles
» Early and continuous delivery of valuable software.
» Cycle planning with the Planning Game
» Estimation in precise units of time
» No committing to the source code repository unless the tests are successful.
» Every commit represents a fully functional system
» Update the test server every day
» Unit test of everything
» Close relationship with the managers and other business experts.
» Focus the business domain, not just on the technical needs
» Welcome changing requirements, even late in development.
» At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly.