To support their professional expertise, a modern programmer must constantly follow new technologies, learn new methods of solving problems (best practices), exchange experience, use auxiliary tools that accelerate the development process, should be able to work in a team and develop their knowledge and skills. The task of modern IT education is to meet the demands of the information technology market. Specialists should be provided with proper training, which will give them relevant professional competences. The present paper analyzes modern methodologies of flexible software development and tools, defines professional competences related to software development based on the standard of higher education for the specialists of the Bachelor’s academic level in Software engineering specialty. The novelty of the research lies in the justification of the competency-based approach to the training of future programmers. This approach involves the use of methods and tools for flexible development of software applications in three stages of project tasks of different types and complexity, which are formed in accordance with certain professional competencies. At Phase 1, students studied flexible methodologies and tools for developing software applications in the Software Design academic discipline. In Phase 2, flexible methodologies and software development tools were used during academic and technological practical training, in particular, students performed a group project according to the Scrum methodology, using Kanban approaches. In Phase 3, students worked individually on the Bachelor’s thesis under the guidance of a teacher. The article describes the organization of the work process on the principles of flexible development and flexible learning, presents the results of experimental research, which showed an increase in the level of professional competencies in software development. A statistical analysis of the results of the experiment has been carried out and their significance has been proved.