Tools and technology usage in PFMS application lifecycle management process LEPL Financial-Analytical Service, Ministry of Finance October, 2015 Dimitri.

Slides:



Advertisements
Similar presentations
Configuration management
Advertisements

Eralp Erat Senior Software Developer MCP,MCAD.NET,MCSD.NET.
Agile development By Sam Chamberlain. First a bit of history..
Visual Studio Team System (VSTS). Richard Hundhausen Author of software development books Microsoft Regional Director Microsoft MVP (VSTS) MCT, MCSD,
Mike Azocar Sr. Developer Technical Specialist Microsoft Corporation
APPLICATION DEVELOPMENT BY SYED ADNAN ALI.
Source Control Repositories for Enabling Team Working Svetlin Nakov Telerik Corporation
Chapter 25 – Configuration Management 1Chapter 25 Configuration management.
© 2006, Cognizant Technology Solutions. All Rights Reserved. The information contained herein is subject to change without notice. Automation – How to.
Visual Studio 2005 Team System: Enterprise Class Source Control & Work Item Tracking Ajay Sudan Microsoft Corporation
Software Configuration Management (SCM)
QWise software engineering – refactored! Testing, testing A first-look at the new testing capabilities in Visual Studio 2010 Mathias Olausson.
Development Best Practices Concepts & Microsoft’s Approach.
tinyurl.com/ProTFS2012.
Software Configuration Management
 To explain the importance of software configuration management (CM)  To describe key CM activities namely CM planning, change management, version management.
Version control Using Git Version control, using Git1.
DEV 303 Visual Studio "Whidbey" Enterprise Tools: Source Control and Work Item Tracking Brian Harry Product Unit Manager Microsoft Visual Studio.
Object-Oriented Analysis & Design Subversion. Contents  Configuration management  The repository  Versioning  Tags  Branches  Subversion 2.
1 Performance Optimization In QTP Execution Over Video Automation Testing Speaker : Krishnesh Sasiyuthaman Nair Date : 10/05/2012.
Software Quality Assurance
Copyright © 2015 – Curt Hill Version Control Systems Why use? What systems? What functions?
Computer Science and Engineering The Ohio State University  Widely used, especially in the opensource community, to track all changes to a project and.
Anubha Gupta | Software Engineer Visual Studio Online Microsoft Corp. Visual Studio Enterprise Leveraging modern tools to streamline Build and Release.
1 Chapter 12 Configuration management This chapter is extracted from Sommerville’s slides. Text book chapter 29 1.
Team Foundation Server 2010 Introductory presentation.
Version Control and SVN ECE 297. Why Do We Need Version Control?
Neil Kidd Developer Tools Technical Specialist Microsoft UK.
Step-by-Step Migration and Adoption Mark Michaelis Architect, Author, and Trainer Eric Lee Microsoft Product Manager Visual Studio 2005 Team Foundation.
A way to develop software that emphasizes communication, collaboration, and integration between development and IT operations teams.
TEAM FOUNDATION VERSION CONTROL AN OVERVIEW AND WALKTHROUGH By: Michael Mallar.
Connect with life Tejasvi Kumar Developer Technology Specialist | Microsoft India
JRA1 Meeting – 09/02/ Software Configuration Management and Integration EGEE is proposed as a project funded by the European Union under contract.
Source Control Repositories for Enabling Team Working Doncho Minkov Telerik Corporation
Configuration & Build Management. Why Software Configuration Management ? The problem: Multiple people have to work on software that is changing More.
1 Ivan Marsic Rutgers University LECTURE 2: Software Configuration Management.
Chapter 25 – Configuration Management 1Chapter 25 Configuration management.
Ognjen Bajić Ana Roje Ivančić Ekobit Efficient Application Testing.
 1- Definition  2- Helpdesk  3- Asset management  4- Analytics  5- Tools.
