The Good, the Bad, and the Ugly Truth About Developing Software Today – Part II
This is the second installment of a series on the current landscape of software development. Within the series, Intertech owner, Tom Salonek, talks about the good, the bad and the really ugly of this rapidly changing field including where the challenges, and opportunities for improvement, lie.
Failed IT Projects: The Ugly Truth
Dogs at work. Insane hours. Beer bongs in the break room.
Oh, the crazy days of IT yore!
If you were developing software when these were hot trends, you know there’s another legacy that’s not quite as fun to remember: failed IT projects. From extreme cost overruns to missed deadlines to projects that were canceled mid-way through, the track record for wildly successful software development projects is less than perfect (see my previous post for more about that bad news).
But Wait, There’s Good News Too
But here’s some good news: software development has come a long way since the ‘90s! Instead of the traditional Sequential or “Waterfall” development process – which involved a long process of requirements gathering in the beginning, followed by design, development, and testing – many developers (including ours) now use the Agile or “Collaborative” development process.
I think of Agile as reality-based development because life, work and, well, software development, is all about change. (If you’ve been alive longer than five minutes you know that’s reality!) When an Agile approach is used, changes are easily accepted and adapted. In fact, with Agile, change is baked right into the process.
Agile: Getting Work Done Your Way
But don’t confuse change with confusion. Progress must be made and measured on a regular basis. When Agile is in use, progress is measured in “iterations,” which translates into a tangible work product. Multiple iterations provide the project foundation, with each one taking from one to four weeks to complete (two-week iterations or “sprints” are most common).
One of the best things about Agile software development is that it keeps all parties actively engaged and work gets done in the way they like best. Customers (or other key stakeholders) determine the priority order of the iterations and other key decisions. Developers – many of whom are Millennials that thrive on continuous feedback and teamwork – can deliver working software with each iteration. A classic win-win!
“There is pleasure in the pathless woods,” declared an 18th-century poet. Maybe that’s the best environment for developing poetry, but software development works best with a clear path. That’s why Agile involves a work plan defining each step before any work begins, with plenty of flexibility for adaptation as changing circumstances dictate. Best of all, using an Agile software engineering approach adapted to an organization’s specific culture, history and staff mean more accountability and less waste.
We’ve come a long way since the crazy ‘90s as Agile-based development is proving every day. (There may not be many dogs in offices anymore, but successful software projects don’t need to rely on gimmicks to distract developers from terrible projects!)
Next, I’ll share thoughts on what to look for and how to work with team members and partners.
About Tom Salonek
Tom Salonek is the founder and CEO of Intertech. Founded in 1991, Intertech is the largest combined software development consulting and training firm in Minnesota, designing and developing software solutions that power Fortune 500 businesses, mid-sized companies, and state government. Tom is also the author of the book, “The 100 Building Blocks for Business Leadership”, which outlines 100 successful management practices that are used at Intertech as well as learned at Salonek’s executive education study at Harvard School of Business and the Massachusetts Institute of Technology.