If I Ran a Software Company: My Vision for Trust, Innovation, and Teamwork – Part 2

Welcome to Part 2 of my article on what I would do if I ran a software company. If you missed Part 1, feel free to catch up before diving into this post, as this installment continues to explore my vision for leading a software team or company.

Top-of-the-Line Computers and Tools

To maximize productivity, every software engineer deserves the best tools at their disposal.

Computers

Every developer, including graphic artists, should receive a new computer at least every two years—ideally, every year. This policy would apply across the company. Once new machines are introduced, older computers can be reassigned internally, ensuring everyone is equipped for peak performance.

At Proflowers.com, I discovered that two remote developers were still using computers five years old. As valuable resources, developers should not be wasting precious minutes waiting for tasks like compilation. Each minute spent waiting equates to lost revenue and delayed feature development, so providing high-performance machines is crucial.

In my experience, transitioning to cloud-based development environments, specifically Azure, has been a game-changer. I have been leveraging virtual machines since 2005, which offer advantages like streamlined onboarding with pre-configured images, easy backups, and instant scalability. It is a logical, efficient solution that maximizes both cost-effectiveness and resource utilization.

Tools

Beyond hardware, the right tools are essential for success. Every developer requires a suite of tools tailored to their specific role—Visual Studio, source control systems, third-party utilities, and more.

  • Visual Studio: For optimal productivity, every developer would use Visual Studio Enterprise. In a past role, the use of only the Community version for all developers (except for me) underscored the misalignment with best practices. Visual Studio Enterprise’s comprehensive feature set is essential for maintaining high standards.
  • Source Control: While improvements have been made, source control systems often present challenges with commits and merges. Cheap open-source solutions are simply not an option. We would use GitHub as the backbone, as it integrates seamlessly with Visual Studio and offers essential project management, continuous builds, and deployment capabilities. I once witnessed the significant time lost due to subpar source control—something that led to a shift to Visual Studio Team Systems (TFS), saving countless hours and boosting productivity.
  • Third-Party Tools and Visual Studio Add-ins: Many software teams neglect third-party tools that could enhance functionality and stability. For example, at a previous company, failing to adopt tools like GrapeCity, Telerik, or DevExpress led to tasks that could have been completed in hours dragging on for days. Similarly, by not using CodeIt.Right for static code analysis, the company missed potential savings of $3.5 million annually in more stable code. Investing in the right tools, whether for UI components or code analysis, is vital for success.

If I Were in Charge

Having worked for both exceptional and underperforming companies, I have learned critical lessons that would shape my leadership approach if I were running a software team. Here are the key initiatives I would implement:

1. Get the Real Story

It is important to connect with team members regularly. I would make it a priority to engage with every team member—whether in a small company or large department—on a monthly basis. This practice builds personal rapport and allows for open, honest feedback. Transparency is key; managers who shield upper management from the reality on the ground do a disservice to the company and product. I call these managers “Cheerleaders,” who only share what upper management wants to hear.

2. Deploying Code to Production

I would establish a policy against deploying code on Fridays or Mondays. These days are problematic for various reasons: Fridays see minds drifting toward the weekend, and Mondays are spent getting back into work mode. Both can increase the risk of errors and unnecessary stress.

3. Stress Relief

Stress is a silent killer in the workplace. It affects employee health, productivity, and morale. To combat this, I would offer free acupuncture and massages every two weeks, with employees only covering the tip. As someone who has benefited from holistic stress management techniques, I understand the importance of fostering a healthy work environment. I would also incentivize employees to use these services and engage in regular physical exercise.

4. Hackathons

Hackathons would be a bi-weekly event during lunch breaks, offering developers the chance to learn new technologies, collaborate on innovative features, or simply explore projects that ignite their passion. My own experience at a hackathon with the Xamarin team at Microsoft led to discovering bugs and learning new technologies, all while boosting team morale and productivity. These events foster innovation and continuous learning.

Odds and Ends

While this article covers the major initiatives I would implement, here is a concise list of additional strategies:

  • Competitive Compensation: Market-competitive salaries with profit-sharing options.
  • Comprehensive Healthcare: Full coverage for employee healthcare expenses, including acupuncture and chiropractor appointments.
  • Team Building: Regular team-building activities to strengthen camaraderie.
  • Mentorship Program: Senior developers mentoring and conducting code reviews for junior developers.
  • Training Support: A budget dedicated to academic courses, conferences, and skill-building activities.
  • Collaborative Planning: Ensuring all departments, from development to DevOps, collaborate in every planning session.

At the core of these initiatives is a commitment to treating people the way I would like to be treated—fairly, with trust, and with respect. This philosophy has guided me throughout my career, and it is the same approach I would adopt if given the chance to lead a software company or team.

In Conclusion

These are just a few of the key initiatives I would implement in a software company. My ultimate goal is to create an environment that supports both personal and professional growth, ensuring that developers are empowered to build exceptional products. If your company is looking for a team lead or development manager, feel free to reach out to me at dotnetdave@live.com.

What would you do if you ran a software company or team? I welcome your thoughts in the comments.

Pick up any books by David McCarter by going to Amazon.com: http://bit.ly/RockYourCodeBooks

One-Time
Monthly
Yearly

Make a one-time donation

Make a monthly donation

Make a yearly donation

Choose an amount

$5.00
$15.00
$100.00
$5.00
$15.00
$100.00
$5.00
$15.00
$100.00

Or enter a custom amount

$

Your contribution is appreciated.

Your contribution is appreciated.

Your contribution is appreciated.

DonateDonate monthlyDonate yearly

If you liked this article, please buy David a cup of Coffee by going here: https://www.buymeacoffee.com/dotnetdave

© The information in this article is copywritten and cannot be preproduced in any way without express permission from David McCarter.


Discover more from dotNetTips.com

Subscribe to get the latest posts sent to your email.

Leave a comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.