What it takes to make successful software project

Sandeep Jagtap
Nov 19, 2020
Kids learning Programming

Following are the things I have seen working based on more 2 decades of experience that I have in the software industry. I have worked both on Waterfall and Agile methodologies (Extreme Programming aka XP , Scrum,etc) of software development.

Empathy in Team:

For any software team where number of team members are more than 5, Empathy in Team is the most important thing to make a successful project.

Empathy is the capacity to understand or feel what another person is experiencing from within their frame of reference, that is, the capacity to place oneself in another’s position — Wikipedia.

Team outings, Team dinners help here greatly. Keep fun going!

Understanding Vision of Business Problem:

Development team has to ‘GET’ what business vision is!

High/Rough level vision/view of Architecture/Solution:

Developers have to know this to build maintainable software.

Dev Team’s interest in ‘getting’ domain insights over period of project:

Learning and understanding the domain as the project evolves.

Test Driven Development:

Building safety nets so that adding new features/functionality is cheaper (efforts and money).

Pair Programming:

Continuous review of code being written. Two brains are better than one; also, four eyes are better than two.

CI/CD:

Each code checkin should be ready to be deployed to Production/End Users. Trunk based development using feature toggles, automated db migrations, automated tests, etc. will be useful.

Automated tests:

Automate! Reduce cost of manual testing and builds confidence to deploy new functionality to production.

Thanks for reading. If you find some other things useful for making software project successful based on your experience, please type a response below:

--

--

Sandeep Jagtap

Coding Architect and Tech Principal at ThoughtWorks. https://www.thoughtworks.com. O’Reilly Trainer for Domain Driven Design and Microservices