Operations 8 min read

13 Common Production Pitfalls Developers and Architects Should Avoid

The article outlines thirteen critical production‑related mistakes—from not externalizing configuration and using inadequate test data to neglecting security, documentation, disaster‑recovery planning, and proper capacity planning—providing actionable guidance for developers and architects to improve system stability and performance.

Qunar Tech Salon
Qunar Tech Salon
Qunar Tech Salon
13 Common Production Pitfalls Developers and Architects Should Avoid

Production‑related problems are gaining attention from middle and senior management, and developers or architects should heed the following issues to avoid future embarrassment and use them as a checklist for troubleshooting.

#1 Do not hard‑code configuration properties; externalize them in property files or XML. For example, making thread counts configurable prevents deployment‑time failures when moving from DEV/UAT to PROD environments.

#2 Use appropriately sized data sets in testing. Performance tests should employ realistic, untrimmed data (e.g., thousands of accounts) to uncover scalability and multithreading issues.

#3 Do not assume internal or external services are always reliable. Implement timeout handling, retries, and service‑interruption testing, especially for distributed, service‑oriented applications.

#4 Follow minimum security requirements. Perform basic authentication, use SSL/TLS, and run penetration tests with tools like Google Skipfish to prevent data leaks and denial‑of‑service attacks.

#5 Conduct cross‑browser compatibility testing. Modern web applications built with JavaScript frameworks (e.g., AngularJS) must be verified on various devices and browsers.

#6 Externalize frequently changing business rules. Use rule engines such as Drools and store rules in databases or spreadsheets to enable rapid adaptation to tax laws, regulations, or classification changes.

#7 Provide essential documentation:

Unit‑test documentation with good code coverage.

Integration‑test documentation.

A comprehensive inventory page listing all software components (classes, scripts, config files) that have been modified or newly created.

High‑level architectural diagrams showing component interactions and structure.

Setup guides describing how to configure development environments using data‑source details.

#8 Establish proper disaster‑recovery, monitoring, and archiving strategies. Use tools like Nagios and Splunk to monitor systems; lacking these can jeopardize stability and hinder diagnosis.

#9 Design database tables with maintenance‑friendly columns. Include timestamps (created_datetm, update_datetm), user identifiers (created_by, updated_by), and status flags (deleted, record_status) for easy data management.

#10 Create a rollback plan. Without one, recovering to a stable pre‑failure state is difficult; the plan should detail version reversion, data removal, and configuration cleanup.

#11 Perform capacity planning before project start. Specify exact OS versions, JVM settings, memory requirements, CPU cores, load‑balancer topology, and storage needs for logs, reports, and archival data.

#12 Avoid using the best tool only when not working. Do not adopt unsuitable languages or technologies (e.g., using NoSQL for relational data) and ensure chosen tools can be maintained for 3‑5 years or longer.

#13 Fill knowledge gaps in 16 key technical areas. Master concurrency, transaction handling, and performance tuning; these competencies are often decisive in securing new contracts.

Original Source

Signed-in readers can open the original source through BestHub's protected redirect.

Sign in to view source
Republication Notice

This article has been distilled and summarized from source material, then republished for learning and reference. If you believe it infringes your rights, please contactadmin@besthub.devand we will review it promptly.

Software Architecturetestingbest practicesSecurityproduction
Qunar Tech Salon
Written by

Qunar Tech Salon

Qunar Tech Salon is a learning and exchange platform for Qunar engineers and industry peers. We share cutting-edge technology trends and topics, providing a free platform for mid-to-senior technical professionals to exchange and learn.

0 followers
Reader feedback

How this landed with the community

Sign in to like

Rate this article

Was this worth your time?

Sign in to rate
Discussion

0 Comments

Thoughtful readers leave field notes, pushback, and hard-won operational detail here.