SlideShare uma empresa Scribd logo
1 de 13
Strategies for maintenance of custom development projects/software 31 January, 2010
Who is thispresentationfor? Agencies and customers involved in custom development software projects: Software developers Software architects Project managers Customers and stakeholders It’s not a technical session, check out our other presentations for in-depth developer tips: Working Effectively with Legacy Code Unit testing” 31 January, 2010 Strategies for software maintenance 2
Live or let die? There are two basic strategies to maintain a software project: Keep it in good shape: by doing regular maintenance work such as refactoring, documentation, unit-testing, etc. The software can have a long lifespan (5+ years) Let it die: just add code on top of the existing. After a while, it will become impossible to add new features and fix bugs without loosing massive amounts of time and money. At a certain point, it will be better to start all over. 29 January 2010 Working Effectively with Legacy Code (book review) 3
Advantages of “keep it in good shape” strategy  Keep your project fresh: performs proactive, regular updates and technical maintenance in order to guarantee the best performance of your project.  This allows your customer to use the solutions longer and achieve a higher Return On Investment (ROI). It keeps the developers happy and motivated It creates returning income for the software agency New features can be implemented faster and cleaner 31 January, 2010 Strategies for software maintenance 4
Is the “let die” strategy always bad? Not always. Some software projects have a very short lifespan For example something that will be used only once at a trade fair or presentation Think twice before going the “let it die” route, once people like the software, you might want to re-use it. Some customers simply don’t want to spend money to keep the project healthy. 31 January, 2010 Strategies for software maintenance 5
How to keep software in “good shape”? Train your developers to write good code Give them enough time for maintenance work Use good tools 31 January, 2010 Strategies for software maintenance 6
Actions to keep software “in good shape” Code Refactoring: Improve the program code readability, simplify code structure, change code to adhere to a given programming paradigm, improve maintainability, improve performance, or improve extensibility. Unit Testing: The goal of unit testing is to isolate each part of the program and show that the individual parts are correct. It avoids bugs when changes are made in the software. Source Control: keeping the source-code database clean and well organized, automating builds and build server configuration, branching, ... Updates: Software updates and security patches that require specific testing or modifications to the projects described above. For example: .NET framework updates, Visual Studio project updates, new browser versions, ... Documentation: Writing of additional documentation to facilitate the on-going maintenance of the projects. Lab environment: setup and maintenance of the internal servers used for testing and development of the projects.  Team communication: keeping the team members informed of the project status. … and more 31 January, 2010 Strategies for software maintenance 7
Communication & expectations Make sure everyone is on the same page  Your whole team (architects, developers, project manager, customer) should understands what strategy we are using and what the implications are. Most software projects require an important money investment.  If you choose the “let it die” strategy, make sure your customer fully understands the implications. It is typically the task of the project manager to Explain the customer about good software maintenance concepts Convince the customer to allocate an ongoing budget to keep the project healthy 31 January, 2010 Strategies for software maintenance 8
Developers: be careful!  Don’t start refactoring before talking with your PM/customer If you do, you will be in a world of pain, since: Your time will not be appreciated/paid Problems/bugs caused by the changes will be taken badly Make sure there is a clear agreement of the time you can spend on a monthly/yearly basis for refactoring/improvements. This time should be budgeted in the yearly maintenance agreement with the customer The dev-team should have the flexibility to use this time at the moment they feel it’s mostly needed. 29 January 2010 Working Effectively with Legacy Code (book review) 9
Commonmistakes Situation The customer does not even now what “refactoring” mean The project manager heard about it but does not calculate it in his price offerings Developers complain because the code is turning into spaghetti. Action Developers start to do refactoring without approval, resulting in time that cannot be invoiced and new bugs Customer complains about bugs and missed deadlines  Project manager tries to solve a situation that he could have avoided in the first place. 31 January, 2010 Strategies for software maintenance 10
Service agreement / maintenance contract If you choose the “keep it healthy” strategy, make sure you have a solid maintenance agreement with your customer. As a software agency, your service contract should cover the 3 basic types of work: Maintenance: monthly/annual budget to keep the project healthy. Time & material: for smaller requests. Time spent it charged according to timesheets. Fixed-price: for larger, well defined projects. Software agency commits to a fixed price for the development, according to detailed project specifications. 29 January 2010 Working Effectively with Legacy Code (book review) 11
Maintenance: bothProactive and reactive A good service contract should cover both reactive as proactive tasks. Reactive Recovery of defects / fixing bugs Third line helpdesk Proactive Technical evolution: upgrades, OS, patches, Transferability to third parties: by writing good documentation, clear backups and data recovery/system transfer guides. Less time spent on future features and bugfixes: by doing refactoring/unit tests, etc Internal organization of software partner: by doing internal meetings, knowledge transfer, keeping source-control, build scripts, etc. 29 January 2010 Working Effectively with Legacy Code (book review) 12
13 Strategies for software maintenance 31 January, 2010

