SlideShare a Scribd company logo
1 of 7
Keywords: software development practices, software development, software development
project
_________________________________________________________
12 Best Software Development Practices that Reduce Cost, Improve
Productivity and Accelerate Delivery
Many software projects fail to achieve their goals. A study by McKinsey pointed out that 66% of
large software projects overshoot their budget. 33% fail to meet their deadline and 17% deliver
less than predicted value.
On more startling fact came up during the study- 17% of the projects are complete failures and
they threaten the very existence of the company.
A report by Geneca presents some eyebrow-raising figures:
 75% of people involved in the software development project admit that they do not
have confidence in the success of the project.
 80% say that they spend half of their time on rework
 78% complain that business is not in sync with project requirements
 45% are not clear about the business objectives of the project.
Going by the facts and figures, successful completion of the software development project can
be a distant dream.
The article discusses the 12 best software development practices used by great IT companies to
achieve success.
1. Choose the best development process
There are different software development methodologies like Spiral, Prototyping, Waterfall,
Agile, etc to choose from. Brainstorm, research and analyze the best development lifecycle
process based on the project requirements.
If time is a big factor than Rapid Application Development (RAD) is the best option. For
software project spread over different cross-functional teams, the Agile methodology is the
perfect choice.
A spiral process is divided into multiple phases. At the end of each phase, the stakeholders can
take a go or no-go decision. This type of development reduces the underlying risks to a great
extent. But the development time increases.
2. Set realistic time and budget
A realistic estimate takes off the pressure from software development project when it comes to
working within the budget constraints, meeting deadlines and overcoming technical challenges.
A perfect estimation may look impossible because of many variable factors. But with help of
experience, in-depth analysis and tools available, it is always possible to create a right estimate.
Do not cramp up the development process by adding more than required modules. It will only
create a pressure cooker situation. That would translate into a spiraling budget and missed
deadlines.
3. Recruit skilled and experienced people
The best technology and tools will not deliver the desired result if they are not in the hands of the
experts. Hire expert project manager, technical lead or architect with good communication skills
needed to efficiently manage software development team(s).
Inexperienced and under-trained people deliver mediocre results because they do not understand
or are not experienced enough to apply latest, cutting-edge technologies, and tools in the
development process.
4. Use Latest, Cutting-edge technology
Many Fortune 500 companies have successfully implemented proven, mature technologies for
software development projects and gained a distinctive edge in the competition. Though it
comes at a big price, the return in the form of successful and timely completion and deployment
of the project dwarfs the IT spend.
5. Gather requirements
Every software development project has its own requirements. Gather requirements and create a
broad consensus among the stakeholders, and set up a clear development path. And that extends
beyond fixing the architecture, design, and coding and development methodologies.
The development team(s) should understand well the functional and non-functional aspects of
the quality requirements of the project. The latter describes the performance and system
characteristics of the software application. Gathering the right requirements positively impacts
the design, deployment, and performance of the software development project.
6. Create the right architecture and design
One of the key to successful software application development is choosing the perfect
architecture. Choose from the tried and tested patterns like Gang of Four, Java Patterns, Core
JEE Patterns or EJB Patterns. Study the “antipatterns” well because they give insight into what
works and what does not, and why when it comes to implementing the architecture.
A good architecture can still have a bad design. And a bad design is either – over-designed or
under-designed. A better approach is to keep the design simple and perform Object-oriented
Analysis and Design using UML. Practice code re-use though initially it requires creating
reusable assets. But ultimately improves productivity and speeds up the development cycle.
7. Streamline coding process
Follow the concept of continuous code integration and testing throughout the project
development. It is an agile way to streamline the coding process that thrives on code re-use. Use
daily build and smoke test to construct and test codes on a daily basis. Automate the code testing
with self-testing code. Remember though code construction is a small part of the software
development project it is the most visible one.
In the nutshell when it comes to coding do the following:
 Keep the code simple
 Continuously test it from end to end
 Keep it consistent across teams
 Make code validation a transparent process
