A Comprehensive Guide to Custom Software Development for 2025

Date :
July 4, 2024
Listed by :
Shilpi Chhabra
Sidebar
×

Let’s Build Your Dream App!

A Comprehensive Guide to Custom Software Development for 2025

Blog Summary

This blog post help readers to understand custom software development process, when and why to outsource software development, and who needs custom solutions. It outlines the advantages of, kinds of, issues relating to, SDLC models, budgets and timelines, phases in the development process. It also includes the pricing structures, and several essential factors that should be considered when selecting a software development company.

Did you know that the custom software development services market will grow endlessly?

Businesses can stand out from competitors by offering a personalized user experience through custom software design. 

As per Statista it projects to reach $179.90bn in 2024 at a CAGR 6.8% (2024-28) and is likely to hit $234bn by 2028. 

Off-the-shelf software solutions can fulfill basic requirements. On the other hand, custom software development can help businesses use technology in the current digital age.

This will improve customer experiences, accelerate processes, and gain a competitive edge.

Key Takeaways
  • Custom software is tailored to specific needs, offering unique features and scalability, whereas off-the-shelf solutions are generic and may not fit all business requirements.
  • When, why & who outsource? Startups and small businesses can benefit from outsourcing in various ways: cost-efficient, high-quality services, often involving AI, ML, mobile apps, and web development. and block-chain.
  • Successful custom software development requires thorough planning, budget management, understanding of SDLC models, and addressing major concerns like security and scalability to ensure a robust and efficient end product.
  • Selecting a good development partner involves factors like expertise, pricing models, proficiency, and cultural compatibility, ensuring flexible collaboration and effective communication.

What is Custom Software Development?

Developing custom software is a complex process that starts with identifying a specific business need. 

Custom software development is the customization of a software product for a particular set of users.

This is integrated in several stages such as ideation, design, development, testing, deployment, and maintenance.

It involves creating software solutions tailored to meet the unique requirements of a specific organization or business.

Custom Software vs. Off-the-shelf Software

Custom Software vs Off the Shelf Software

Off-the-shelf software solutions are pre-built or ready-made. Anybody who purchase it can us this model.

Custom software is developed particularly to fulfill the requirements of a specific business or user.

Usually, businesses create this kind of software to fulfill the most typical tasks and requirements of possible users.

Custom software development services allow you to meet your specific business needs.

It gains a competitive edge by focusing on the predetermined requirements.

So it becomes important to compare off-the-shelf and tailored custom software solutions. 

Please determine which option best fits your requirements.

Who, When & Why You Need to Outsource Software Development?  

Undoubtedly, developing custom applications is an excellent way to combine business creativity with the company’s talent.

Creating custom software or enterprise software will be easy if you know what you want and how you will obtain it.  

Businesses that are thinking about outsourcing software development should evaluate the potential technology partners based on their ability.

Examining the partner’s performance history, technological expertise, and understanding of business requirements.

Here, we can review a few crucial factors to consider when choosing to outsource.

Who Needs Custom Software Development?

  • Startups – Custom software solutions can help startups quickly and effectively develop software that meets their specific requirements. Startups often have one-of-a-kind unique and changing needs.
  • Small and medium-sized businesses (SMBs) – SMBs might lack the funds or resources to buy pricey off-the-shelf commercial software. Their options may be more specialized and more reasonably priced with custom software solutions.
  • Enterprises – These businesses can increase productivity, automate processes, and streamline workflow with the aid of custom software solutions.
  • Nonprofit organizations – Custom software helps nonprofit organizations with tight budgets and unique requirements by streamlining fundraising, volunteer scheduling, and donation processing.
  • Government agencies – These organizations can reduce costs, boost output, and improve constituent services with the help of custom software solutions.

When You Need to Outsource Software Development?

Firstly, when your project requires specialized knowledge, cost-effectiveness.

Secondly, a quicker time to market and scalability, outsourcing software development is crucial.

  • Lack of In-House Expertise – When your team lacks the expertise needed for the project, outsource.
  • Cost Efficiency – For temporary work, hiring and training new staff may be more expensive than outsourcing.
  • Focus on Core Business – Lets your team focus on important business tasks by delegating software development to professionals.
  • Scalability – Adapt your development team’s size quickly to the demands and deadlines of the project.
  • Faster Time-to-Market – Outsourcing can speed up product development timelines, enabling faster product launches.