Introduction ITEC 420.
Building Enterprise Applications Using Visual Studio®
Build Fundamentals and Continuous Integration
Software Project Configuration Management
LECTURE 2: Software Configuration Management
6/13/2018 1:23 AM © 2009 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered.
Chapter 18 Maintaining Information Systems
Version control, using Git
Software Configuration Management
CVS revisions UML diagram
Introduction to Team Foundation Server 2010
API Documentation Guidelines
Team Foundation Server – Build-Deploy-Test Workflow
Visual Studio Advanced Features
LECTURE 3: Software Configuration Management
Continuous deployment best practices, methods and tools.
Gathering Systems Requirements
Quality Assurance in an Agile Development Team Michelle Wu 2018 PNSQC
Chapter 1 Introduction(1.1)
DAT381 Team Development with SQL Server 2005
Chapter 7 –Implementation Issues
SSDT and Database Project Basics
Open Source Tool Based Automation solution with Continuous Integration and end to end BDD Implementation Arun Krishnan - Automation Manager Maria Afzal-
Gathering Systems Requirements
Erik Vollebekk Application Architect
Mark Quirk Head of Technology Developer & Platform Group
Jamie Cool Program Manager Microsoft
Preparing for the Windows 8.1 MCSA
Software Configuration Management
SSDT, Docker, and (Azure) DevOps
Open Source Tool Based Automation solution with Continuous Integration and end to end BDD Implementation Arun Krishnan - Automation Manager Maria Afzal-
Presentation transcript:

Tools and technology usage in PFMS application lifecycle management process LEPL Financial-Analytical Service, Ministry of Finance October, 2015 Dimitri Rakviashvili, Head of Software Department

2 Agenda General principles of Application Lifecycle Management FAS approach to Application Lifecycle Management Discussion (Questions And Answers)

Application Lifecycle Management - Definition › Requirements Management › Software Architecture › Coding Activities › Software Testing › Continuous Integration › Project Management › Release Management › Change Management › Software Maintenance Application lifecycle management (ALM) covers product lifecycle management (governance, development, and maintenance) of application software.

Application Lifecycle Management - Mindsets ›ALM is not a methodology or process guidance ›ALM is set of tools (from perspective of our vendor) ›Various management templates are incorporated into environment, but ›A fool with a tool is still a fool (ITIL citation) ›Process development activities are still required to maintain software development process (will be covered later) › Requirements Management › Software Architecture › Coding Activities › Software Testing › Continuous Integration › Project Management › Release Management › Change Management › Software Maintenance ALM IS JUST A TOOLSET

5 Application Lifecycle Management - Challenges Software developers share common challenges. Some of these challenges include the following: ›Tool integration problems ›Poor collaboration ›Segmentation of roles ›Bad reporting ›Lack of process guidance › Bad Testing ›Communication problems

6 Application Lifecycle Management – FAS approach ›Toolset Vendor: Microsoft (There are a lot of other competing toolsets on the market) ›Toolset: Visual Studio, Team Foundation Server ›Current version: Planned upgrade: 2015 ›Founding principles, behind capabilities of selected toolset: ›Productivity ›Collaboration ›Manage complexity ›Integration ›Integrated tools (IDE) ›Role-specific tools ›Visibility ›Extensibility ›Team Foundation Core Services API ›IDE extensions

7 Application Lifecycle Management – FAS approach Project management and planning Work item tracking (WIT) Version control Test case management Build automation Reporting Team Foundation Server Virtual lab management

8 Application Lifecycle Management – Source (Version) Control: Basics ›“In computing, source code is any collection of computer instructions written using some human-readable computer language, usually as text.” (Wikipedia). ›So source code is just a text ›If you are a developer you live in a world of source code. And you need to somehow manage hundred of thousands lines of code ›“A component of software configuration management, version control, also known as revision control or source control, is the management of changes to documents, containing source code” (Wikipedia) ›If two developers work on the same file, how do you merge their code? ›How do you prevent accidentally overwriting files? ›So source control is advanced system, that is used to coordinate activities between developers. It is part of “collaborative” features of Team Foundation Server

9 Application Lifecycle Management – Source Control: Basic Operations ›Project Architect defines basic structure of solution and “uploads” it to Source Control system (shares it with group members) ›Developers download this shared source files on their machines, using Team Foundation functionality, integrated into Visual Studio ›Code is added or modified on developer’s computer. “Check-out” is used to make file editable and mark it as changed on source control ›When work is complete, code is then “checked-in” to source control using special groups of modified versions of files: “change- sets” ›Conflicts between changes are resolved by developers, using special tools and TFS functionality, integrated in Visual Studio Team Foundation Source Control System Project Architect Dev 1 Dev N

10 Application Lifecycle Management – Source Control: Basic Features ›Atomic check-ins ›Associate check-ins with work items ›Branching and merging ›Shelving ›Labeling ›Concurrent check-outs ›Follow history ›Check-in policies ›Check-in notes ›*Team Foundation Server proxy

11 Application Lifecycle Management – Source Control: Branching ›What if you need to have two different versions of source code at a time ? ›Let say group works on bug fixes of current planned iteration, but due to deadline tries to use remaining development time for coding activities of next iteration ›You need “branch”: copy of a set of files in a different part of the repository that allows two or more teams of people to work on the same part of a project in parallel. ›A “merge” is the process of taking code in two branches and combining it back into one codebase. Main Stabilization TimeLine Stabilization Coding AB C D parallelization

