grokking techtalk #19: software development cycle in the international monetary fund (imf)

21
HOW SOFTWARE/APPLICATION IS MADE IN THE INTERNATIONAL MONETARY FUND (IMF) Mic Nguyen – Chief Technology Officer, Med2Lab, Inc.

Upload: grokking-vn

Post on 21-Jan-2018

185 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: Grokking TechTalk #19: Software Development Cycle In The International Monetary Fund (IMF)

HOW SOFTWARE/APPLICATION IS MADE IN THE INTERNATIONAL

MONETARY FUND (IMF)Mic Nguyen – Chief Technology Officer, Med2Lab, Inc.

Page 2: Grokking TechTalk #19: Software Development Cycle In The International Monetary Fund (IMF)

INTRODUCTION• Who is the International Monetary Fund?

• The IMF, also known as the Fund, was conceived at a UN conference in Bretton Woods, New Hampshire, United States, in July 1944.

• Membership: 189 countries• Headquarters: Washington, D.C.• Executive Board: 24 Directors each representing a single country or a group of countries• Staff: Approximately 2,700 + over 5000 contractors from 148 countries• Total quotas: US$668 billion (as of 9/13/16)• Additional pledged or committed resources: US$ 668 billion

• What does IMF do?• Promote international monetary cooperation• Facilitate the expansion and balanced growth of international trade• Promote exchange stability• Assist in the establishment of a multilateral system of payments, and make resources available

(with adequate safeguards) to members experiencing balance of payments difficulties.

Source: http://www.imf.org/en/About

Page 3: Grokking TechTalk #19: Software Development Cycle In The International Monetary Fund (IMF)

INTRODUCTION (CONT)• How big is the IMF technology team?

• Chief Information Technology Officer: Susan Swart• IT Staff: over 250 employees with advanced technology skills and degrees, and serve

in 189 countries world wide• IT Spending: Around $136 million per year

• What are types of technology that the IMF use?• All IMF employees have issued Apple devices such as iPhone, iPad, Mac computers

with the internal enterprise app store to enhance security and data protection• Microsoft technology such as SharePoint, Microsoft Office Suite and Visual Studio are

standard for communication, productivity and development• Who is making software/application for the IMF?

• The knowledge management and innovative division• Outside vendors• Financial department development team

Source: https://www.imf.org/external/np/bio/eng/ss2.htmSource: http://www.imf.org/external/pubs/ft/ar/2015/eng/fin-budget-income.htm#budget

Page 4: Grokking TechTalk #19: Software Development Cycle In The International Monetary Fund (IMF)

WHAT DOES THE IMF’S SOFTWARE DEVELOPMENT PROCESS LOOK LIKE?

Page 5: Grokking TechTalk #19: Software Development Cycle In The International Monetary Fund (IMF)

OVERVIEW SOFTWARE DEVELOPMENT PROCESS IN THE IMF

Requirement Gather ing

Design

Implementation

TestingDocumentation

Secur ity Audit

Deployment

1) Requirement Gathering: Collect requirements from all stakeholders

2) Design: Design software architect and structure

3) Implementation: Develop the application based on the design

4) Testing: Perform testing processes to capture bugs and errors

5) Documentation: Document both business and technical manual

6) Security Audit: Perform security validation to make sure software is ready for deployment

7) Deployment: Push application into the end user environment

Page 6: Grokking TechTalk #19: Software Development Cycle In The International Monetary Fund (IMF)

DEVELOPMENT ENVIRONMENT

Developer Sandbox Environment

Development Environment

Testing Environment

Staging Environment

Production Environment

1. Developer Sandbox Environment: Local development environment on each developer machine

2. Development Environment: Shared development environment where all developers put their code together

3. Testing Environment: Shared environment for testers to execute testing scripts4. Staging Environment: Replicate production environment to show project stakeholders5. Production Environment: Real environment where end-users use the software/application

Page 7: Grokking TechTalk #19: Software Development Cycle In The International Monetary Fund (IMF)

TEAM COLLABORATION

Project/Product Owner

Business Analyst

Project Manager

System Architect

UI/UX Designer

Developer

Tester/QA Engineer

Technical Writer

Sample Test Users

Project/Product team size: 15-20 people per team

1. Project/Product Owner: The one has the idea for the product or the project (Idea owner)

2. Business Analyst: Analyze all information to create business requirements and validate the requirements throughout the development process

3. Project Manager: Manage the project scope, budget, resources and time.

4. System Architect: Create/design system structure and architect. Involve in technology selection for project.

5. UI/UX Designer: Design wire-frames and interface of the application

6. Developer: Develop and implement application7. Tester/QA Engineer: Create test plan, test cases and

implement automate testing for the system8. Technical Write: Document both business and technical

manual 9. Sample Test Users: Perform User Acceptance Testing

(UAT)

Page 8: Grokking TechTalk #19: Software Development Cycle In The International Monetary Fund (IMF)

DO YOU KNOW WHAT TYPE OF THE SOFTWARE DEVELOPMENT METHODOLOGY

THAT THE IMF USES?

Page 9: Grokking TechTalk #19: Software Development Cycle In The International Monetary Fund (IMF)

