We may earn an affiliate commission when you visit our partners.
Dan Appleman

Will your software outlast the original developers? Almost certainly yes. But will you be able to maintain it? This course will teach you how to maintain cost-efficient and functioning software through planning and development strategies.

Read more

Will your software outlast the original developers? Almost certainly yes. But will you be able to maintain it? This course will teach you how to maintain cost-efficient and functioning software through planning and development strategies.

Studies show that software maintenance represents 50%-80% of the lifetime cost of software. Failing to respond to platform changes, increased demand or newly discovered security flaws can bring down software - and kill a business. In this course, Building Software That Lasts - A Guide to Maintainable Software, you'll discover how advanced planning strategies and factoring maintainability into the development process from the beginning will dramatically reduce the costs and risks related to keeping your software running long after the original developers have left. First, you'll learn about why software needs to be maintained at all and how maintenance is shaped by the nature of the software. Next, you'll learn how to reduce costs by keeping maintainability in mind at every step in development and how to manage any potential risks. Finally, you'll cover how to maintain software for the long term and prepare for the possibility of your software needing a rebuild after a long period of time. By the end of this course, you will have a much more comprehensive understanding of software maintenance, why it's important, and how to build software that lasts.

Enroll now

What's inside

Syllabus

Course Overview
Understanding Software Maintenance in the Real World
Reducing Costs: Reinventing the Software Life Cycle
Managing Risk: Avoiding Runaway Costs and Obsolescence
Read more
Planning for the Long Term: Building Institutional Memory

Good to know

Know what's good
, what to watch for
, and possible dealbreakers
Introduces best software maintenance practices, which can save companies time and money
Suitable for software developers looking to learn effective software maintance techniques
Taught by Dan Appleman, a recognized expert in software development
Covers software development from beginning to end
Provides strategies to prevent platform changes, increased demand, and security flaws from impacting software
Helps develop software for long-term use and possible rebuilds

Save this course

Save Building Software That Lasts - A Guide to Maintainable Software to your list so you can find it easily later:
Save

Activities

Be better prepared before your course. Deepen your understanding during and after it. Supplement your coursework and achieve mastery of the topics covered in Building Software That Lasts - A Guide to Maintainable Software with these activities:
Review concepts from prior software engineering courses
Brushing up on your foundational knowledge will help you better understand the concepts covered in this course.
Show steps
  • Review course notes and textbooks from previous software engineering courses.
  • Complete practice problems or assignments from those courses.
  • Attend a refresher or preparatory workshop on software engineering fundamentals.
  • Discuss key concepts with a peer or tutor.
Read "Clean Code: A Handbook of Agile Software Craftsmanship" by Robert C. Martin
This book provides practical guidance on writing maintainable and readable software.
View CLEAN CODE on Amazon
Show steps
  • Read the book thoroughly, taking notes and highlighting key concepts.
  • Discuss the book's principles with a peer or mentor.
  • Apply the book's techniques in your own software development projects.
Complete coding challenges and exercises on platforms like LeetCode or HackerRank
Regular practice will help you develop strong programming skills and improve your ability to solve software engineering problems.
Browse courses on Problem Solving
Show steps
  • Choose a coding challenge platform and sign up.
  • Select appropriate challenges based on your skill level and course topics.
  • Attempt to solve the challenges on your own, referring to course materials when needed.
  • Review solutions and compare your approach with others.
Four other activities
Expand to see all activities and additional details
Show all seven activities
Watch video tutorials and webinars on software maintenance best practices
Learning from experts will provide you with valuable insights and best practices for maintaining software effectively.
Browse courses on Software Maintenance
Show steps
  • Search for reputable sources of software maintenance tutorials and webinars.
  • Choose tutorials that cover topics relevant to your course content.
  • Watch the tutorials carefully and take notes on key concepts.
  • Apply the techniques discussed in the tutorials in your software development projects.
Create a blog or article summarizing the principles and best practices of software maintenance
Writing about the concepts you learn will reinforce your understanding and help you communicate your knowledge to others.
Browse courses on Software Maintenance
Show steps
  • Choose a topic that you are comfortable writing about.
  • Research the topic thoroughly, using course materials and other sources.
  • Organize your thoughts and structure your article.
  • Write a clear and engaging article, using examples and practical tips.
  • Publish your article on a relevant platform or share it with others.
Participate in study groups or online forums to discuss and troubleshoot software maintenance issues
Engaging with peers will allow you to share knowledge, learn from others' experiences, and get support when needed.
Show steps
  • Join or create a study group or online forum related to software maintenance.
  • Actively participate in discussions, share your thoughts, and ask questions.
  • Help other members by providing support and insights.
Contribute to open-source projects related to software maintenance
Hands-on experience with real-world software maintenance projects will provide invaluable insights and practical skills.
Browse courses on Open Source
Show steps
  • Identify open-source projects that focus on software maintenance.
  • Review the project's documentation and codebase.
  • Choose an area where you can contribute, such as bug fixes, feature improvements, or documentation.
  • Submit pull requests with your contributions.

Career center