12 Application Lifecycle Management – Source Control: FAS approach to branching Code-Promotion Branching Model

13 Application Lifecycle Management – Source Control: Build ›Developer produces source code, but software needs to be built (compiled) to get working machine code (binaries) that can be tested and deployed ›What if application software is hard to build on local computer ? ›What if it needs a lot of separate component to be deployed in test environment to perform testing ? ›What if software is so complex and mission-critical, that existing regress possibility is not acceptable and should be minimized ? ›What if software publishing to test environment takes too much developer’s time and produces too much errors ? ›Team Foundation Build and Lab Environment helps to solve most of this problems. This technique is called Build-Deploy-Test (BDT) workflow and is used by FAS development team on daily basis ›It is example of Continuous Integration, Build Automation and Software Testing capabilities of Team Foundation Server

Lab Environment (The Deployments and Tests run on the environment) Application Lifecycle Management – Source Control: BDT Build Controller Build Agent 1Build Agent N Team Foundation Server Test Controller Test Agent 1 Test Agent N Test Controller is configured with TFS and the Test Agents are configured with the Controller Lab Manager Test Manager The Build Controller and Agents are used to queue a Build which executes the Build- Deploy-Test workflow Lab manager is used to create Standard Lab Environment to deploy build and run tests Test Manager contains Test Plan, Suites and Cases

Application Lifecycle Management – Source Control: BDT Summary ›BDT environments are organized per project collection ›Every current project is equipped with BDT environment ›There are over 30 virtual servers currently used for BDT ›Testing Part of BDT process is automated using Microsoft Testing Framework. FAS uses dedicated sub-unit of software department to manage test automation for all current projects. Test scenario automation is similar to regular coding process. ›Continuous integration, automatic testing are part of day to day activities ›Test results (Debug information, Screenshots, Videos) are delivered to investigator via TFS Infrastructure ›Described process (BDT) is highly dependent on Code Promotion project organization ›All of described activities are formalized as part of FAS software development processes

Application Lifecycle Management – Source Control: BDT – Testing Results Video

Application Lifecycle Management– FAS Approach: Manual Testing ›FAS uses Microsoft Test Manager for creating, managing and running Test Suites and Test Scenarios. ›FAS Testers also work in TFS integrated environment ›FAS developers get detailed information concerning bugs directly in IDE ›Automatic builds are used to update test environment with one click Team Foundation Server System Analyst creates Test Scenarios using Test Manager Tester runs Test Scenarios and generates Bugs and Test Results (Screens, Video, Comments) Developer fixes Bug, that contains all diagnostic information

Application Lifecycle Management– FAS Approach: DML, Deployment ›FAS uses Team Foundation Build to maintain Definitive Media Library. Retention plan is approved by management. Every production build is stored in TFS, according to retention plan. ›Production server update is automated interactive procedure, that uses builds stored on TFS Build Server. Stakeholders are notified automatically about updates. ›Configuration and version management is also automated using TFS. All deployment details are logged. Production Server Development Team creates and maintains Deployment Scripts and Gold Configuration Files System Administrator runs installation scripts on production server Development Team creates, maintains and runs production build Team Foundation Server, Team Foundation Build

Application Lifecycle Management– FAS Approach: DML, Deployment (2)

Application Lifecycle Management– FAS Approach: Project Management ›FAS uses Microsoft Solution Framework for Agile Development as a core Software Development Framework. FAS uses ITIL as a core infrastructure and process management framework ›FAS has developed custom strict management process implementation. There is official internal manual, that covers all activities, concerning software development and tools usage ›FAS development processes are technically managed using ALM toolset › Requirements Management › Software Architecture › Coding Activities › Software Testing › Continuous Integration › Project Management › Release Management › Change Management › Software Maintenance ALM Toolset MSF Management Frameworks ITIL

Application Lifecycle Management– FAS Approach: Project Management (2) Change Management › Testing and Evaluation Process Release and Deploy Management Incident Management Problem Management Continuous Service Improvement ITIL Processes MSF Core Process Implementation of Customer’s Functional Requirements Issue and Request Management Hot-Fix Management Refactoring and Improvement FAS Processes Knowledge Management ›Tip: Project Teams, Areas, Iterations and Boards are organized according to this process structure

Thanks for your attention! Please feel free to ask questions.