Mais conteúdo relacionado

Destaque

NEDMA15 Keynote: Once Upon a Time: Using an Ancient Skill to Find Success in ...
NEDMA15 Keynote: Once Upon a Time: Using an Ancient Skill to Find Success in ...NEDMA15 Keynote: Once Upon a Time: Using an Ancient Skill to Find Success in ...
NEDMA15 Keynote: Once Upon a Time: Using an Ancient Skill to Find Success in ...New England Direct Marketing Association
 
Link Development Post Panda
Link Development Post PandaLink Development Post Panda
Link Development Post PandaLisa Myers
 
AIGA Portland Sustainability Initiative
AIGA Portland Sustainability InitiativeAIGA Portland Sustainability Initiative
AIGA Portland Sustainability InitiativeLisa Holmes
 
Concept presentatie.
Concept presentatie.Concept presentatie.
Concept presentatie.Spewy
 
Angles In Life
Angles In LifeAngles In Life
Angles In Lifeguest07d0a
 
AMA Digital Marketing Day
AMA Digital Marketing DayAMA Digital Marketing Day
AMA Digital Marketing DaySusan Halligan
 
MRM Seattle Digital Immersion Lab: Beyond SEO
MRM Seattle Digital Immersion Lab: Beyond SEOMRM Seattle Digital Immersion Lab: Beyond SEO
MRM Seattle Digital Immersion Lab: Beyond SEOguest2c2bc58
 
Yahoo Korea 10th Anniversary Plan _ Subway Tailbook
Yahoo Korea 10th Anniversary Plan _ Subway TailbookYahoo Korea 10th Anniversary Plan _ Subway Tailbook
Yahoo Korea 10th Anniversary Plan _ Subway TailbookJongjin Park
 
Google Places - Global Approach ISS 2012
Google Places - Global Approach ISS 2012Google Places - Global Approach ISS 2012
Google Places - Global Approach ISS 2012Lisa Myers
 
Milletvekillerine Gönderilen Sorunların Çözümüne Yönelik Bilgier
Milletvekillerine Gönderilen Sorunların Çözümüne Yönelik BilgierMilletvekillerine Gönderilen Sorunların Çözümüne Yönelik Bilgier
Milletvekillerine Gönderilen Sorunların Çözümüne Yönelik BilgierYunus Emre
 
Applications of High Performance Permanent Magnets
Applications of High Performance Permanent MagnetsApplications of High Performance Permanent Magnets
Applications of High Performance Permanent Magnetsjinfangliu
 
ASL BT Registro tumori 2014
ASL BT Registro tumori 2014ASL BT Registro tumori 2014
ASL BT Registro tumori 2014Conetica
 
Identify & Charaterize Arguments
Identify & Charaterize ArgumentsIdentify & Charaterize Arguments
Identify & Charaterize Argumentscrickchamps
 
NEDMAInno14: Targeting Audiences with Direct Response Campaigns on Mobile - T...
NEDMAInno14: Targeting Audiences with Direct Response Campaigns on Mobile - T...NEDMAInno14: Targeting Audiences with Direct Response Campaigns on Mobile - T...
NEDMAInno14: Targeting Audiences with Direct Response Campaigns on Mobile - T...New England Direct Marketing Association
 