Why You Need to Outsource Software Development?

As an entrepreneur if you are considering to outsource software development then you must go through below checklist.

1. Recognize Your Needs

  • Comprehend Requirements – Determine exactly what services and technology your company requires from a software development company.
  • Establish Goals – Choose between building a multipurpose eCommerce website, developing new applications, or improving an already-existing system.

2. Selecting a Vendor

  • Onshore vs Offshore – Do your research before choosing between working with offshore or onshore software development firms.
  • Get the requirements ready – Make a thorough list of the specifications for custom software and send it to outsourcing firms for review and quotes.

3. Research and Evaluation

  • Evaluate Vendors – Examine possible software outsourcing providers’ sizes, locations, domains, and service offerings.
  • Time Zone Issues – To ensure smooth project coordination, make sure the developers’ working hours coincide with your time zone.

Key Benefits of Custom Software Development

The leading software development company is already taking advantage of having in-house custom software solutions.

No matter what kind of business you operate, success is crucial, right?

Success in today’s dynamic business environment greatly depends on the company’s capacity to maintain flexibility and agility.

According to Gartner’s research, the market for custom software development services is estimated to be worth $70 billion. Moreover, it is expanding at a 5% annual rate. 

Let’s examine how it can aid in streamlining business procedures, resulting in higher output and financial gain. 

Firstly Know the key benefits that custom software development services offer to clients and companies.  This will help you to make the best decision. 

  • Business-Oriented Unique Solution

The desire for your business to own the solution is the main driver behind creating custom software. Companies are able to use data, build methodologies, and perform software-based tasks.

Businesses can add essential details, execute customer feedback, and implement change at any point with customized software. 

Developing an interactive relationship with clients increases the company’s retention and reliability.

  • Personalized Software Solution

Although customization appears to be a clear advantage of custom software, why is it important? 

While off-the-shelf software provides standard features, but custom software development for your business creates a distinctive identity. This customized strategy makes your business stand out and more successfully meets certain needs. It gives you an edge over the competition.

Customized solutions assist you in overcoming obstacles and taking the lead in the industry.

  • Customer Satisfaction

According to McKinsey, 71% of consumers anticipate customized solutions from businesses, and 76% become irritated when they don’t.

To put it briefly, developing custom software is crucial for meeting customer needs. 

To generate better results, make sure the software responds to customer requests. Moreover, recognizes software bugs, and makes it easier for customers and programmers to communicate.

  • Security

Security is the main concern nowadays for business leaders. Hackers are aware of the security weaknesses in off-the-shelf software and can easily take advantage of them.

Compared to off-the-shelf solutions, custom software development offers businesses a safer and more durable solution. 

  • Developers can apply security measures tailored to your business needs and possible threats with custom software.
  • You have complete control over the location, processing, and security of your data when you use custom software.

Custom software development services are one way to reduce this danger. Software development companies make sure it received the most recent security fixes to keep your program secure and private,

  • Flexibility, Scalability, and Reliability

Scalability is also an essential component of your initial project scope if you’re looking to gain a competitive advantage. 

Custom software developers use top-notch tools and industry-leading security standards to create  software adaptable, scalable, and trustworthy

  • Room for Improvement

You cannot add functionality to ready-made apps if they are in comparison to custom software applications. 

Custom software programs, however, offer a great deal of room for improvement. This can be adjusted and modified to meet shifting development requirements. 

With software applications, businesses can expand and seize all available opportunities. This is a productive approach to using software apps to increase efficiency and establish your business. 

You are therefore responsible for all source codes, including functionality enhancements, code improvements, and app customization, migration, and maintenance by evolving business processes. 

  • Cost-Effectiveness

Companies can save the costs of buying, licensing, and maintaining off-the-shelf solutions that might not be perfect for their needs. 

Scalability can be considered when developing custom software, which removes the need for numerous unrelated systems.

Types of Custom Software Apps to Develop

However, it’s important to be aware of the specifics when looking for services for one of those solutions. 

Here is a list of types of software development apps that can help your business.

1. Content Management Systems (CMS)

Customer Relationship Management (CRM) software, enables companies to keep track of individuals, including clients, prospects, referrals, and suppliers for the marketing and sales division.