8. Perform Rigorous performance testing
Performance testing is the fine sieve that catches software defects. Extend it beyond its capacity
to catch the coding defects; to catching architectural defects too. The best way to do that is to
stimulate load testing of the application(s). This allows dealing effectively with performance
issues during the development phase, rather than become problems later and a reason for failure
– post deployment.
9. Ensure flawless data migration
Many software development projects are nothing but enhancements of the existing
applications. They need up-gradation, due to the integration of new technology or platform,
driven by the customer demand and competition. In that aspect flawless data migration is the
need of the hour. Data migration is a major project by itself, which should be handled by experts
within the team.
10. Use source control management
Create a Source Control Management (SCM) system. Place all the documents and source code
under the version control of SCM. The development team can access the previous versions of the
project related data like test scripts plans, architecture and design data and use cases, whenever
needed.
11. Create mini-milestones
Break-up milestone into mini-milestones and place a major milestone at the end of a specific
project development phase. The mini-milestones are measured in hours and usually last for one
or two days.
In a way, it provides a more microscopic analysis of the entire software development path. The
benefits are better status reporting and fine-grained control over the entire development process.
This is turn reduces the underlying risks and improves the productivity of the project.
12. Track project hours
Projects are time-driven. If the individual hours (and individual milestones) are not tracked then
a project is more likely to overshoot the deadline; and over shoot the budget too.
And this problem compounds more in the large software development projects where entire
project is divided into different modules, distributed across multiple teams. Hence every software
project should have an inbuilt time management system that keeps track of individual hours and
shows the difference between the actual hours spent and the estimated total project time, at any
given moment during the development phase.
Conclusion
Any ideal software development project may never exist. Every project has its own
shortcomings, technical and budgetary constraints, users, codebases, bugs, test cases and other
components. Hence the best way forward is to follow the proven software development
practices explained above.
Best practices for software development projects- Navneet Vats

More Related Content

More from Navneet Vats

Cambay Wedding and banqueting bochure
Cambay Wedding and banqueting bochureCambay Wedding and banqueting bochure
Cambay Wedding and banqueting bochureNavneet Vats
 
MICE BROCHURE CAMBAY
MICE BROCHURE CAMBAYMICE BROCHURE CAMBAY
MICE BROCHURE CAMBAYNavneet Vats
 
EBOOK ON UX - Navneet Vats
EBOOK ON UX - Navneet VatsEBOOK ON UX - Navneet Vats
EBOOK ON UX - Navneet VatsNavneet Vats
 
10 Top Designer Denim Styles Hard to Resist _ Navneet Vats
10 Top Designer Denim Styles Hard to Resist _ Navneet Vats10 Top Designer Denim Styles Hard to Resist _ Navneet Vats
10 Top Designer Denim Styles Hard to Resist _ Navneet VatsNavneet Vats
 
Tetris Manual_Navneet Vats (1)
Tetris Manual_Navneet Vats (1)Tetris Manual_Navneet Vats (1)
Tetris Manual_Navneet Vats (1)Navneet Vats
 

More from Navneet Vats (12)

Cambay Wedding and banqueting bochure
Cambay Wedding and banqueting bochureCambay Wedding and banqueting bochure
Cambay Wedding and banqueting bochure
 
MICE BROCHURE CAMBAY
MICE BROCHURE CAMBAYMICE BROCHURE CAMBAY
MICE BROCHURE CAMBAY
 
EBOOK ON UX - Navneet Vats
EBOOK ON UX - Navneet VatsEBOOK ON UX - Navneet Vats
EBOOK ON UX - Navneet Vats
 
Manage Files
Manage FilesManage Files
Manage Files
 
Task Status
Task StatusTask Status
Task Status
 
Create an Event
Create an EventCreate an Event
Create an Event
 
Create a message
Create a messageCreate a message
Create a message
 
10 Top Designer Denim Styles Hard to Resist _ Navneet Vats
10 Top Designer Denim Styles Hard to Resist _ Navneet Vats10 Top Designer Denim Styles Hard to Resist _ Navneet Vats
10 Top Designer Denim Styles Hard to Resist _ Navneet Vats
 
Copywriting
CopywritingCopywriting
Copywriting
 
Tetris Manual_Navneet Vats (1)
Tetris Manual_Navneet Vats (1)Tetris Manual_Navneet Vats (1)
Tetris Manual_Navneet Vats (1)
 
WIMAX Technology
WIMAX TechnologyWIMAX Technology
WIMAX Technology
 
Guest Blogging
Guest BloggingGuest Blogging
Guest Blogging
 