Destaque (20)

Psychnology journal 10_3_castro
Psychnology journal 10_3_castroPsychnology journal 10_3_castro
Psychnology journal 10_3_castro
 
Easter 1
Easter 1Easter 1
Easter 1
 
NEDMA15 Keynote: Once Upon a Time: Using an Ancient Skill to Find Success in ...
NEDMA15 Keynote: Once Upon a Time: Using an Ancient Skill to Find Success in ...NEDMA15 Keynote: Once Upon a Time: Using an Ancient Skill to Find Success in ...
NEDMA15 Keynote: Once Upon a Time: Using an Ancient Skill to Find Success in ...
 
Link Development Post Panda
Link Development Post PandaLink Development Post Panda
Link Development Post Panda
 
AIGA Portland Sustainability Initiative
AIGA Portland Sustainability InitiativeAIGA Portland Sustainability Initiative
AIGA Portland Sustainability Initiative
 
Halloween Party
Halloween PartyHalloween Party
Halloween Party
 
Concept presentatie.
Concept presentatie.Concept presentatie.
Concept presentatie.
 
2015 Leadership Wichita - Session One
2015 Leadership Wichita - Session One2015 Leadership Wichita - Session One
2015 Leadership Wichita - Session One
 
Angles In Life
Angles In LifeAngles In Life
Angles In Life
 
AMA Digital Marketing Day
AMA Digital Marketing DayAMA Digital Marketing Day
AMA Digital Marketing Day
 
MRM Seattle Digital Immersion Lab: Beyond SEO
MRM Seattle Digital Immersion Lab: Beyond SEOMRM Seattle Digital Immersion Lab: Beyond SEO
MRM Seattle Digital Immersion Lab: Beyond SEO
 
Yahoo Korea 10th Anniversary Plan _ Subway Tailbook
Yahoo Korea 10th Anniversary Plan _ Subway TailbookYahoo Korea 10th Anniversary Plan _ Subway Tailbook
Yahoo Korea 10th Anniversary Plan _ Subway Tailbook
 
Google Places - Global Approach ISS 2012
Google Places - Global Approach ISS 2012Google Places - Global Approach ISS 2012
Google Places - Global Approach ISS 2012
 
Fotosincreibles
FotosincreiblesFotosincreibles
Fotosincreibles
 
Team2 D2 1
Team2 D2 1Team2 D2 1
Team2 D2 1
 
Milletvekillerine Gönderilen Sorunların Çözümüne Yönelik Bilgier
Milletvekillerine Gönderilen Sorunların Çözümüne Yönelik BilgierMilletvekillerine Gönderilen Sorunların Çözümüne Yönelik Bilgier
Milletvekillerine Gönderilen Sorunların Çözümüne Yönelik Bilgier
 
Applications of High Performance Permanent Magnets
Applications of High Performance Permanent MagnetsApplications of High Performance Permanent Magnets
Applications of High Performance Permanent Magnets
 
ASL BT Registro tumori 2014
ASL BT Registro tumori 2014ASL BT Registro tumori 2014
ASL BT Registro tumori 2014
 
Identify & Charaterize Arguments
Identify & Charaterize ArgumentsIdentify & Charaterize Arguments
Identify & Charaterize Arguments
 
NEDMAInno14: Targeting Audiences with Direct Response Campaigns on Mobile - T...
NEDMAInno14: Targeting Audiences with Direct Response Campaigns on Mobile - T...NEDMAInno14: Targeting Audiences with Direct Response Campaigns on Mobile - T...
NEDMAInno14: Targeting Audiences with Direct Response Campaigns on Mobile - T...
 

Mais de Orbit One - We create coherence

