Page contents

Simplifying Your Software
Project Management Challenges

Share on facebook
Share on twitter
Share on linkedin

Run-through

8 Essential DevOps Tools You Can Try in 2020

8 Essential DevOps Tools You Can Try in 2020

There are tons of DevOps tools out there. There’s always a solution to every problem you and your team face. However, it’s easy to fall into a bit of analysis paralysis with the countless options – leaving you unsure of picking the most effective tools that can bring your developer team and operations team on the same page and improve the software performance, especially when you’re a noob or a beginner that has jumped in software development. In this article, we’ve put together this list of worth-considering DevOps tools you can at least try this year to help your developer team and operations team work together in harmony with ease.

Read More »

By GITENTIAL TEAM

Most software project management challenges can be filed under the letter “P.” It’s nice to keep things simple like that. Many of the good things in life start with a “C” – for coffee, cheeseburgers, cash, credit cards, cars, computers… chocolate chip cookies. All of the bad things start with a “T” – like taxes and tumors. But today, we are talking about the letter “P” – for the Pareto Principle and because, ”Proper planning prevents p*** poor performance.” Seriously, nearly all challenges can be attributed to people, processes, and/or technologies. We hope some of our insights will help you turn some of these challenges into profitable opportunities.

Certified Project Management Professionals

According to Mark A. Langley, President and CEO of the Project Management Institute (PMI), “Organizations that invest in proven project management practices waste 28 times less money because more of their strategic initiatives are completed successfully.”

Businesses with certified Project Management Professionals (PMP) have a competitive advantage and greater marketability owing to the certification’s globally-recognized credibility. The PMP program covers how to initiate, plan, execute, monitor/control, and close projects. Equally valuable, it prompts candidates to question what kinds of things could happen to challenge a software development project – a bit of contingency planning never hurts!

PMI’s Pulse of the Profession: 2018
PMI’s Pulse of the Profession: 2018

Properly define project requirements

As PMI’s survey results (above) show, a majority of project management problems stem from not adequately defining project requirements from the outset. Taking the time to clearly define and communicate project requirements will help avoid many problems from the get-go:

  • Product vision statement – The goals of the project including the business and performance metrics to be used in evaluating the success of the project.
  • Product roadmap – A visual summary of the product’s development over time,
  • Project requirement checklist – The tech stack, a detailed technical list of each device to be supported, each module or feature to be developed, the specific tools, libraries, frameworks, and other third-party solutions to be used.
  • Scope of work – Assignments for each party – especially with multiple teams.
  • Coding standards – A style guide for developers to assure consistent coding.

Next, we’re going to take a look at all of the different challenges that can arise in a software project. A great project manager will factor them in outlining project requirements.

Challenges in communicating with all stakeholders

Three major issues can arise as challenges in software development midway through the project. All three involve the interests of stakeholders – executives, customers, and end-users.
You can’t please everyone all of the time. But, by communicating with all stakeholders in the earliest stages, you’ll be able to please almost everyone most of the time.

Executives – Business priorities can change, members of your team may be reassigned, budgets may shift, timelines advanced, etc. The best way to avoid or mitigate business-level challenges is to stay informed about your company. Ask executives to let you know at the earliest possible stage about anything that may impact your project. Talk with other managers to get a sense of emerging issues – like landing a major new customer, budget cuts, marketing campaigns, and the like. Issues in this category are discussed at length in handling Inevitable Technical Debt.

Customers – Inevitably, even with the most streamlined MVP, customers will want to add new software features, metrics, or components midway through development. Scope creep can be avoided or minimized when defining project requirements. It may be an extra step, but sometimes it is necessary to make sure customers are educated about all of their options before the project starts. Companion software for an IOT device might be able to gather data via sensors though not useful for end-users, could have a B2B value. Verify with your customer’s managers and specialists that the project also meets their requirements.