Best practices for software development projects- Navneet Vats

  • 1. Keywords: software development practices, software development, software development project _________________________________________________________ 12 Best Software Development Practices that Reduce Cost, Improve Productivity and Accelerate Delivery Many software projects fail to achieve their goals. A study by McKinsey pointed out that 66% of large software projects overshoot their budget. 33% fail to meet their deadline and 17% deliver less than predicted value. On more startling fact came up during the study- 17% of the projects are complete failures and they threaten the very existence of the company. A report by Geneca presents some eyebrow-raising figures:  75% of people involved in the software development project admit that they do not have confidence in the success of the project.  80% say that they spend half of their time on rework  78% complain that business is not in sync with project requirements  45% are not clear about the business objectives of the project. Going by the facts and figures, successful completion of the software development project can be a distant dream.
  • 2. The article discusses the 12 best software development practices used by great IT companies to achieve success. 1. Choose the best development process There are different software development methodologies like Spiral, Prototyping, Waterfall, Agile, etc to choose from. Brainstorm, research and analyze the best development lifecycle process based on the project requirements. If time is a big factor than Rapid Application Development (RAD) is the best option. For software project spread over different cross-functional teams, the Agile methodology is the perfect choice. A spiral process is divided into multiple phases. At the end of each phase, the stakeholders can take a go or no-go decision. This type of development reduces the underlying risks to a great extent. But the development time increases. 2. Set realistic time and budget A realistic estimate takes off the pressure from software development project when it comes to working within the budget constraints, meeting deadlines and overcoming technical challenges. A perfect estimation may look impossible because of many variable factors. But with help of experience, in-depth analysis and tools available, it is always possible to create a right estimate.
  • 3. Do not cramp up the development process by adding more than required modules. It will only create a pressure cooker situation. That would translate into a spiraling budget and missed deadlines. 3. Recruit skilled and experienced people The best technology and tools will not deliver the desired result if they are not in the hands of the experts. Hire expert project manager, technical lead or architect with good communication skills needed to efficiently manage software development team(s). Inexperienced and under-trained people deliver mediocre results because they do not understand or are not experienced enough to apply latest, cutting-edge technologies, and tools in the development process. 4. Use Latest, Cutting-edge technology Many Fortune 500 companies have successfully implemented proven, mature technologies for software development projects and gained a distinctive edge in the competition. Though it comes at a big price, the return in the form of successful and timely completion and deployment of the project dwarfs the IT spend. 5. Gather requirements Every software development project has its own requirements. Gather requirements and create a broad consensus among the stakeholders, and set up a clear development path. And that extends beyond fixing the architecture, design, and coding and development methodologies. The development team(s) should understand well the functional and non-functional aspects of the quality requirements of the project. The latter describes the performance and system characteristics of the software application. Gathering the right requirements positively impacts the design, deployment, and performance of the software development project. 6. Create the right architecture and design One of the key to successful software application development is choosing the perfect architecture. Choose from the tried and tested patterns like Gang of Four, Java Patterns, Core JEE Patterns or EJB Patterns. Study the “antipatterns” well because they give insight into what works and what does not, and why when it comes to implementing the architecture. A good architecture can still have a bad design. And a bad design is either – over-designed or under-designed. A better approach is to keep the design simple and perform Object-oriented
  • 4. Analysis and Design using UML. Practice code re-use though initially it requires creating reusable assets. But ultimately improves productivity and speeds up the development cycle. 7. Streamline coding process Follow the concept of continuous code integration and testing throughout the project development. It is an agile way to streamline the coding process that thrives on code re-use. Use daily build and smoke test to construct and test codes on a daily basis. Automate the code testing with self-testing code. Remember though code construction is a small part of the software development project it is the most visible one. In the nutshell when it comes to coding do the following:  Keep the code simple  Continuously test it from end to end  Keep it consistent across teams  Make code validation a transparent process 8. Perform Rigorous performance testing Performance testing is the fine sieve that catches software defects. Extend it beyond its capacity to catch the coding defects; to catching architectural defects too. The best way to do that is to stimulate load testing of the application(s). This allows dealing effectively with performance issues during the development phase, rather than become problems later and a reason for failure – post deployment. 9. Ensure flawless data migration
  • 5. Many software development projects are nothing but enhancements of the existing applications. They need up-gradation, due to the integration of new technology or platform, driven by the customer demand and competition. In that aspect flawless data migration is the need of the hour. Data migration is a major project by itself, which should be handled by experts within the team. 10. Use source control management
  • 6. Create a Source Control Management (SCM) system. Place all the documents and source code under the version control of SCM. The development team can access the previous versions of the project related data like test scripts plans, architecture and design data and use cases, whenever needed. 11. Create mini-milestones Break-up milestone into mini-milestones and place a major milestone at the end of a specific project development phase. The mini-milestones are measured in hours and usually last for one or two days. In a way, it provides a more microscopic analysis of the entire software development path. The benefits are better status reporting and fine-grained control over the entire development process. This is turn reduces the underlying risks and improves the productivity of the project. 12. Track project hours Projects are time-driven. If the individual hours (and individual milestones) are not tracked then a project is more likely to overshoot the deadline; and over shoot the budget too. And this problem compounds more in the large software development projects where entire project is divided into different modules, distributed across multiple teams. Hence every software project should have an inbuilt time management system that keeps track of individual hours and shows the difference between the actual hours spent and the estimated total project time, at any given moment during the development phase. Conclusion Any ideal software development project may never exist. Every project has its own shortcomings, technical and budgetary constraints, users, codebases, bugs, test cases and other components. Hence the best way forward is to follow the proven software development practices explained above.