Log In
Or create an account ->
Imperial Library
Home
About
News
Upload
Forum
Help
Login/SignUp
Index
GROWING SOFTWARE
ACKNOWLEDGMENTS
INTRODUCTION
Book Organization and Conventions
Company Growth Stages
Real-Life Accounts
Spreadsheets
Templates
I. DEVELOPMENT TEAM
1. GETTING STARTED
Finding Your Way in a New Job
Dealing with the Immediate
Maintain a List of Issues and Efforts
Delegate When Possible
Undergoing Initial Training
Collecting Information
Creating a Discussions Summary
Putting Your Summary to Work
Understanding the People
Reluctance to Reveal Information
Identifying the Company Culture
Learning the Technology, Process, and Product
Understanding the Customer
Understanding the Corporate Business Workflow
Back to the Big Picture
2. MANAGING A DEVELOPMENT TEAM
Understanding Your Core Management Values
Trust
Flexibility
Sincerity
Confidentiality
Respect
Empowerment
Communicating with Your Team
One-on-Ones
Project Communication
Team Meetings
Conflict Resolution
Training
Coaching
Motivating Your Team Members
Coaching Problem Employees
Reviews and Evaluations
Creating the Review
Delivering the Review
Providing Late and Deficient Reviews
Additional Reading
3. CREATING AN EFFECTIVE DEVELOPMENT TEAM
Effective Team Organization
Programmer Efficiency
Office Space
How Other Teams Communicate with Engineering
New Manager, Old Habits
Have Fun
Additional Reading
4. GROWING A SOFTWARE TEAM
Designing a Selection Process
Interview Traits
Technical Skills
Success History
Cultural Fit
Work Habits and Preferences
Industry Experience
People Skills
Communication Skills
Personality
Enthusiasm
Problem-Solving Ability
Sense of Humor
Pulling It All Together
Phone Screening
The Office Interview
Coaching Your Interview Team
Interview Sessions to Avoid
Marathon or Stress Interview
Hit-and-Run Interview
Lunch Committee Interview
Review Session
Making the Choice
Additional Reading
II. PRODUCT AND TECHNOLOGY
5. DEFINING THE PRODUCT
Product Definition Process
Product Definition Contents
The Whole Product Concept
Define the Product Using Prototypes
Prototypes in General
Quick and Nimble Approaches
Clickable User Interface Prototypes
User Interface Design
Build a Relationship with Marketing
Avoid Poor Relationships
Keep Marketing and Engineering Teams Together
Build a Balanced Relationship
Customer Perception of the Product
Surprise! Unplanned Features
Improving a Product in an Alpha Release
Understanding an Existing Product's Composition
Additional Reading
6. DRIVING RELEASES
Release Planning
Release Timeline
Early Release Strategy
Alpha Release
Beta Release
Limited Release
Planning Product End of Life
The Release Process
Release Criteria
Process Steps
Post-release Review
Release Version Identification
Three-Number Release IDs
Patch Releases
Component Numbers vs. Release Numbers
Numbering Across Releases
Software for the Gentleman Farmer
Additional Reading
7. EVALUATING YOUR TOOLS AND METHODS
Backing Up Intellectual Property
Backup Frequency
Offsite Copies
Disk-Only Backup
Creating and Managing Development Documentation
Source Control Versioning
Software Build Method and Timing
Software Release Process
Bug-Tracking System
Selecting the Right Development Tools
Additional Reading
8. ASSESSING YOUR TECHNOLOGY
System Documentation
System Scalability
Failure Modes
Error Handling and Messages
Software System Flexibility and Maintainability
Third-Party Packages Integrated into the System
System Application Programming Interface
Security
Data Reporting and Analysis
Data Warehouse
International Support
Looking at the Big Picture
Additional Reading
III. OUTSIDE OF ENGINEERING
9. WORKING WITH YOUR COMPANY
Company Culture and Practices
Corporate Style
Management Style
Meeting Style
Effective Meetings
Handling Interteam Problems
Growing Peer Relationships
Engineering Team Respect
Additional Reading
10. WORKING WITH THE CEO AND THE EXECUTIVE TEAM
Supporting Your Boss
Ensuring Clarity of Goals
Providing Useful Information
Communicating
Influencing Decisions
Collaborating with the Executive Team
Resolving Conflict
Taking up Your Mantle with Confidence
Opening Communication
Collaborating Effectively
11. LISTENING TO YOUR CUSTOMERS
Customer Satisfaction
Customer Meetings
Closing the Deal
When the Sales Team Overpromises
Requests for Quotes
Support and Customer Requests
IV. MAKING WORK FLOW: PROJECTS, PROCESS, AND QUALITY
12. PROJECT ESTIMATING
Building an Estimate
Creating a Task List
Creating Task Estimates
Considering Estimation Bias
Building the Estimate
Writing and Delivering the Estimate
Collecting Raw Project Data
Summarizing Data Using a Spreadsheet
Engineering Maintenance and Overhead
Additional Reading
13. STARTING A PROJECT
Understanding the Goal
Assembling the Project Team
Substitutions
Game Delays
Setting Priorities
Selecting the Framework
Mapping out the Timeline
Creating a Project Plan
Kickoff Meeting
Additional Reading
14. PROJECT EXECUTION AND TRACKING
Managing a Project's Execution
The Five Rules of Project Management
Project-Tracking Approaches
Gantt Chart
Project-Tracking Spreadsheet
Staff Assignments and Workload Balancing
Minimum-Typical-Maximum Tracking
Change Control Process
Risk Management
Additional Reading
15. DESIGNING A SOFTWARE DEVELOPMENT PROCESS
What's in a Software Development Process?
Types of Development Processes
Ad Hoc
Waterfall Process
Modified Waterfall Process
Iterative Process
Spiral Process
Agile Processes
Extreme Programming
Scrum Process
Other Processes and Approaches
Customizing a Process
Selecting a Process
Introducing a Process
Additional Reading
16. PROCESS IMPROVEMENT
Creating a Process Model
Define the Process Boundaries
List the Process Steps
Create a Flow Chart
Estimate a Range of Times
Create a Spreadsheet Model
Verify the Model
Analyzing the Process Model
Process Analysis in Action
Using the Model to Improve the Process
Case 1: Reducing the Maximum Time
Case 2: Reducing the Typical Time
Working with Other Teams
Getting It Going
Additional Reading
17. UNDERSTANDING QUALITY ASSURANCE
Importance of Quality
Quality Defined
Valuing Quality
Quality Assessment
The Quality Assurance Team
Team Skill Levels
Staffing Levels
QA Tools and Environment
Defect-Tracking Tool and Process
Building a Test Environment
Test Automation Tools
QA Activities
Requirements and Functionality Review
Test Plans
Test Plan Template
Creating Automated Tests
QA Processes
Defect-Ranking Process
Functionality and Usefulness as Specified and Built
Defect Selection Process
QA Metrics
Defects Found per Week Post-Release
Weighted Defect Count per Week
Weighted Customer-Found Defects
Percent of Tests Run During Test Pass
Defects Found in Test Passes
Defects Repaired per Week During Testing
The Impact of Defects on Quality and Productivity
Additional Reading
V. PLANNING THE FUTURE
18. SETTING THE DIRECTION
Listen to the Market
Create a Whole Product
Defuse Technical Time Bombs
Plan a Technology Overhaul
Optimize Customer Setup
19. PRODUCT ROADMAP AND STRATEGY
Creating a Product Roadmap
Evaluating Choices
Cost-Benefit Calculation
Cost-Benefit Comparisons
Creating One-Page Assessments
Project Components
Additional Reading
20. GOING FORWARD
A. SOFTWARE COMPANY STRUCTURE
Company Tasks
Typical One-Person Company
Typical Two-Person Company
Twelve-Person Software Company
Twenty-four to Fifty-Person Software Company
Hundred-Plus–Person Software Company
Hierarchical Structure
Matrix Organizations
Small Product Team
Flexible Project Teams
Conclusion
B. INTERNATIONALIZATION
Internationalization Questions to Ask
Translating Staffing and Costs
Database Considerations
Country and Language Requirements
Currency Questions
Dates, Metric, and Dimension Issues
Best Practice Approach to Internationalization
Locales
Translation Process
Quality Assurance
Database and Import/Export
Translation Firm
User Interface
Summary
C. CORPORATE WORKFLOW DIAGRAM
Creating a Simple Workflow Diagram
Workflow Example
COLOPHON
← Prev
Back
Next →
← Prev
Back
Next →