End-Users – In Participatory Design and Development, end-users are also involved in software development projects from the very earliest of stages. This ties into a Minimum Viable Product’s focus in maximizing end-user feedback. Does the very idea of the MVP resonate as something they will want and actually use? A lot of projects are also “designed for what the CEO likes” – which could fall flat with end-users. User feedback serves as a counterbalance to remove design subjectivity – 62% of users like version A, but only 13% like version B. If users aren’t demanding something in a release version, you can show your customer that extra feature can wait.

Challenges with budget and deadlines

Software Project Management Challenges

Time and money are frequent customer constraints offering challenges to software development projects. Ultimately, there are three sides involved as reflected by the Cost-Time-Scope Triangle. An increase or decrease in one applies proportionally to all three sides. Providing this for your sales team provides them with options if a customer is short on cash or time, and even if you happen to be short on developers.

Some customers may come to you with a frantic request to have a fully-functional MVP by a short deadline. Technical debt is another budgetary item that you can leverage so you don’t have to turn them away.

Try to understand why the customer has such a short deadline. Some work can possibly be set aside for later (software manual, certain screens, social sharing, etc.). You might also be able to quickly patch components from other apps together (UI, catalog, payment system, etc.). These efforts will incur technical debt that will need to be paid down later – but you know about it and can plan for it. Leastwise, quality (UI, bugs, responsiveness) may not be critical to the customer’s objective. Startups pitching on a Demo Day, for example, mainly needs something nice “for show” to go with their business pitch.

The right skills for the project’s technology stack

The project’s technology stack is defined in the project requirements. Does your team have the corresponding skills? If it doesn’t, you can still outsource with a freelancer or IT agency to find someone with the skills you need. But, if a project doesn’t reasonably match your company’s or team’s core competencies, it’s likely best to turn it away.

High-end IT skills like ML/AI specialists or data scientists experienced in a specific industry can present a distinct challenge. Extra time should be planned if you know demand is high for skill sets you can’t source internally.

Software for old, obscure, proprietary systems, or involving dying programming languages can also be difficult to source for. It’s worth debating whether to take these projects on unless you’re starving for business or you can secure special (and lucrative) terms.

There’s an opportunity cost involved in working with projects having very limited or an obsolete scope. They preclude your team from working more on newer technologies likely to be in greater demand. There’s no harm if you’re already equipped for these types of niche projects. But, you’ll want to think twice before going out of your way to support them.

Most, if not all of these points, should be evident when drawing up project requirements. They warrant extra investigation so you can factor them into cost estimations.

Skills for new technologies

New technologies emerge almost daily and provide a steady stream of new opportunities. Software development companies and their managers should always keep an eye out for new devices, tools, and resources in line with their core competencies.

Customers seeking to be early adopters of new technologies present an interesting challenge. They’ll ask you to provide skills that no one else has yet – because the SDK for a new device was only released yesterday. This presents an opportunity to partner with the device manufacturer (like Oculus Rift and Samsung) or PaaS/XaaS (like AWS Managed Services Partners and Google Cloud Partners).

Obviously, partnership programs are not limited to early adopters – suffice that it’s surprising how reluctant many software developers are to partner with anyone, for anything. The larger and more affluent your partners, the greater the potential benefit to your own company’s growth. Not to make your stomach turn, but if you look at who’s who in the tech world today – most every name you’ll see has some form of partnership with at least one government.

So, yes – new tech can be a challenge for software developers, but it’s the kind of challenge you want and should actively seek. One last note here, by keeping an eye on tech news and new releases, you can keep your customers informed about imminent changes. A good example is when Google and Apple both decided to discontinue support for 32-bit apps.

Managing project communications…and PMS in 2020

This year is still surreal – but for how much has changed, not much has really changed for many software developers. The whole idea that you have to commute to an office to actually do software development feels like something from the 1990’s. That may exaggerate a wee bit and some of you may vehemently disagree. Hopefully, some of you still have a sense of humor. Can you remember how Gary McKinnon hacked into NASA and the Pentagon and “ruined everything” with a dial-up modem…? And now, some of us have 5G!