SCRUM METHODOLOGY

Source: https://www.scrumalliance.org/why-scrum/core-scrum-values-roles?gclid=CKWG-d_J09QCFdcRvQodNAwPwA

Page 10: Grokking TechTalk #19: Software Development Cycle In The International Monetary Fund (IMF)

BUT… THE DIFFERENCE BETWEEN SCRUM IN THE IMF AND THE STANDARD IS….

IMF DOES NOT ALLOW ANY PRODUCTION DEPLOYMENT UNLESS THE PRODUCT IS 100% COMPLETED WITH SECURITY AUDIT. THIS IS AN IMPORTANT POLICY DUE TO

THE SENSITIVE INFORMATION PROTECTION RULE WITHN THE ORGANIZATION The standard SCRUM METHOD allows developers to roll out partial system

within the end of each Sprint.

Page 11: Grokking TechTalk #19: Software Development Cycle In The International Monetary Fund (IMF)

WHAT ARE TOOLS AND TECHNOLOGIES THAT THE ORGANIZATION USES TO DEVELOP

ITS SOFTWARE/APPLICATION?

Page 12: Grokking TechTalk #19: Software Development Cycle In The International Monetary Fund (IMF)

TOOLS AND TECHNOLOGIES

• IDE (Integrated Development Environment): Visual Studio, Xcode• Source Control and Task Tracking: Team Foundation Server with both TFS and

Git Repository• Team Collaboration: SharePoint and Office 365 Tools• iOS UAT Deployment: TestFlight• iOS Internal App Store Deployment: MobileIron• Cloud Platform and Infrastructure: Amazon Web Services, DevOps (Docker)• Web Technologies: .NET, PHP, Python, MEAN Stack• Native App Technologies: .NET, iOS (Swift)• Encryption Technology: Custom Endpoint Encryption with internal VPN

Page 13: Grokking TechTalk #19: Software Development Cycle In The International Monetary Fund (IMF)

INTRODUCE TO YOU THE IMF BROWSER AND THE INTERNAL IMF APP ECO SYSTEM

Page 14: Grokking TechTalk #19: Software Development Cycle In The International Monetary Fund (IMF)

THE IMF BROWSER

IMF Central Server Infrastructure with Advanced Security System

End users

End users

End users

ENDPOINT ENCRYPTION WITH VPN

The IMF Browser only works within IMF devices. It has• 2-endpoint 256 bit encryption with automatic VPN connection• Embedded permission and policy control• Advanced log system to detect abnormal activities• Instantly Report abnormal incident and auto lock down account

THE INTERNET

Page 15: Grokking TechTalk #19: Software Development Cycle In The International Monetary Fund (IMF)

INTERNAL IMF APP ECO SYSTEM

IMF CORE FRAMEWORK

Financial Apps

Business Apps

Research Apps

Prototypes

• IMF Core Framework is a continuous development framework that is developed by the innovation division.

• IMF Core Framework is the IMF secret weapon that allows developers to build a simple app within 25 minutes

• IMF Core Framework is secured connect to all internal IMF resources including databases, documents, policy control, servers. It is a combination of many smaller frameworks that work together as a network

• IMF Core Framework is only used internally in the Internal IMF App Store call the Internal IMF App Eco System.

Page 16: Grokking TechTalk #19: Software Development Cycle In The International Monetary Fund (IMF)

WHAT WOULD BE THE CHALLENGES WHEN DEVELOPING APPLICATION IN THE IMF?

Page 17: Grokking TechTalk #19: Software Development Cycle In The International Monetary Fund (IMF)

WHAT ARE THE CHALLENGES?

• The team might not be physically located in the same place due to IMF is the international organization. Therefore, time differences could cause the project to slow down. Meetings could be a challenge as well due to different time zone.

• Due to the complexity of each project, the development time may be delayed significantly because of bugs and software design problems.

• The team has to follow strict security process for software design and implementation which could cause some limitation for software development

• Sometime, the IMF Core Framework could cause some limitation when developing new application and force developers to implement everything from scratch

Page 18: Grokking TechTalk #19: Software Development Cycle In The International Monetary Fund (IMF)

SHOULD WE THINK OF APPLYING SOME OF DEVELOPMENT PROCESSES INTO OUR

CURRENT PROJECT?

Page 19: Grokking TechTalk #19: Software Development Cycle In The International Monetary Fund (IMF)

WHY IS SDLC IMPORTANT?

• Software Development Life Cycle (SDLC) is a GOLD standard for software development which is widely used around the world, especially leader countries such as United States, Japan, European countries…etc

• Applying SDLC helps avoid software development mistakes and improve efficiency and effectiveness

Page 20: Grokking TechTalk #19: Software Development Cycle In The International Monetary Fund (IMF)

WHAT DO WE LEARN FROM IMF?

We could APPLY:• Full Software Development Life Cycle and Scrum Methodology• Clean and Straightforward processes• Strictly follow all processes• Apply Security Measurement when developing a software• Develop Reusable(Framework) code for quicker future application

development

Page 21: Grokking TechTalk #19: Software Development Cycle In The International Monetary Fund (IMF)

QUESTIONS?