Telerik blogs

Learn how to be a productive and effective software tester despite the work-related chaos that frequently surrounds application development.

Professional software testers are frequently faced with large and complex workloads in addition to bouts of work chaos. Application software development in general remains prone to mood swings despite the prevalence of several successful development methodologies and standards. Agile software development in all its versions is a successful way to organize work. More formal types of development are also successful in keeping work flowing from start to release.

Where does software development chaos come from? Chaos has many ignition points, or feeding stations if you will, where it escalates and builds momentum. However, where it begins is when a new project is created. Then it escalates once the design is created based on difficult-to-receive or -retrieve customer requirements. Deadlines and release schedules are often created well before anyone knows what it will take to complete the project.

The chaos continues to build as developers plan out stories and create something that resembles the design. Chaos reigns while designers and developers go back and forth over what can and cannot be done with code. Meanwhile, the release deadlines are growing closer and software testers have only a set of living requirements or user stories to create test cases and testing plans. The term “living” means constantly changing or growing in size and scope. How can a software tester be effective and productive when work is frequently enveloped in chaos?

This post describes how to be a productive and effective software tester despite the work-related chaos that frequently surrounds application software development.

What is Work Chaos?

Work chaos is a state where deadlines are made before work is started. Once deadlines are set, a spiral of activity begins that’s focused on getting the release done by the deadline. The problem is the process often starts well before the full scope of the work is established.

Managers start asking about deadlines and pressuring developers and testers to get work—not fully ready—done faster. Chaos makes little sense and tends to undo any organizational structures meant to prevent it including software development methodologies and processes. Each group, team or individual follows their own plans, and the result is no one knows the true status of the project or what’s being done.

In a state of work chaos, the focus is on getting tasks done rather than planning, designing or testing to produce a product customers want to use.

Why is Software Development and Testing Chaotic?

Software development and software testing become chaotic because the focus is on meeting deadlines that are not based on an honest scope of the work. Many times project planning, design and even testing are skipped or condensed for the sake of meeting the deadline. Why is that deadline important? Surely it isn’t more important than the quality of the application.

Without proper planning and an honest understanding of the scope and complexity of the work, projects become chaotic, get off schedule and fail to deliver to expectations. Spending time planning improves organization and helps keep chaos at bay. Being busy doesn’t have to equal chaos. Busy can be managed effectively through project planning.

When the design is rushed or even bypassed entirely, products fail to meet customer needs as intended. The end product may be released on time, but the quality, usability and enjoyment are lacking. If you release a poor product that fails to interest customers, what’s the point of the product?

The chaos starts early in the software development process, and once it’s started, it’s next to impossible to avoid being consumed in chaos. Speed over quality has been an issue for decades in software development. Organizations can produce quality work products quickly and with less chaos when the focus is on the product rather than a deadline.

How Does Chaos Impact Productivity and Work Quality?

Development teams that are constantly in a state of chaos don’t produce high-quality work productively. Each individual focuses on meeting job tasks rather than ensuring the product is solid. Individually team members are often quite productive, but communication gaps frequently arise to indicate important details have been missed.

Missed requirements and dependencies can derail a project quickly. Where there is chaos there is a great deal of re-work. Once re-work occurs, the speed of the project quickly takes a hit. By focusing on speed, the team is now behind schedule due to missed requirements or dependencies like necessary database or API changes.

Rushing development is always followed by a hurried round of testing. More often than not, testing cycles are shortened or become ASAP events. Testing in a hurry means more complex workflows or functions are tested superficially. Defects that are not in the superficial UI layer issues can be frequently missed.

Employee morale and productivity are lessened when chaos continues long-term. When work is a constant crisis-mode, people tune out or disengage. Disengaged work is not quality work. Disengaged work meets the minimum requirements but fails to add value to the product or improve the customer experience.

Working Through the Chaos?

As a software tester, how can you do your best testing when surrounded by chaos? Start by spending a few minutes planning a test strategy or approach. A test strategy can be as simple as a checklist of prioritized tasks or a more in-depth plan of how to complete testing with a high degree of quality.

Once you have a plan for testing, share it with other testers on the team, if feasible. Think before testing and ensure you test everything you need to. Resist the temptation to be rushed through testing as much as you can. If you have to skimp on testing, skimp on lower-priority functionality that is less visible to customers.

Consider adding to your test strategy how to prioritize testing. Do you test the customer-facing workflows first? Or is it better to focus on end-to-end exploratory testing? The important part is determining how to test to ensure quality test coverage. Perhaps you focus testing on specific functionality? The important part is to plan an approach. With a solid plan of attack or test strategy, you can better ensure the quality of your testing.

Why is Following a Development Methodology Important?

Following a software development methodology improves organization and reduces chaos and churn. The problem is many organizations say they follow a methodology, but in reality, they do not and carry on in the same chaotic state. The software methodology is simply a marketing tool. Organizations can change processes to meet their unique needs but they must not lose the purpose of the process.

For example, for many organizations, Agile is a marketing tool. They claim to use Agile methodologies across their development teams. When in reality, they follow none of the Agile principles and processes outside of the daily standup meeting. Thwarting the process does not improve your software development or product quality.

If you want to produce high-quality software, select a development methodology and follow it. It’ll be painful at first, but work out the kinks over time. Don’t expect miracles right away. Chaos takes time to change into constructive and organized work processes. Improvements will never occur without the sacrifice of organizing your chaos.

Development team members including software testers operate most productively when processes are clear, planned and organized. Individuals can then organize their work day and manage their tasks and workloads efficiently.

Rooting out or even controlling chaos is not easy once it’s present within a software development organization. Software development and testing are prone to chaos due to the need to deliver products to market rapidly. Rapid product delivery is a business reality. However, if you continuously rapidly deliver poor-quality products, you won’t be in business long.

Focus on planning, organization and reducing chaos and you’ll deliver higher-quality products that customers want. Start by selecting a development methodology and following it. Software development methodologies like Agile exist to reduce the chaos inherent in software development. Use them as more than a marketing slogan and you’ll be producing high-quality software.


Need a software testing tool that can help software testing teams be more productive and organized? Check out Progress Telerik Test Studio and see how it can help organize your software testing.


About the Author

Amy Reichert

A QA test professional with 23+ years of QA testing experience within a variety of software development teams, Amy Reichert has extensive experience in QA process development & planning, team leadership/management, and QA project management.  She has worked on multiple types of software development methodologies including waterfall, agile, scrum, kanban and customized combinations. Amy enjoys continuing to improve her software testing craft by researching and writing on a variety of related topics. In her spare time, she enjoys gardening, cat management and the outdoors.

 

Related Posts

Comments

Comments are disabled in preview mode.