ShareCafé: SharePoint - Een doos vol documenten of dé tool om efficiënt samen...
ShareCafé: SharePoint - Een doos vol documenten of dé tool om efficiënt samen...ShareCafé: SharePoint - Een doos vol documenten of dé tool om efficiënt samen...
ShareCafé: SharePoint - Een doos vol documenten of dé tool om efficiënt samen...Orbit One - We create coherence
 
ShareCafé: Office365 - Efficiënt samenwerken met minimum aan kosten en comple...
ShareCafé: Office365 - Efficiënt samenwerken met minimum aan kosten en comple...ShareCafé: Office365 - Efficiënt samenwerken met minimum aan kosten en comple...
ShareCafé: Office365 - Efficiënt samenwerken met minimum aan kosten en comple...Orbit One - We create coherence
 
ShareCafé 3 - Geef je samenwerking een technologische upgrade
ShareCafé 3 - Geef je samenwerking een technologische upgradeShareCafé 3 - Geef je samenwerking een technologische upgrade
ShareCafé 3 - Geef je samenwerking een technologische upgradeOrbit One - We create coherence
 
OneCafé: De toekomst van ledenorganisaties met behulp van CRM en informatie-u...
OneCafé: De toekomst van ledenorganisaties met behulp van CRM en informatie-u...OneCafé: De toekomst van ledenorganisaties met behulp van CRM en informatie-u...
OneCafé: De toekomst van ledenorganisaties met behulp van CRM en informatie-u...Orbit One - We create coherence
 
OneCafé: The future of membership organizations facilitated by CRM and collab...
OneCafé: The future of membership organizations facilitated by CRM and collab...OneCafé: The future of membership organizations facilitated by CRM and collab...
OneCafé: The future of membership organizations facilitated by CRM and collab...Orbit One - We create coherence
 
Social Computing in your organization using SharePoint: challenges and benefits
Social Computing in your organization using SharePoint: challenges and benefitsSocial Computing in your organization using SharePoint: challenges and benefits
Social Computing in your organization using SharePoint: challenges and benefitsOrbit One - We create coherence
 
Marketing Automation in Dynamics CRM with ClickDimensions
Marketing Automation in Dynamics CRM with ClickDimensionsMarketing Automation in Dynamics CRM with ClickDimensions
Marketing Automation in Dynamics CRM with ClickDimensionsOrbit One - We create coherence
 

Mais de Orbit One - We create coherence (20)

ShareCafé: SharePoint - Een doos vol documenten of dé tool om efficiënt samen...
ShareCafé: SharePoint - Een doos vol documenten of dé tool om efficiënt samen...ShareCafé: SharePoint - Een doos vol documenten of dé tool om efficiënt samen...
ShareCafé: SharePoint - Een doos vol documenten of dé tool om efficiënt samen...
 
HoGent tips and tricks van een self-made ondernemer
HoGent tips and tricks van een self-made ondernemer HoGent tips and tricks van een self-made ondernemer
HoGent tips and tricks van een self-made ondernemer
 
Het Nieuwe Werken in de praktijk
Het Nieuwe Werkenin de praktijkHet Nieuwe Werkenin de praktijk
Het Nieuwe Werken in de praktijk
 
ShareCafé: Office365 - Efficiënt samenwerken met minimum aan kosten en comple...
ShareCafé: Office365 - Efficiënt samenwerken met minimum aan kosten en comple...ShareCafé: Office365 - Efficiënt samenwerken met minimum aan kosten en comple...
ShareCafé: Office365 - Efficiënt samenwerken met minimum aan kosten en comple...
 
ShareCafé 3 - Geef je samenwerking een technologische upgrade
ShareCafé 3 - Geef je samenwerking een technologische upgradeShareCafé 3 - Geef je samenwerking een technologische upgrade
ShareCafé 3 - Geef je samenwerking een technologische upgrade
 
ShareCafé 2 - Werk slimmer door geïntegreerde tools
ShareCafé 2 - Werk slimmer door geïntegreerde toolsShareCafé 2 - Werk slimmer door geïntegreerde tools
ShareCafé 2 - Werk slimmer door geïntegreerde tools
 