You can make changes with a content management system without having to start from scratch with coding. Content management systems include Zoomla, Wix, and WordPress.

2. Customer Relationship Management System

A customer relationship management system (CRM) helps businesses establish and maintain connections with clients, suppliers, associates, and future clients.

CRM facilitates effective departmental management, relationship-building, increased sales, and efficient business operations. 

3. Enterprise Resource Planning Software

Systems for enterprise resource planning, or ERP, assist companies in running their daily operations. Project management, supply chain operations, accounting, compliance, procurement, risk management, and other tasks are among them. 

4. E-commerce Software

You can create, administer, and release an e-commerce website with an effective CMS without knowing any code

Employ e-commerce software tools to increase advertising and marketing efforts.

5. Operation Management System

Businesses may streamline the manufacturing procedures and simultaneously manage multiple business processes with operations management software.

However, the primary goal of this software is to verify that procedures are successful and effective. This ensures that the clientele receives the most beneficial outcome. 

6. Enterprise Software Solutions

Businesses can improve their operations and leadership reporting tasks with the use of enterprise software solutions. This covers functions like automated billing systems, simple online payments, interactive product catalogs, and better safety.

What are the Major Concerns for Custom Software Development?

Apps are similar to organizations. Although they can be profitable, creating one can be difficult.

Additionally, only 0.5% of apps ever achieve significant success, much like enterprises.

When developing software from the software development company, recognize typical errors that could compromise the project’s possibility.

Businesses may achieve a more seamless development process and enhanced outcomes by identifying and avoiding these roadblocks. Prevent the following crucial errors:

1. Uncertain Objectives and Specifications

The software and business needs may not line up as a result of unclear goals and requirements. 

Establish the project’s scope, choose your target audience., Also, list all the essential features and functionalities upfront to avoid this.

2. Selecting an Appropriate Technology Stack

The technologies and equipment you’ll use for executing your custom software are referred to as your “tech stack.”

The coding language, operating systems, hardware architecture, database platforms, third-party libraries, and structures are all included.

3. Handling Vague or Changing Demands

Your project’s demands are its core and the secret to its ultimate success. They help you decide on tasks that need to be completed, how much is required, and the timeframe for completion.

Before the real work starts, the demands for the project should always be agreed upon by every individual, 

Track all information in a software requirements specification (SRS) file.

4. Creating Incorrect Features and Complicated Solutions

Involve end users early in the development procedure to avoid wasting money on unimportant features. A prototype can check that the features and functions align with corporate purpose and user needs.

5. Hidden Cost

The hard reality of contemporary software development is hidden costs, and software development companies do not assist.

A suitable Business Requirements Document (BRD) should be sent along with the Non-Disclosure Agreement (NDA). It is crucial to talk about cost estimation. This should be based on the BRD during the price negotiation phase. 

6. Absence of Project Management

Software development projects can easily devolve into chaos without adequate management, resulting in delays and cost overruns. Project management offers a framework for planning through execution.

This is essential to the success of software development projects. The PM makes sure everyone in the team is functioning effectively.

software development services

Different SDLC Models in the Custom Software Development

Software development models are different approaches that are selected for a project’s development based on its goals and objectives.

To accomplish a variety of crucial goals, several development life cycle models have been created. 

Selecting a suitable model is crucial when developing a software product or application. The model serves as the foundation for the development and testing procedures.

Top Software Development Models

  • Waterfall Model
  • Spiral Model
  • Agile Model

Different organizations opt for the development model type that best suits their needs. This is based on the software application or product. However, “Agile Methodology” is currently the most well-liked product on the market.

Let’s take a quick look at each model individually:-

1. Waterfall Model

The waterfall model of the SDLC is widely used. The entire software development process is broken down into different stages using this method.

The waterfall model is an ongoing software development approach.

In this model, the requirements evaluation, creation, execution, examination (validation), integration, and support are seen as steps that flow steadily downwards (like a waterfall).

Benefits of the Waterfall Model

  • This model is clear-cut and simple to comprehend.
  • This is incredibly helpful for little tasks.
  • The objective is predetermined.
  • This model’s phases are all clearly explained.
  • Gives a methodical approach to tasks.

2. Spiral Model

Large-scale, intricate projects employ this model. This model was given the name spiral because, upon closer inspection, its figure resembles a spiral. This model has a long, curved line originating at the center point and recursively looping around it. 