Learners who complete Building Software That Lasts - A Guide to Maintainable Software will develop knowledge and skills that may be useful to these careers:
Software Architect
Software Architects design and develop the architecture of a software system. You will need to have a strong understanding of software design principles so that you can create software that is scalable, reliable, and secure. Building Software That Lasts can help you build a foundation in this crucial field.
IT Architect
IT Architects design, build, and maintain computer networks and systems that meet an organization's needs. To do this effectively, you will need to implement advanced planning strategies, which you will learn about in Building Software That Lasts.
Systems Analyst
As a Systems Analyst, you'll analyze and design software and computer systems to meet the needs of organizations. You will need to understand your organization's long-term goals so that you can build software that meets both the current and long-term needs of the business. Building Software That Lasts can help you understand how to create software that has a longer shelf life and requires fewer resources to maintain.
Project Manager
Project Managers oversee the planning, execution, and completion of software development projects. You will need to have a strong understanding of the software development lifecycle so that you can keep projects on track and within budget. Building Software That Lasts can help you understand the critical elements that contribute to successful software development projects.
Software Quality Assurance Analyst
Software Quality Assurance Analysts test and evaluate software to ensure that it meets the specified requirements. You will need to have a strong understanding of software development methodologies so that you can identify and resolve defects in software. Building Software That Lasts can help you build a solid foundation in this area.
Web Developer
Web Developers design, develop, and maintain websites. To succeed, you will need to create code that is flexible and adaptable and that can be easily maintained as your website changes and grows. The material covered in Building Software That Lasts can help equip you to make smart planning and implementation decisions when building a website.
Information Technology Manager
Information Technology Managers oversee the planning, implementation, and operation of computer networks and systems in an organization. You will need to have a strong understanding of both business and technology so that you can make informed decisions about how to use technology to support the business. Building Software That Lasts can help you build a foundation in this critical field.
Security Analyst
Security Analysts play a crucial role in protecting computer networks and systems from cyberattacks. You will need to stay up-to-date on the latest security threats and trends so that you can implement the necessary security measures to protect your organization's data and systems. Building Software That Lasts can help you learn how to develop secure software that is less vulnerable to cyberattacks.
Business Analyst
Business Analysts bridge the gap between the business and IT departments. You will need to have a strong understanding of both business and technology so that you can translate business requirements into technical specifications. Building Software That Lasts can help you understand the software development lifecycle and how to manage software projects.
Software Developer
Software Developers design, develop, and implement a range of software programs, including web applications, mobile apps, and desktop software. To do so, you must plan each step of a project's development, considering how to implement changeable, maintainable features to ensure future updates can be completed easily. Building Software That Lasts can help teach you these principles, giving you a leg up on the competition when you begin your career as a Software Developer.
Database Administrator
Database Administrators work with DBMSs to store and organize data. They may also be responsible for developing and maintaining databases, as well as implementing security measures to protect sensitive data. The principles you will learn in Building Software That Lasts will help you understand how to protect your organization's data and how to maintain databases that can grow and change based on the organization's needs.
Software Engineer
As a Software Engineer, you'll be responsible for applying the principles you learn in Building Software That Lasts and developing and testing computer software. This means you must have solid planning strategies and an understanding of the software development lifecycle. Maintainability, as you will learn, is a critical element of any software project and allows engineers to keep software running for years after its initial development. As such, this Building Software That Lasts course may be helpful as you continue to advance your knowledge of software development best practices to design and create software that lasts.
Computer Scientist
Computer Scientists conduct research and develop new computing technologies. You will need to have a strong understanding of the fundamental principles of computer science so that you can develop innovative solutions to complex problems. Building Software That Lasts can help you build a foundation in this crucial field.
Technical Writer
Technical Writers create user guides, technical manuals, and other documentation to help users understand and use software and other technical products. By understanding how to maintain and develop software, you will be better equipped to create documentation that provides step-by-step instructions on how to use software. Building Software That Lasts can help equip you with the knowledge you'll need to be successful in this role.
Data Scientist
Data Scientists use data to solve business problems. You will need to have a strong understanding of statistical analysis and machine learning so that you can develop predictive models that can help businesses make better decisions. Building Software That Lasts can help you build a foundation for understanding the data science lifecycle.

Reading list

We've selected 11 books that we think will supplement your learning. Use these to develop background knowledge, enrich your coursework, and gain a deeper understanding of the topics covered in Building Software That Lasts - A Guide to Maintainable Software.
Introduces techniques for improving the design of existing code, focusing on refactoring as a means to maintain and improve software quality.
Provides practical guidelines and best practices for writing clean, maintainable, and extensible software code.
A comprehensive guide to software engineering best practices, covering topics such as design, coding, testing, and maintenance.
Provides a comprehensive overview of agile software development methodologies, covering principles, patterns, and practices.
Introduces test-driven development (TDD) as a software development approach that emphasizes writing tests before writing code.
Provides practical guidance on implementing continuous delivery practices, covering topics such as automation, testing, and deployment.
Provides a comprehensive overview of object-oriented software engineering, covering topics such as UML, design patterns, and Java programming.
Provides a comprehensive overview of software testing, covering topics such as test planning, execution, and reporting.

Share

Help others find this course page by sharing it with your friends and followers:

Similar courses

Here are nine courses similar to Building Software That Lasts - A Guide to Maintainable Software.
Secure Software Deployment, Operations, and Maintenance...
Software, Programming, and Database Basics
302: Software Engineeri
Securing and Maintaining Stored Procedures in T-SQL
Software Engineering: Implementation and Testing
Microsoft Endpoint Manager: Monitor and Maintain an On...
Introduction to Software, Programming, and Databases
Linux System Maintenance and Troubleshooting
Software Engineering: Software Design and Project...
Our mission

OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.

Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.

Find this site helpful? Tell a friend about us.

Affiliate disclosure

We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.

Your purchases help us maintain our catalog and keep our servers humming without ads.

Thank you for supporting OpenCourser.

© 2016 - 2024 OpenCourser