ShareCafé 1: Hou de Nieuwe Werker gemotiveerd
ShareCafé 1: Hou de Nieuwe Werker gemotiveerdShareCafé 1: Hou de Nieuwe Werker gemotiveerd
ShareCafé 1: Hou de Nieuwe Werker gemotiveerd
 
Business value of Lync integrations
Business value of Lync integrationsBusiness value of Lync integrations
Business value of Lync integrations
 
OneCafé: De toekomst van ledenorganisaties met behulp van CRM en informatie-u...
OneCafé: De toekomst van ledenorganisaties met behulp van CRM en informatie-u...OneCafé: De toekomst van ledenorganisaties met behulp van CRM en informatie-u...
OneCafé: De toekomst van ledenorganisaties met behulp van CRM en informatie-u...
 
Identity in the cloud using Microsoft
Identity in the cloud using MicrosoftIdentity in the cloud using Microsoft
Identity in the cloud using Microsoft
 
OneCafé: The future of membership organizations facilitated by CRM and collab...
OneCafé: The future of membership organizations facilitated by CRM and collab...OneCafé: The future of membership organizations facilitated by CRM and collab...
OneCafé: The future of membership organizations facilitated by CRM and collab...
 
OneCafé: The new world of work and your organisation
OneCafé: The new world of work and your organisationOneCafé: The new world of work and your organisation
OneCafé: The new world of work and your organisation
 
Social Computing in your organization using SharePoint: challenges and benefits
Social Computing in your organization using SharePoint: challenges and benefitsSocial Computing in your organization using SharePoint: challenges and benefits
Social Computing in your organization using SharePoint: challenges and benefits
 
Windows Communication Foundation (WCF) Best Practices
Windows Communication Foundation (WCF) Best PracticesWindows Communication Foundation (WCF) Best Practices
Windows Communication Foundation (WCF) Best Practices
 
Wie is Orbit One Internet Solutions
Wie is Orbit One Internet SolutionsWie is Orbit One Internet Solutions
Wie is Orbit One Internet Solutions
 
Azure Umbraco workshop
Azure Umbraco workshopAzure Umbraco workshop
Azure Umbraco workshop
 
Marketing Automation in Dynamics CRM with ClickDimensions
Marketing Automation in Dynamics CRM with ClickDimensionsMarketing Automation in Dynamics CRM with ClickDimensions
Marketing Automation in Dynamics CRM with ClickDimensions
 
Office 365, is cloud right for your company?
Office 365, is cloud right for your company?Office 365, is cloud right for your company?
Office 365, is cloud right for your company?
 
Who is Orbit One internet solutions?
Who is Orbit One internet solutions?Who is Orbit One internet solutions?
Who is Orbit One internet solutions?
 
Azure and Umbraco CMS
Azure and Umbraco CMSAzure and Umbraco CMS
Azure and Umbraco CMS
 

Último

Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?XfilesPro
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
Azure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAzure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAndikSusilo4
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 

Último (20)

Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Azure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAzure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & Application
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 