This is also called the Meta Model since it incorporates the methods of other SDLC models.

Benefits of the Spiral Model

  • We can also use this model to make any necessary software change or additional functionality in the future.
  • The cost of the project is simple to estimate.
  • At all stages, a risk test is conducted.
  • The customer can only view the software’s appearance in its early stages of development.

3. Agile Model

Agile Model

Iterative and incremental models are combined to create the agile model, which is composed of both types of models.

Customer satisfaction and process adaptability are prioritized in the Agile model.

However, developers now have a lot of challenges. The basic issue arises when the customer requests changes to the software during its development phase.

These changes are expensive and time-consuming to implement.

Agile has the following models:-

  • Scrum
  • Crystal methods
  • DSDM
  • Feature-driven development 
  • Lean software development
  • Extreme programming (xp)

Benefits of the Agile Model: 

  • Two programmers collaborate in this model, resulting in error-free code.
  • To make changing the requirements easier, the customer representative is aware of each iteration in this process.
  • This method of developing software is practical.
  • This has few rules and documentation.
  • Planning is not required for this.
  • Gives developers flexibility. 

How to Plan Your Budget for Custom Software Development?

How to Plan Your Budget for Custom Software Development_

Budgeting and planning help control expenses and ensure the best possible result. When organizing and allocating funds for a custom enterprise software development project, take into account the following factors.

Set a Project Cost Limit

To avoid overspending, define a maximum budget for the development project. Consider this figure while you rank features and divide the budget properly.

Examine the company’s income, profit, and loss records, and other recurring costs to establish the project’s upper-cost limit.

Make appropriate funding allocations using this information.

Outline the Project Requirements

Work with the product team to develop a thorough requirement list to precisely estimate the project’s cost. Identify each function and feature that your custom software solution must have.

Plan for Several Iterations

To create a product that will amaze your customers, plan on going through multiple iterations of the project.

This may result in a longer project timeline and more labor costs related to development from a budgetary standpoint. Be prepared for unforeseen costs or expenses.

Budget for Maintenance Fees

The product’s performance needs to be updated and maintained by developers after it is released. Many development firms provide a monthly or yearly maintenance service. 

In any case, the development budget must account for these costs.

Process or Steps Involved in Custom Software Development

Designing custom software involves several phases: planning, designing, developing, testing, and deploying.

Process or Steps Involved in Custom Software Development

Identify Your Requirements

You probably know roughly what you want your software solution to do, but is there anything specific you need it to do? 

The first step in developing custom software is compiling a list of the features and specifications.

Thoroughly and consistently review your current processes, needs, and gaps. 

This results in productive conversations with software development company about everything.

Choose Your Development Partner

Software developer supports a success-driven mindset, and solve problems rather than offering quick fixes.

Their exceptional technical skills and business acumen guarantee collaboration and consensus among teams. 

When choosing software development companies in Dubai, test their commitment and ability with pointed questions.

Choosing the right software development company is essential to accomplishing your goals.

Because it can have a significant impact on the achievement or otherwise of your software.

Plan Your Project

After selecting your software development companies, careful preparation starts with a research stage.

Stakeholders work together to refine requirements by collaborating on business and technical aspects.

Stress the significance of this stage to guarantee project success and steer clear of shortcuts.

This is the critical stage of preparation for efficient custom software development.

Develop & Implement Your Solution

Testing and development happen at the same time, enabling corrections before delivery. Software engineers, QA, and design engineers need to collaborate with stakeholders. 

The stages of deployment are as follows: first data upload, feedback collection, and complete rollout. 

This allows for step-by-step bug detection. This will help fix all issues before the full launch, maximizing the quality and accuracy of the software.

Testing & Quality Assurance

To find and fix bugs early on, quality assurance (QA), which is carried out concurrently with coding, is essential. 

This requires a minimum of  30% project’s time. For efficiency, ideally, some other team should oversee it.

By preventing expensive rework, early quality assurance helps projects stay on schedule and meet quality standards.

Post Launch Maintenance & Support

Your custom software development company continuous support is essential post-launch as well.

Although developing custom software is a complicated process. Working with software development companies in Dubai ensures specialized support and solutions. These are particularly designed for rising business.

Let’s discuss how our tailored apps can help you achieve your company’s objectives.

