Andy Hunt. Author, Publisher,
What IS the most important thing?
Published in Andy's Blog
The other day an interviewer asked me to volunteer what I thought were the most important factors to successful software development.
That’s a really good question.
I don’t think you can have a definitive answer, but off the top of my head I thought of three things. These might not be the most important, but they are certainly very important.
1) Learning what is to be built.
I say learning, not knowing, to emphasize that it is an ongoing process. At day one on the project, you know the least about the project and the needs of the users. By the end of the project, you will have learned the most about it. Learning continues throughout the project lifecycle, and reaches it’s height closer to the end than the beginning. Therefore it makes sense to use an agile and iterative approach; to defer critical decision making until late in the project; and to fundamentally to realize that we will be constantly working with incomplete knowledge.
2) Correctly applying skill levels.
There is a vast difference in performance between highly skilled developers and moderately skilled or novice developers. A project can produce more code, more quickly, with 2 or 3 highly skilled developers than it can with 20 of lesser skills. Teams of novices need to be treated as “farm teams” and developed within the organization to produce highly skilled developers for the demanding production-ready small teams. Developers need to be compensated according to the value they deliver to the organization; we’re not interchangeable based on our stated “salary grade” or years of experience; these are unreliable measures.
3) Maintaining good hygiene.
In most professions, there are standards and regulations to keep the workplace clean to prevent injury or product damage. We are no different: every project needs robust and reliable version control and backup strategies (including offsite backup and support for mobile-enabled version control). Every project needs developer-level unit tests in place for all submitted code, and all code should be examined by at least one other developer other than it’s author, whether by formal or informal code reviews or continuous review as in pair-programming.
The most important things? Probably not. But it’s a good start.
What do you think the most important thing is?
New novel: Weatherly Hall
August 10, 2021
The Pragmatic Programmer, 20th Anniversary Edition
May 7, 2019
New Album, "far flung thoughts"
February 28, 2019
- List All News...
Why Are There So Many Misconceptions Around Agile?
November 20, 2020
The Four Keys To Rapid Response Software Development
January 14, 2019
Bailing Out Your Company
September 12, 2018
- List All Articles...
Upcoming and Recent Appearances
- Private Keynote, Fortune 500 company. Sep 30, 2020
- TDev Conference Keynote. Oct 3, 2020
- Private Keynote, Large Venture Capital firm. Oct 20, 2020
- DevOps Summit Keynote. Nov 7, 2020
- AgileMovement.it Keynote Nov 14, 2020
- Empowering Agile Fireside Chat, Feb 25, 2021
Email email@example.com to book Andy for your next keynote or session.