The Business Manager's Guide to Software Projects: A Framework for Decision-Making, Team Collaboration, and Effectiveness

This document was uploaded by one of our users. The uploader already confirmed that they had the permission to publish it. If you are author/publisher or own the copyright of this documents, please report to us by using this DMCA report form.

Simply click on the Download Book button.

Yes, Book downloads on Ebookily are 100% Free.

Sometimes the book is free on Amazon As well, so go ahead and hit "Search on Amazon"

Every day, successful software projects scale and sustain businesses of all sizes and across all industries. Unfortunately, the reality is that many software projects still fail. The reasons behind these failures are seldom due to the underlying technology. Misunderstandings and communication barriers lead to wrong decisions, missed opportunities, communication breakdowns, or worse―huge economic loss. In this digitally connected world, business professionals can’t afford to be hands-off on technical projects, but they also can’t be expected to have technical certifications. They have first-hand knowledge of the business processes, are subject matter experts in software requirements, and they finance the projects. Even C-level management or board members need to rapidly gain just enough understanding of technology to make mission-critical decisions for businesses to survive and flourish. In most software projects the number of non-technical stakeholders far exceeds the number of techies. This book distills the world of software projects into simple terms and relatable metaphors for even the most technically adverse reader. Real-life examples, entertaining analogies, and hand-drawn illustrations will stick with readers throughout their own software projects, bolstering their success. Business requirements, use cases, process flows―the list goes on. It’s all broken down in this game-changing book aimed at delivering for business and tech teams what DevOps has done for developers and operations. What You Will Learn Know the importance of good business requirements and how to write them Identify the most important business roles, key decisions, and critical activities involved in software projects Strengthen collaboration between non-technical and technical teams Grasp common software project terminology, required for non-techies Understand the software development life cycle Gain insight on the common software project methodologies and how they differ Understand what software developers do at a high level Who This Book Is For Non-technical business professionals (such as small business owners, startup founders, or employees of a business of any size or industry) who need to secure and implement a software solution. The reader may supervise or collaborate with technical teams, and may be a (beginning) software developer looking for practical insights and better ways to communicate with business colleagues.

Author(s): Jonathan Peter Crosby
Publisher: Apress
Year: 2023

Language: English
Pages: 308

Table of Contents
About the Author
About the Technical Reviewer
Acknowledgments
Preface
Introduction
Who This Book Is For
How to Use This Book
Structure of the Book
References
The Value of Metaphors
Chapter 1: Architecture and Construction
Chapter 2: Planning and Scope
The Right Dimensions
Hogwarts Castle—Keeping Within a Budget
Working Together
Ski Resort—Software Development Methodologies
Cranes—Knowledge Workers
Chapter 3: Teething Troubles
Conceptual Mistakes
Conceptual Mistake Example 1—Different Measurements
Conceptual Mistake Example 2—Where’s the Restroom, Please?
Conceptual Mistake Example 3—Where’s My Suitcase?
Conceptual Remedies
Fixing Issues Centrally—Why Is the Tap Water Dirty?
Beauty vs. Practicality
Chapter 4: Greenfield Construction
Houses and Cable Cars—To Buy or to Build?
Hollywood Façades—The Work Behind the Scenes
Chapter 5: Laying the Right Foundation
Sydney Opera House—Experimental Projects
The Show Must Go On—Complete Replacement
Chapter 6: Renovating and Extending
Unforeseen Work
Chapter 7: Technical Debt
Clearing Up the Mess
Three Heating Systems—Consolidating Redundancies
The Leaning Tower of Pisa—Adding New Features
Preserving Know-How
Chapter 8: Maintenance
Swimming Pool Water—Incomplete Data Loads
Occasional Maintenance Tasks
Chapter 9: Differences Between Physical Construction and Software Development
Chapter 10: More Metaphors
Dentistry—Choosing the Right Tools
Deep Roots—Linked Systems
Gently Down the Stream—Data Flow
Measuring Quality
Chapter 11: The Practical Side
Chapter 12: Plan and Prepare
Getting Off to a Good Start
Executive Support
Work Culture
Working Better Together
Integrating the Teams
Invest in Employees
Realistic Timelines
Managing Dependencies
IT Infrastructure
Supporting the Development Teams
Automation
Outsourcing
Accountability
Aligning the Strategy
The Benefits of Agility
Setting Out
Project Design
Project Success
Milestones
Project Organization
Responsibilities
Methodology
Managing Risks
Interacting Successfully
Active Listening
Effective Communication
Assumptions
Excessive Jargon
Ubiquitous Language
Differences of Opinion
Dos and Don’ts
Feedback
Motivation and Demotivation
Differences of Opinion
Managing Stakeholders
Communication Equipment
Software Project Culture
Leadership
Working Together
Fail Fast
Time Management
Business Logic
Thinking Things Through
Documentation
Chapter 13: Define
Buy vs. Build
Teams
Rockstar Programmer vs. Rockstar Team
Stakeholders
The Right People for the Job
Team Pitfalls
Requirements
Defining the Requirements
Waterfall vs. Agile Requirements
User Requirements
User Stories and Use Cases
User Stories
Use Cases
Elements of a Use Case
Decide and Be Precise
Your Dependency on Others
Your Impact on Others
System Interfaces as Contracts
Quality
Data Quality
IT Audits
Security and Data Access
Security
Data Access
Software Design
High-Level Design
Low-Level Design
Detailed Planning
The Trouble with Estimates
Prioritizing
Test Planning
Maintenance Planning
Handling Changes
Pitfalls—Part 1
Chapter 14: Develop
Getting Into the Flow
Effective Communication
The Right Tools for the Job
Design Patterns and Other Best Practices
User Interface
Software Versioning
Coding
Chapter 15: Test
Types of Tests
User Acceptance Tests (UATs)
Unit Tests
Integration Tests
System Tests
Regression Tests
Penetration Tests
Smoke Tests
Load and Performance Tests
Business Readiness Tests
A/B Tests
Test Automation
Test Data
Further Aspects of Testing
Chapter 16: Training, Going Live, and Maintenance
User Training
Support and Maintenance
Monitoring and Analytics
Going Live
Pitfalls—Part 2
Chapter 17: The Technical Side
Chapter 18: Coding and Design
Theme Parks, Jenga, and More—Structuring Code
System Interfaces
Scalability in Software Projects
Scalable IT Systems
Scale-Up
Scale-Out
Scale-Down and Scale-In
Reasons for Scaling
Bottlenecks
Sports Stadium—Software State
Chapter 19: Metaphors for Technical Terms
Who Are You? What Are You Allowed to See?
Winter Stock—Caching Data
To Wait or Not to Wait
Boomerang—Synchronous
Doing Something Else in the Meantime—Asynchronous
Fire and Forget
Airport Conveyor Belt—Memory Leak
Switch Off the Lights—Bits and Bytes
Chapter 20: Tricky Areas in Technical Development
Dates
State
Cache
Spot the Difference!
Interfaces to Legacy Systems
Testing and Test Data
Messy and Undocumented Code Base
Search Feature
Performance
Chapter 21: To Sum Up
Appendix A: Collaboration
Roles in Software Projects
General Project Roles
Scrum Project Roles
Manifesto for Agile Software Development
Principles behind the Agile Manifesto
More on Communication
Activating Our Senses
Choosing the Right Communication Channel
Meetings
Presentations
High-Speed Talking
Powerful Voices
Knowledge Sharing
Givers and Takers
Business Teams Making Their Own Tools
Appendix B: Glossary
Appendix C: References and Further Reading
Referenced Books and Publications
Referenced Online Sources
Further Reading
Index