Insights | How to Define Your Software Development Methodology

How to Define Your Software Development Methodology

By Andy Hilliard | February 4, 2015

How_to_Define_Your_Software_Development_Methodology_and_Engineering_StructureYour software development methodology defines the processes and procedures used to develop your software. It also includes the details of source code control and defect tracking as well as acceptance tests and release criteria.

The history of software development is only about 50 years old. We have come a long way from the early days of machine language programming and assembly language. Compiled languages have improved individual programmer productivity.

In the early days of software, ideas for programs often came from the programmers themselves. In fact, most programmers dreamed of ways to make their programming work easier. For me, this desire is captured by the aphorism I first saw as a graffiti in the computer center at Worcester Polytechnic Institute in 1978: “I would rather write programs to help me write programs than write programs.”

Today, sophisticated interactive development environments (IDEs) like Visual Studio and Eclipse give a tremendous boost to programmer productivity. In addition to individual programmer productivity, the productivity of programming teams has also improved in the last few years. There are now multiple processes and methodologies for you to choose from.

Will you use pair programming and test-driven development? Do you prefer agile development methods over the rational unified process? Are you using Microsoft technology and following a model driven architecture approach?

There is no one right answer that suits every product or software development project, outsourced or not. Consider various approaches and choose a methodology that you have had success with before or that feels right to you. You don’t need to religiously follow all the elements of any particular methodology or even adopt a label for the one you choose.

Personally, I recommend agile development methods because of the commitment to frequent software builds and releases. It is a great way to track the progress of your software development and make corrections if results veer from the plan or if the plan changes, as it inevitably will.

Whatever software development methodology you choose, you must make sure that the outsourced team understands your process. In fact, the ability to work with the methodology to be used should be an important criterion for choosing your outsourced team to begin with.

Define Your Engineering Management Structure

Professional software development teams have a structure for effectively managing and achieving success with software development. When you are outsourcing, that structure applies to your in-house team as well as the offshore team.

Should your CEO be in charge of the day-to-day activities of your outsourced software development? Probably not. But it is important to make someone in your company responsible for the successful delivery of your software. To get the job done, he or she needs to have the authority to deal with the in-house employees responsible for various aspects of your software, as well as the authority to deal with the outsourced team.

You should have a core technical team within your organization that does product or project management rather than coding. It is a mistake to hire very technical, hands-on programmers to manage software development when using outsourcing.

Your core technical team will be comprised of experienced product and engineering managers to handle the coordination of your outsourced teams. Do not rely exclusively on the project management resources within the outsourced team to guide your product to successful release. Only your employees have the proper perspective that comes from proximity to your customers to play this role.

A good rule to follow is: outsource your software development, but not the entire responsibility for success.

More from Accelerance

September 18, 2020

Spotlight on Colombia: Thriving Software Development Outsourcing Industry

I’ve been to Colombia four times on business trips – twice as a client, working on projects with there; and most recently, after joining the company myself, introducing a new client to the...

July 29, 2020

Spotlight on Costa Rica: Central America's Calling Card

When it comes to work/life balance, Costa Rica gets it right. In this beautiful and peaceful country, a “work hard and play hard” approach to life is the perfect mix. If you’re heading over on a...

July 27, 2020

Spotlight on Uruguay: South America’s Best-Kept Secret

Uruguay may be the second-smallest country in South America, with a population of just 3.5 million, but it’s the leading software exporter per capita in the region. Lying between Argentina and...


August 15, 2020

2020 Guide to Software Outsourcing Rates

Gain insight into the latest rates for software development outsourcing resources with our proprietary benchmarking guide that offers:

July 27, 2020

2020 Guide to Software Outsourcing in Latin America

Qualified software engineering teams are not easily found. 

September 17, 2019

What CTOs Need to Tell CFOs About Software Development Outsourcing

Alignment between your company’s CFO and IT strategy is significant to outsourcing software development

Tech leaders and CFOs need to speak the same language when selecting a software outsourcing...

How can we help you succeed?

We make outsourcing successful with innovative partner selection services and tailor-made consulting solutions to ensure your desired outcomes.

Let’s Get Started