Training 01: Project Lifecycle & Business Technology Analysis
Software Project Life-cycle Concept Feasibility & Analysis Design-Development-Testing Implementation Support Decreasing uncertainty Increasing cost of change
Importance of each phase Concept Identify the problem & recommend a solution Analysis & Feasibility Define and scope the solution DDT Build the solution Implement Deploy the solution Support Maintain the solution
Agile Methodology Iterative approach to managing software development projects that focuses on continuous releases and incorporating customer feedback with every iteration. Scrum is a framework for agile project management that uses fixed-length iterations of work, called sprints.
Concept phase Defining the problem statement High Level scoping Solutioning Time & Price Estimation Final Deliverable: Proposal document
Feasibility & Analysis Business Requirement Docs – Scope definition Detailed Functional Requirements High level Technical Architecture Wireframes Time & Effort estimation Revisit Pricing Final Deliverable : Functional Requirements Document & Project Planning
Design-Development-Testing SPRINT 0-1 Detailed Technical Requirements Development environment setup Identifying & Writing test-cases for Business requirements Sprint 2-…. HTML Implementation Server Side coding starts Finalize Test Cases Sprint 3- onwards Code Requirements Test Requirements Identify and fix bugs Deploy code every week to a pre-production environment and provide the client access to pre-prod for feedback Pre Final Sprint Close all major bugs Deploy Final build on Pre-prod Run critical test cases on pre-prod Final Sprint Clean data from production Fix final issues Go Live activities
Implementation Actual migration of the solution to the production environment End User Training CAT/UAT Sign-Off from the customer
Support Hotfixes Fixing minor bugs Handover/training to client or in-house teams Final Deliverable: Lessons Learnt, Final solution documentation
Example Projects & Questions
Business Technology Analysis
What & Why What are the Responsibilities & Role ? Why? Managing Requirements Managing Client Expectations Liaison between Developer, Client & Tester Accountable for Quality Why? To reduce uncertainty Manage software delivery Improve value provided to the customer Build Better solutions
Do not jump on the solution! Where to start Voice of Customer Eg: I want to build something like Flipkart I want a WhatsApp like chat I want an asset management system I want a website/App Problem statement Definition Business Context List down Stakeholders/Business Sponsors Current v/s Future Business process mapping Impacted users Do not jump on the solution!
How to Document? Write down your understanding Structure your document Any gaps fill in with your assumptions Be prepared for iterations Use multiple types (presentations, docs, Infographics to portray same information)
Key Takeaways Project Life cycle Business Technology Analysis – Uncertainty in Projects should reduce as they move towards completion Cost of changes will keep increasing Using phased approach will help you maintain your sanity Agile – Scrum is methodology/framework to manage complex projects (Know when to use which tools) Business Technology Analysis – Customers wants everything you have to counter them with time and cost to help identify the priorities BA’s should manage the uncertainty Documentation should be your go to weapon Ask questions as many as you can? Go beyond the technology to understand the problem Get comfortable with negotiation
Questions & Discussions
Next Trainings How to build BRD? How to elicit Requirements? What are the tools available? How to manage Requirements?