Seriously, we’ve come a long, long way in terms of how we can communicate, collaborate, work, and manage distributed teams. Still, most of the challenges in software development originate from incomplete or unclear requirements, which can easily extend to task assignments. Between email, mobile phones, teleconferencing with Zoom, or messaging with Slack – the ability to communicate is not the problem. Rather, there’s a documentation issue, and it seems to reside in the one thing that pleases nobody most of the time….

Project Management Software like JIRA is intended to assist in tracking tasks – but can sometimes make tracking and reporting more difficult. In Agile, it’s the product owner who has to contend with assigning and managing tasks in JIRA or other PMS software. Time spent training team members to use your PMS software is better than switching programs. It comes down to three simple points:

  1. The project owner needs to provide an explicit, but brief description of each task with relevant links where applicable.
  2. The task assignee needs to brief notes of actions taken with each task and corresponding links.
  3. Make sure team members know how to add, merge, and flag tasks according to a common and standard process.

This may not be a problem for some teams. For others, I’ve witnessed one company switch between 3-4 different PMS programs in relatively quick succession and ultimately reverting back to their original. Most PMS issues can be resolved with a little bit of training.

Challenges in team management

The last major challenge in software development is the most important one. In part, it’s about team management, but more specifically – it’s about knowing your team members. In How to be a Great Software Engineering Manager it’s literally our first bullet point. As their manager, it’s part of your role, arguably your job, to help every team member develop their skills, be successful in their tasks, and be available for them when they need to talk.

For business and professional purposes, it’s important for you to know what each member of your team is good at – languages, libraries, modules, devices, mentoring, leading, and more. One reason for this is so you can help them learn additional skills by pairing them with other team members on projects and code reviews.

One of the potentially most severe challenges in software development comes when a valued team member is forced to take a leave of absence or simply quits. And believe it or not, this eventuality should always be considered during your planning stages. If your best Python developer drops, who do you have who can step in for them? It’s not necessary for their replacement to be an employee if you have a suitably skilled freelancer available. New tech startups can have a 25% or higher turnover rate per year.

There are many “Other” software project management challenges, though all can be distilled down to people, processes, and/or technologies. We hope that the perspective we’ve provided may help you transform most of the challenges in the PMI survey into opportunities. Ultimately, most of the reasons for failed projects can be avoided by making an extra effort to fully define your project from the very beginning.

About Gitential

Gitential helps you to improve the performance of your software development team based on their Git activities with actionable insights. Our advanced software development analytics provides developers with automated performance tracking of key metrics and easy to understand graphics. These can be called up “on demand” to boost your team’s collaboration, productivity, efficiency, and quality and help you overcome the software project management challenges you may be facing. If you have any questions, please let us know at gitential@gitential.com. We welcome you to sign up for a free trial, no credit card is needed!

8 Essential DevOps Tools You Can Try in 2020

8 Essential DevOps Tools You Can Try in 2020

There are tons of DevOps tools out there. There’s always a solution to every problem you and your team face. However, it’s easy to fall into a bit of analysis paralysis with the countless options – leaving you unsure of picking the most effective tools that can bring your developer team and operations team on the same page and improve the software performance, especially when you’re a noob or a beginner that has jumped in software development. In this article, we’ve put together this list of worth-considering DevOps tools you can at least try this year to help your developer team and operations team work together in harmony with ease.

Read More »

Did you like our content?

Spread the word

Share on facebook
Share on twitter
Share on linkedin

Subscribe to Our Newsletter

Don't miss our latest updates.
All About Software Engineering Best Practices, Productivity Measurement, Performance Analytics, Software Team Management and more.

Did you like our content?

Spread the word

Share on facebook
Share on twitter
Share on linkedin

Subscribe to Our Newsletter

Don't miss our latest updates. All About Software Engineering Best Practices, Productivity Measurement, Performance Analytics, Software Team Management and more.