Get in touch with the software development company Dubai right now.

Explore Different Pricing Models in the Custom Software Development

A company must consider several critical decisions when choosing to outsource its development needs. This includes selecting the appropriate team and determining the precise range of services required to finish the project. 

The pricing model for software development is a critical decision to make.

Four different pricing models

  • fixed price, 
  • time and material, 
  • mixed model, and 
  • dedicated team

These models can change the direction of your custom software development projects. 

  • Fixed Price Pricing Model

Custom Software Development Pricing Model Pros and Cons

Fixed pricing models work well for short-term projects with tight budgets and deadlines.

All requirements, mockups, and technical documentation be predetermined and static.

The service provider bears the responsibility for seamless operations, punctual completion, and budgetary compliance.

When the project scope is predetermined and changes are not expected, this model works best.

  • Time and Material Pricing Model

A flexible pricing model allows adjustments as the project develops and bases fees on the number of project hours.

Regularly payments are usually made on a monthly basis.

Perfect for projects that last longer than two months, have changing requirements, and don’t have tight financial restrictions.

This model allows for ongoing tweaks for best outcomes and real-time progress tracking.

  • Mixed Pricing Model

This model is perfect for short- to medium-term projects requiring swift completion for market deployment.

This allows constant changes, multiple revisions, and active client input to get the best results in a short time.

  • Dedicated Team Pricing Model

Get complete control over the pricing model for your team.

You can interview and choose team members, change the size of the team, and have direct communication with them.

Take control over project scope, budgets, and the completion while getting paid every month.

Perfect for people looking to get actively involved in development who have experience managing projects.

Key Factors to Consider When Choosing a Custom Software Development Partner

Selecting the ideal custom software development companies in UAE for your business is an important choice.

Did you know that 80% of companies think customized applications give them a competitive advantage? 

Choosing the wrong partner can result in missed deadlines, unforeseen expenses, and a software solution that is not up to par. 

Create a high-quality, tailored software solution.  This can fulfill your company’s aims and objectives. And, for that, you need to get in touch with the right Software Development Company. 

Things to Take Into Account When Choosing the Best Partner for Custom Software Development

Below are some of the important key factors to consider when selecting a best custom software development partner:

Understand Business Needs

This is important to understand your particular business needs. Know the goals before you begin searching for a tailored software solutions provider. 

What difficulties are you having, and how can using bespoke software help you get past them? 

What functions and features are essential, and what are your future objectives? Now contact the best software development companies in Dubai.

Check Expertise and Experience

Skills and experience are important considerations when choosing a custom software development partner.

The quality, flexibility, and safety are directly impacted by the technical expertise of the software development company.

Inquire about companies’ technologies, tools, and processes for developing custom software. Make sure they have the understanding to build your software throughout its lifecycle.

Communication Skills

Seek a partner who is easy to work with, communicative, and responsive. To ensure a seamless development procedure, ensure that they are prepared to collaborate strongly with your team. Your team should have a clear communication plan.

Assess Quality Assurance and Testing Processes

Inquire about the testing and quality assurance procedures used by the vendor. Thorough testing assures that the program runs smoothly, is free of errors, and satisfies the needs of all stakeholders. Know about testing procedures, equipment, post-development support, and bug-fixing policies.

Portfolio and Client References

A thorough portfolio reflects the range and caliber of a business’s output.

It brings attention to the range of industries they have served.  This also shows the various solutions they have developed and the difficulty of the projects they have worked on. 

It gives insight into the company’s methodology, approach, and mindset. Feel free to ask for a portfolio. 

Evaluate Pricing and Business Model

Before you work with a software development company you must have an in-depth knowledge of the financial components.

Pricing and business model are crucial factors when choosing a tailor software development company in Dubai.

Clear pricing ensures what you’re getting, aids in proper budgeting, and guards against unforeseen expenses. Clearly defined payment terms facilitate better cash flow management.

You must know the payment deadline, the approved payment options, and the terms for delays and cancellations.

Check Security Measures

Seek a partner who adheres to best practices for data protection and who places a high priority on security. 

Check whether they have a plan to address security weaknesses and can provide frequent security fixes and upgrades.

Trends in Custom Software Development in 2025

The field of software development is ever-changing, constantly to meet the needs of users and modern technologies. Know the major trends that will be influencing the software landscape in 2025.