Strategies For Software Maintenance

  • 1. Strategies for maintenance of custom development projects/software 31 January, 2010
  • 2. Who is thispresentationfor? Agencies and customers involved in custom development software projects: Software developers Software architects Project managers Customers and stakeholders It’s not a technical session, check out our other presentations for in-depth developer tips: Working Effectively with Legacy Code Unit testing” 31 January, 2010 Strategies for software maintenance 2
  • 3. Live or let die? There are two basic strategies to maintain a software project: Keep it in good shape: by doing regular maintenance work such as refactoring, documentation, unit-testing, etc. The software can have a long lifespan (5+ years) Let it die: just add code on top of the existing. After a while, it will become impossible to add new features and fix bugs without loosing massive amounts of time and money. At a certain point, it will be better to start all over. 29 January 2010 Working Effectively with Legacy Code (book review) 3
  • 4. Advantages of “keep it in good shape” strategy Keep your project fresh: performs proactive, regular updates and technical maintenance in order to guarantee the best performance of your project. This allows your customer to use the solutions longer and achieve a higher Return On Investment (ROI). It keeps the developers happy and motivated It creates returning income for the software agency New features can be implemented faster and cleaner 31 January, 2010 Strategies for software maintenance 4
  • 5. Is the “let die” strategy always bad? Not always. Some software projects have a very short lifespan For example something that will be used only once at a trade fair or presentation Think twice before going the “let it die” route, once people like the software, you might want to re-use it. Some customers simply don’t want to spend money to keep the project healthy. 31 January, 2010 Strategies for software maintenance 5
  • 6. How to keep software in “good shape”? Train your developers to write good code Give them enough time for maintenance work Use good tools 31 January, 2010 Strategies for software maintenance 6
  • 7. Actions to keep software “in good shape” Code Refactoring: Improve the program code readability, simplify code structure, change code to adhere to a given programming paradigm, improve maintainability, improve performance, or improve extensibility. Unit Testing: The goal of unit testing is to isolate each part of the program and show that the individual parts are correct. It avoids bugs when changes are made in the software. Source Control: keeping the source-code database clean and well organized, automating builds and build server configuration, branching, ... Updates: Software updates and security patches that require specific testing or modifications to the projects described above. For example: .NET framework updates, Visual Studio project updates, new browser versions, ... Documentation: Writing of additional documentation to facilitate the on-going maintenance of the projects. Lab environment: setup and maintenance of the internal servers used for testing and development of the projects. Team communication: keeping the team members informed of the project status. … and more 31 January, 2010 Strategies for software maintenance 7
  • 8. Communication & expectations Make sure everyone is on the same page Your whole team (architects, developers, project manager, customer) should understands what strategy we are using and what the implications are. Most software projects require an important money investment. If you choose the “let it die” strategy, make sure your customer fully understands the implications. It is typically the task of the project manager to Explain the customer about good software maintenance concepts Convince the customer to allocate an ongoing budget to keep the project healthy 31 January, 2010 Strategies for software maintenance 8
  • 9. Developers: be careful! Don’t start refactoring before talking with your PM/customer If you do, you will be in a world of pain, since: Your time will not be appreciated/paid Problems/bugs caused by the changes will be taken badly Make sure there is a clear agreement of the time you can spend on a monthly/yearly basis for refactoring/improvements. This time should be budgeted in the yearly maintenance agreement with the customer The dev-team should have the flexibility to use this time at the moment they feel it’s mostly needed. 29 January 2010 Working Effectively with Legacy Code (book review) 9
  • 10. Commonmistakes Situation The customer does not even now what “refactoring” mean The project manager heard about it but does not calculate it in his price offerings Developers complain because the code is turning into spaghetti. Action Developers start to do refactoring without approval, resulting in time that cannot be invoiced and new bugs Customer complains about bugs and missed deadlines Project manager tries to solve a situation that he could have avoided in the first place. 31 January, 2010 Strategies for software maintenance 10
  • 11. Service agreement / maintenance contract If you choose the “keep it healthy” strategy, make sure you have a solid maintenance agreement with your customer. As a software agency, your service contract should cover the 3 basic types of work: Maintenance: monthly/annual budget to keep the project healthy. Time & material: for smaller requests. Time spent it charged according to timesheets. Fixed-price: for larger, well defined projects. Software agency commits to a fixed price for the development, according to detailed project specifications. 29 January 2010 Working Effectively with Legacy Code (book review) 11
  • 12. Maintenance: bothProactive and reactive A good service contract should cover both reactive as proactive tasks. Reactive Recovery of defects / fixing bugs Third line helpdesk Proactive Technical evolution: upgrades, OS, patches, Transferability to third parties: by writing good documentation, clear backups and data recovery/system transfer guides. Less time spent on future features and bugfixes: by doing refactoring/unit tests, etc Internal organization of software partner: by doing internal meetings, knowledge transfer, keeping source-control, build scripts, etc. 29 January 2010 Working Effectively with Legacy Code (book review) 12
  • 13. 13 Strategies for software maintenance 31 January, 2010