Discover the top software industry trends:

Increasing Blockchain Usage

Blockchain technology will disrupt traditional practices as more companies in various industries choose to use it for its benefits. The blockchain market will reach $39.7 billion by 2025, according to Statista, demonstrating the increasing demand for this technology.

AI Evolution

AI is developing and opening new avenues for commercial creativity. New software technologies are driving a wave of opportunities brought forth by the rapid advancements in AI. 

Focus Is On the Cloud

These services give companies the flexibility to grow or reduce as needed during times of crisis. 

A Rise in No-Code/Low-Code Projects

Programming with Low-Code/No-Code (LCNC) has become a major trend in the software development process. It makes application creation accessible to non-technical users, thereby minimizing the lack of software engineers.

More Into Modern Languages

Developers are drawn to rising languages like Rust, Go, and Kotlin. This is because of the contemporary features and functionalities. This is indicative of a noteworthy trend in programming in 2025. Rust is becoming more popular because of its emphasis on productivity, accuracy, and performance.

An Increase in Progressive Web Applications

PWAs, or progressive web apps, are hybrid apps that blend the finest features of mobile and web applications.

This technology is adopted and accepted in the way that it deserves. Additionally, Emergen Research estimates that by 2027, the global PWA market could be worth roughly USD 10.44 billion.

PWAs give website owners a great chance to enhance the user experience even further with app-like features.

Investing in PWA is the ideal solution for your company. 

A Focus on Cybersecurity

Businesses will prioritize security because of the rise in cyber threats and data breaches. To ensure data protection, it’s essential to put strong security measures. Keep up with emerging threats, and teach staff members secure procedures. The global cybersecurity market will reach $345.4 billion by 2026, indicating the significance of this trend.

Internet of Behavior (IoB) For Customization

This is a successful strategy. Thus, the more successful your service is, the more users will modify their strategy.

IoB integrates data sources from BI, Big Data, and CDPs. This also includes user behaviors, interests, and preferences. This data is gathered from wearable technology, personal internet usage, and electrical appliances in the home. It provides important insights into the habits and passions of the users.

IoB and IoT check, combine, and examine large data from different online activities and personal behavior.

Augmented Reality And Virtual Reality

Our interactions with digital environments are evolving thanks to augment reality (AR) and virtual reality (VR). These innovations are employed to develop immersive experiences in training and gaming.

As the digital revolution progresses, companies are taking advantage of augmented reality’s alluring attributes, like Virtual showrooms, 3D modeling, try-on tools,

Furthermore, the development of AR/VR has reduced barriers to entry and increased readiness. This allows small and medium-sized enterprises benefit from improved virtual experiences.

Microservices Architecture

The microservices architecture split applications into small, independent services that actively interact with each other.

As a result, it is simpler to scale or update individual applications without impacting the entire system. Netflix and Amazon effectively used this architecture

Kubernetes’s Future Is Bright

An open-source container-management platform called K8 or Kubernetes, also known as Kube. This automates several tasks, including scaling, deploying, and managing containerized applications. 

Kubernetes uses web traffic levels to automate web server provisioning during the development phase. 

Kubernetes can handle workloads distributed across several clouds or running on a single cloud.

Outsourcing Demand Will Be The Top Priority

Outsourcing software development has gained popularity. This has become a standard approach that every company chooses over hiring an internal team. According to the Deloitte report, 70% of participants cited cost reduction as their top outsourcing concern.

On the other hand, software development outsourcing is the best option for startups. This gives them access to a vast pool of resources. 

Conclusion

Here is everything you need to know about custom software development.

So if you are seeking to hire a company for your project, get in touch with us. Create enterprise software solutions for various industries with the leading custom software development company Dubai. Prepare to use custom software solutions to transform your company.

When starting custom software development, choose the right partner and approach to maximize your company’s potential.

To discuss your unique needs and challenges, get in touch with software development companies in the UAE.

develop software applications



Get In Touch
partnership
Join, Sell & Earn

Explore Our Partnership Program to Sell
Our Fully Customized Tech Solution To Your Clients.

Partner With Us!

Wait! Looking for Right Technology Partner For Your Business Growth?

It's Time To Convert Your Business Idea Into Success!

Get Free Consultation From Top Industry Experts:
gif
I would like to keep it to myself