PODCAST #23. Maximizing Opportunities in Product Management: What We Learned from a Director of Engineering

Welcome to the Care Minds podcast! Today, our guest is Adam Jubert, Director of Engineering at Journey Clinical. We’ll cover Adam’s career, explore product design and development, and discuss the role of AI in process optimization.

Now, here’s a thought to ponder for PMs – What if the secret to groundbreaking innovation lies in identifying the right company? Let’s explore this, shall we?

Navigating Career Growth: From a Software Developer to Director of Engineering

“Taking an active role in your own career progression is the most important thing.”

Adam Jubert – Director of Engineering at Journey Clinical

Mr. Adam said a proactive approach and a keen eye for new opportunities drove his career growth and progression. He emphasized the importance of having regular one-on-one meetings with his managers, during which they discussed his career goals and identified potential areas for growth. Through these conversations, he was able to take on challenging technical projects and expand his skills in project management.

As he evolved as a software engineer, Mr. Adam recognized the choice between pursuing an individual contributor track or transitioning into a management track. Opting for the latter, he began working cross-functionally and delving into project management. He actively sought opportunities to lead and demonstrated his capabilities in coordinating projects and collaborating with teams.

One key factor contributing to his growth was the feedback he received from his managers. During their one-on-one sessions, he not only sought constructive criticism but also asked his managers to identify the aspects of his work that they appreciated. This enabled him to receive recognition for his strengths and continue to build upon them.

Mr. Adam’s progression was gradual; he took small steps by managing projects that initially required one to two engineers. Over time, he gained experience handling multiple cross-functional projects simultaneously. He actively sought advice from his leadership, seeking guidance on improving his project management skills and effectively managing people.

Identifying Growth Opportunities in Early Career Choices

According to Mr. Adam, identifying companies that offer growth opportunities early on requires careful consideration during the interview process. While popular rankings and articles about top tech companies can provide a starting point, he emphasizes that many lesser-known companies can still provide a conducive environment for success.

It is essential to present yourself as a candidate and interview the company during interviews. Mr. Adam suggests asking questions about team culture and management style. One effective question he often asks managers is to describe a situation where they had to discipline or handle issues with an employee. Understanding the manager’s leadership approach makes it possible to assess if it aligns with personal preferences and career goals.

Moreover, Mr. Adam highlights the importance of gathering insights from current employees about the company culture and career progression. Asking about recent promotions and success stories within the organization can provide valuable information about growth opportunities. Exploring these cultural questions related to career progression helps in making an informed decision.

Regarding series D startups or later-stage startups, where organizational structures may be less defined, Mr. Adam suggests discussing career progression during the interview process. It is important to inquire about the frequency of promotions and how the company supports employee growth. Once in the role, maintaining open and honest communication with one’s direct manager is crucial. Clearly expressing career aspirations and goals and ensuring that expectations are aligned with the manager’s support can contribute to a successful career path within such organizations.

Mr. Adam acknowledges that navigating promotions can be challenging due to organizational structures, but having a supportive manager who advocates for employee growth is vital. Identifying such managers during the interview process and fostering a strong working relationship with them is key. By collaborating with managers, setting clear expectations, and regularly checking in, employees can enhance their chances of career advancement.

Streamlining Engineering Moves and Balancing Efficiency and Effectiveness in Multi-Sided Marketplaces

According to Mr. Adam, effectively managing a multi-sided marketplace like Journey Clinical involves understanding and acknowledging the diverse needs and perspectives of different user groups. He emphasizes the importance of tailoring the presentation of information to suit the specific requirements of each user segment. For example, doctors may prefer concise, scientifically formatted information, while patients would benefit from a user-friendly and organized experience.

In tackling problem statements within the marketplace, Mr. Adam suggests addressing the concerns of the respective user sets involved. However, it is also crucial to consider the potential ripple effects and impacts on other areas of the application. For instance, changes made in the patient portal should be consistent with and complement updates in the prescriber portal. This ensures a cohesive user experience across the entire marketplace.

Furthermore, Mr. Adam emphasizes aligning communication styles with users’ preferences. By considering not only what users are accustomed to seeing within the app but also what they generally prefer, a more engaging and effective user experience can be created.

Preparing for Product Success: Essential Steps Before Embarking on Component-Driven Development

Adam believes companies must take certain steps before diving into product development. While the instinct might be to start solving problems immediately, he advises against skipping the process of first digitizing and operationalizing the solution. By incorporating the solution into the product design engineering flow, valuable time can be saved, and important lessons can be learned.

“Being lean, being a startup, your goal is to make guesses, make hypotheses, run experiments, see if those experiences were true, see if the hypothesis was true, and then iterate on it.”

Adam Jubert – Director of Engineering at Journey Clinical

Being lean and agile is essential for startups, and their goal should be to make hypotheses, run experiments, validate those hypotheses, and iterate based on the results. Mr. Adam emphasizes the importance of operationalizing things, which involves using tools that facilitate the creation of prototypes or minimal viable products. These tools can range from simple ones like Google Sheets and Forms to more complex automation processes and scheduling software. By leveraging these tools, companies can quickly create hypotheses, test them, and iterate accordingly.

The advantage of operationalizing hypotheses before entering the full product design cycle is to avoid spending excessive time and effort on developing a product that may not align with user expectations. By validating hypotheses early on, companies can gather feedback and make informed decisions about the direction of their product development.

Balancing Speed and Quality and Navigating Pushback between Technical and Product Departments

“Having a culture on the team of having open conversations around tradeoffs is super important.”

Adam Jubert – Director of Engineering at Journey Clinical

According to Mr. Adam, one of the difficulties that technical and product departments in startups frequently face is striking a balance between speed and quality. The need for rapid progress often clashes with the desire for a polished and aesthetically pleasing product. In the startup environment, speed is crucial, and the focus is on delivering a functional solution rather than a perfect user experience.

Creating a culture of open discussions around trade-offs is vital to addressing this challenge. Mr. Adam emphasizes the importance of conversations involving engineering leadership, product managers, and other stakeholders. It is crucial to openly discuss the trade-offs between delivering a shiny, feature-rich product in a longer timeframe versus delivering a functional product quickly for testing and iteration.

In Mr. Adam’s experience, most product managers in startups prioritize functionality over aesthetics during the early stages. They opt for delivering a minimum viable product quickly and gathering user feedback before investing time and resources in refining the user experience. The decision-making process regarding trade-offs is typically non-emotional, focusing on what is best for the business and the users.

As a director of engineering, Mr. Adam aims to ensure the business’s success and the users’ satisfaction. He emphasizes that no matter which trade-off is chosen, his team can still work on interesting projects and contribute valuable code. The level of attention to product and design quality increases as the user base grows. However, in the early stages of startups, having a functional product is generally deemed more important than a flawless user interface.

Mr. Adam cites examples of successful startups that initially operated with simple tools like Google Sheets or manual email processes. These companies scaled their user base significantly before investing heavily in refining the user experience. This illustrates that perfection in UX or UI is not essential at the early stages of a startup.

Essential Solutions and Strategies for Fast-tracking Efficient Go-to-Market

“When researching third party tools, cost is also important, as well as their ability to integrate and provide a seamless user experience.”

Adam Jubert – Director of Engineering at Journey Clinical

According to Mr. Adam, there are several key factors to consider when selecting software solutions for different industries. In the healthcare sector, HIPAA compliance is a must-have requirement. Similarly, in finance, there may be specific regulations like Payment Card Industry Data Security Standard (PCI DSS) compliance to consider. Mr. Adam emphasizes that they can ensure HIPAA compliance if they build the software in-house. However, HIPAA compliance and cost become crucial when exploring third-party options.

During discussions about problem statements, Mr. Adam applies a cost-benefit analysis. He first considers whether existing companies offer solutions for the specific problem statement, estimating that approximately 80% of problems already have existing solutions. He examines the available companies and their solutions, evaluating factors such as their ability to address the problem statement, ease of integration, and the presence of APIs, which are essential for seamless integration with existing systems. Mr. Adam highlights the importance of integrating the third-party solution in a way that appears seamless to the user, avoiding a disjointed experience.

Furthermore, Mr. Adam considers the resources within his team, particularly focusing on product design and engineering. He evaluates the number of engineers available, the time required to build a custom solution, the scalability of the custom solution, and the need for additional features. If a company has sufficient engineers, building an in-house solution to keep everything internal may make sense. However, with limited engineering resources, integrating with third-party tools becomes a more viable option, allowing the engineers to focus on other tasks.

Mr. Adam acknowledges the tradeoffs between building in-house and buying third-party solutions. While it’s tempting to have most of the solution be internal intellectual property (IP), third-party tools’ practical considerations and advantages should not be overlooked. He suggests that companies carefully assess the benefits and drawbacks of each approach.

“Tools like Github Copilot and Chat GPT can save a ton of time and be useful for tasks like code autocomplete and writing unit tests.”

Adam Jubert – Director of Engineering at Journey Clinical

Shifting gears to AI technology, Mr. Adam shares his enthusiasm for tools like GitHub Copilot. This tool provides code autocomplete suggestions based on the user’s codebase and the vast amount of code available on GitHub. It significantly saves time and is particularly adept at suggesting proper conventions, which is crucial when using frameworks like Ruby on Rails.

Additionally, Mr. Adam mentions the usefulness of chatbot AI tools for writing unit tests. Unit testing and code quality are paramount to him and his team. Tools like Chat GPT enable developers to generate unit tests quickly by providing suggestions and reducing the time spent on manual test writing.

The Ideal Product Manager and Quality Traits Engineers Love to Work With

“Some of the product managers that I’ve really loved working with in the past are proactive and get a full sense of the stakeholders’ needs and problems beforehand.”

Adam Jubert – Director of Engineering at Journey Clinical

According to Mr. Adam, effective product managers are proactive and thoroughly understand stakeholders’ needs and problems before involving the engineering and design teams. He appreciates the use of comprehensive documentation, citing companies like Stripe as an example, where they prioritize documentation and even have documentation about their documentation. Mr. Adam believes writing things down and incorporating visuals when possible is essential for clarity and understanding.

“Making sure that the problem statements and potential solutions align with what already exists in the current context of the application.”

Adam Jubert – Director of Engineering at Journey Clinical

Moreover, Mr. Adam emphasizes the importance of considering the current context of the application being worked on. It is crucial to ensure that problem statements and potential solutions align with the existing framework. 

When wireframing and discussing the flow of data elements, he emphasizes the need to know where each data element originates. For example, if a user’s phone number is required to send them a text, it is necessary to consider what happens if the phone number is unavailable. Understanding the data sources and their interaction with different application parts is vital for maintaining a coherent and functional system.

Key Considerations for Enhancing Collaboration between Product Managers and Engineering Teams

“Having blameless postmortems when there are big issues and taking the focus off of who did the wrong thing onto what happened and how to improve it in the future.”

Adam Jubert – Director of Engineering at Journey Clinical

Effective product managers should communicate the problem statement to the engineering team and provide insights into the user’s journey. Sharing user feedback and recordings of user interviews can give engineers a sense of purpose and intrinsic motivation. Data-driven communication, such as highlighting the percentage of users experiencing a specific problem and expressing their frustration, resonates well with engineers who value empirical evidence.

Furthermore, Mr. Adam emphasizes creating a shared experience within a fully remote team. He suggests starting meetings with a few minutes of casual conversation to foster a sense of camaraderie. Writing high-quality code, including tests, conducting pull requests, and conducting code reviews, is essential for a high-performance engineering team.

As a manager, Mr. Adam believes in the significance of regular one-on-one meetings with direct reports to support their progress toward their goals. Additionally, he recognizes the value of occasional skip-level one-on-ones to maintain an understanding of the broader team dynamics. Encouraging a blameless culture is crucial when addressing bugs or issues. 

Mr. Adam promotes blameless postmortems to focus on process improvement rather than assigning individual blame. By referring to code issues as “our code” and conducting blameless postmortems, the team takes collective responsibility for their work and focuses on learning from mistakes.

Summing it Up…

The journey of Mr. Adam provides valuable insights for navigating career growth in the tech industry. Through his experiences and perspectives, we can distill the following major lessons:

  • Proactively seeking new opportunities and engaging in regular one-on-one meetings with managers serve as a platform to discuss career goals and identify growth areas.
  • As one’s career progresses, pursuing an individual contributor or management track demonstrates one’s capabilities. It also expands one’s skills beyond technical expertise.
  • Seeking feedback from managers helps identify areas for improvement while acknowledging strengths and leveraging them to build upon success. 
  • Making informed career choices and identifying growth opportunities early in one’s career requires careful consideration.
  • Balancing efficiency and effectiveness is very important, especially in startups. Also, prioritizing functionality over aesthetics in the early stages is key.

WATCH ALSO:

PODCAST #22. EMR INTEROPERABILITY AND DATA STANDARDIZATION ISSUES AMID AI ADOPTION IN HEALTHCARE & OKRS

PODCAST #21. THE SCRUM MODEL: WHEN SHOULD PRODUCT TEAMS USE IT?

PODCAST #20. HOW PRODUCT MANAGEMENT IS MIRRORED IN THE PHARMA BUSINESS AND TECH DIVISIONS

PODCAST #19. WHERE DOES PROBLEM SOLVING AND PRODUCT MANAGEMENT INTERSECT? HEALTHTECH PM SHARES SOME INSIGHTS & OKRS

PODCAST #18. AI’S INFLUENCE IN VIRTUAL HEALTHCARE AND HOW PRODUCT MANAGERS CAN HELP IN THE REVOLUTION& OKRS

***

The APP Solutions launched a podcast, CareMinds, where you can hear from respected experts in healthcare and Health Tech.

Who is a successful product manager in the healthcare domain? Which skills and qualities are crucial? How important is this role in moving a successful business to new achievements? Responsibilities and KPIs?

Please find out about all this and more in our podcast. Stay tuned for updates and subscribe to channels.

Listen to our podcast to get some useful tips on your next startup.

Article podcast YouTube

Outstaffing vs. Outsourcing vs. Managed Services: Differences and Benefits

Terminology is a tricky thing. In various organizations, outsourcing and outstaffing can mean very different things. In Ukraine, the majority of small and mid-size IT companies call themselves IT Outsourcing. 

On the other hand, large and public companies tend to position themselves as in IT outsourcing, but only in the Product Development Services and Managed services areas. As time goes on even small companies reject “outsourcing” positioning using “custom software development” instead.

So let’s look under the covers of outsourcing and product development services based on what we know about the IT sphere and IT market. We’ll also go over the outstaffing practice further in the article.

HOW WE NAIL HIGH-LOAD PROJECT DELIVERY

Outsourcing vs. Outstaffing: What Is The Difference And What To Choose?

I enjoyed working in several companies, including startups, small private IT development Shops, and large enterprises with tens of thousands of people on board.

Playing different roles on a different level, I have had multiple challenges regarding the differences between outstaffing vs outsourcing, as well as what differentiates Managed Services. In the end, each business practice has its advantages and disadvantages, so there’s no universal answer to the “outsourcing or outstaffing” question.

Let’s take a look at the following summary table, and then go one by one starting with outstaffing and building our way up.

Outstaffing

Outsourcing

Product Development Services

Purpose

Team Extension

Business Function

Technological Partner

Managements

Client

Client/Vendor

Vendor

Quality Ownership

Client

Client/Vendor

Vendor

Revenue

Low

Low-Medium

Medium-High

Source of revenue

Workforce

Operational Excellence

Intellectual Product

Outstaffing services

Software outsourcing and outstaffing are sometimes used interchangeably. However, those two practices are completely different. Basically, outstaffing is the most straightforward model to understand. Many companies are shorthanded and need a development team to help their house developers. Outstaffing comes in handy when the client’s needs mean increasing the software development team’s capacity and jumpstarting the development process. In the case of outstaffing, offshore employees for remote software development are officially employed by another client to speed up the development process.

Management 

With the outstaffing approach, the client has full control over management. The outstaffing software development team inherits the existing methodology, processes, tracking tools, and communication approaches. The repository, environments, and automation tools are usually on the client-side or administered by the client. This factor is often considered among the main outstaffing pros.

Quality ownership

The outstaffing projects are also frequently called Staff Augmentation.

  • The outstaffing company augments their remote employees with the client’s existing house team. 
  • The manager is responsible for the terms, product, and budget. 
  • The outstaffing manager is an employee of the client’s company.

Revenue

The outstaffing model is a time for money trade. So, there are no cons of outstaffing from this perspective. You can imagine it in the form of the hourly rates or cost+ model. Clients buy an hour of work; the vendor gets their profit from hours sold.

Consider that the required organizational complexity here is low. There are many competitors, and competition is based on the price. Many vendors are competing around small-sized clients, so the market’s invisible hand keeps the costs low.

One of the primary sources of revenue is the workforce. The key to making more revenue in the outstaffing area is to sell more hours. The more people – the more money. That’s what the outstaffing model is about.

KOTLIN VS. JAVA: WHAT TO CHOOSE FOR AN ANDROID APP?

Development Outsourcing

Within the outsourcing vs outstaffing paradigm, software outsourcing means when companies delegate one of the business needs to a third-party service provider. Apart from software development, a company can turn to outsource to help with their manufacturing, accounting, software development, testing, support or call center, and other digital activities.

Speaking about the tech area, a development team can be employed by another company to perform testing, product management, maintenance, and support, along with software development outsourcing. The outsourcing model also applies to different technologies, and an integrated software development function. Let’s continue with the outsourcing vs outstaffing comparison related to three core points.

Management

Outsourcing project management may have a complex structure. Usually, management is done on the client-side (Product management, Program management), and the outsourcing provider is responsible for proxy management (Project Manager, Team Leader, proxy product ownership).

Quality ownership

Depending on the management structure, the outsourcing vendor commits to the quality of the outsourcing function. Quality standards and formal development methodologies are applied to measure quality and results. Having managerial positions allows contractor companies to use standards and measurements and perform control over them. Furthermore, it brings an obligation to comply with standards and achieve the KPIs.

SHOULD YOU HIRE APP DEVELOPERS NEAR ME OR OUTSOURCE OVERSEAS?

Revenue

Processes, web development guidelines, prebuilt solutions and pipelines, and much more – are the solution accelerators. By keeping standard things standard, the company can avoid reinventing similar wheels for multiple projects. Lower costs with improving operational excellence give extra margin. Therefore, revenue is among the major outsourcing pros.

In other words: with the right attitude for the client, it won’t matter if developer John switched the whole project and QA Pete automated his tests. As long as the dedicated software development team produces the results they are committed to, no one cares whether it’s software outsourcing or any other hiring practice.

<br />How to make your IT project secured?

Download Secure Coding Guide

READ ALSO:

HIRING A DEVELOPER FOR YOUR BUSINESS: A SIX STEPS GUIDE

SHOULD YOU HIRE APP DEVELOPERS NEAR ME OR OUTSOURCE OVERSEAS?

WHAT TECH STACK TO CHOOSE FOR YOUR PROJECT

HOW TO OUTSOURCE MOBILE APP DEVELOPMENT

Product Development Services

Apart from outsourcing – outstaffing models, there are also product development services. When I got to know the PDS term for the first time, I worked in a 10+ tech outsourcing company. The company initiated a series of events to educate its personnel about the PDS Delivery model. One example for developers was, “you stop thinking that the business wants this button painted in red: You start thinking, how would the end-user like to see this button.”

The main difference between the approaches mentioned above and PDS is that the latter means, first of all, a shift in mindset. Mature companies realize that, besides technical assignments, the company can provide their expertise and advice. The evolution from doers to thinkers to become a technological partner with the client’s business. Commit to the product and give the product more than just the hours spent. 

CLOUD SERVICE MODELS EXPLAINED: PAAS VS. SAAS VS. IAAS VS. DBAAS

Management

To provide the Service of Product Development, the provider company shall acquire the competencies of Business Analysis, Project Management, Product management, and domain knowledge of the industries their clients are working at. 

The PDS project is usually expected to have a Project Manager, Product Owner, Stream, and group leaders among the team members. In some cases, those roles can interface or mirror the respective roles on the client’s side. In other cases, they can be positioned as provider-side roles only. Additionally, the company establishes competency centers and practices – the non-production people responsible for acquiring and growing the competency and domain knowledge.   

This gives the vendor much more autonomy and freedom. Dedicated software development teams can arrange convenient processes and adapt the methodology of choice. 

Quality ownership

Having Product and Project Management on the provider side also means having Ownership and Responsibly on software end product delivery so that the quality ownership is entirely on the vendor side. 

Revenue

On PDS projects the company still makes more money with more people. But that becomes a side-effect. The PDS source of revenue is an intellectual product that can take different forms. The form of higher hourly rates for engineers with higher qualifications, and additional knowledge of industry and business. The conditions of phases for generating intellectual outcomes: Solution Design, Technical/Process Audit, Marketing research, etc.

Generally, as the vendor takes more risks and responsibility, the more revenue it generates. 

What solutions can we offer?

Client View

As an IT company, we are a supplier for our clients; an IT Service Provider. There is a traditional categorization of suppliers.

Let’s go through the classification:

a traditional categorization of suppliers
  • Commodity: for suppliers who provide low-value or easily available products or services, which could be alternatively sourced relatively easily. 
  • Operational: for suppliers of functional products and services. These relationships would usually be managed by junior operation management and would involve infrequent but regular contact and performance reviews. 
  • Tactical: for those relationships involving significant commercial activity and business interaction. These relationships would usually be managed by middle management and apply for regular contact and performance reviews, often including ongoing improvement programs.
  • Strategic: for significant ‘partnering’ relationships that involve senior managers sharing confidential strategic information to facilitate long-term plans. These relationships would usually be managed and owned at a senior management level.

Being in outstaffing, the vendor falls into the Commodity category. No significant risks are associated, and alternatives can be found and engaged fast enough.

Outsourcing can be either Operational or Tactical suppliers, depending on the importance and impact. Taking more ownership, and providing more value, is the key to progress toward strategic partnership.

By practicing the PDS approach, the vendor company can achieve a strategic partnership with a client.

FUNCTIONAL VS NON-FUNCTIONAL REQUIREMENTS: MAIN DIFFERENCES & EXAMPLES

Cost of moving ahead

Staying in ‘commodity’ keeps prices (and in turn salaries) limited by the market. Too many Outstaff service providers competing to maximize the revenue can exhaust the labor market and lower the entry criteria. That’s pretty much what is happening in the Ukrainian IT labor market. And like anything else in this world, all approaches have their pros and cons. 

To bid for providing services as a strategic partner, the company must understand the client and contribute to the client’s business success better than other competitors. That requires investments into:

  • Management – improve governance, consistency of deliverables, communication, and reporting
  • Practices and competencies – acquire unique selling points in the form of a group of people with “know-how”
  • Sales – change of focus from “selling standard services at a low price” to “provide complex technological consultation and analytics”
  • People – attraction and retention of talents. Utilization of bench programs, internal and external education, improved work conditions

Value of Moving Ahead

Better sales, dedicated remote team, more extensive projects, more considerable challenges and impact, higher salaries, and much more room for professional growth in almost any direction; All of these at the cost of ownership and responsibility. 

I hope you liked the article. It’s challenging to cover outsourcing or outstaffing the development process and its pros and cons fully in one piece. Please share your experience, questions, and comments. It’s always exciting and motivating to get feedback.

HOW MUCH DOES IT COST TO DEVELOP AN APP: DETAILED FEATURE BREAKDOWN

Decided On a Team Model?

Project Management for Software Development: The APP Solutions Tips

When choosing a development team for your project, what should you pay attention to? 

Portfolio? Tech Stack? Domain expertise? All of these answers are correct. But more importantly, the development team should have documented project setup processes and development to ensure transparency for stakeholders. 

Knowing the project lifecycle, core deliverables, and critical roles on the project, allow you as a decision-maker to be on the same page with the development team, thus, create more realistic expectations and the final result. 

This article explains the project setup and management processes at The APP Solutions in detail and the key roles and responsibilities of each party during the project life cycle. We also list key deliverables our clients receive at each stage of project development. 

Software development project management at The APP Solutions

We apply SDLC (Software Development Life Cycle ) as our methodology of choice for the projects we develop from scratch and existing projects requiring features modernization, software update, and code refactoring. 

The SDLC refers to a methodology with clearly defined processes for the development team. 

The development team goes through the following steps of the project lifecycle:  

  • Requirement analysis 
  • Planning process
  • Software design 
  • Architectural design 
  • Software development 
  • Testing process
  • Deployment process

Software Development Life Cycle from a stakeholder’s perspective includes the following phases:  

  • Inception 
  • Project Initiation 
  • Project Development and Quality Assurance 
  • Final Project Demonstration Session
  • Technical Support

Each of these phases requires the cooperation of stakeholders with different team members. Let’s take a look at each stage of software development at The APP Solutions in more detail.

Phase 1. Engagement 

The engagement phase is the first step toward project development. It takes four weeks for our development team to determine user roles, ways users interact with the application (user stories), and project usage scenarios. 

Each week of the engagement phase has its goals and deliverables:

Week 1. Understanding

We suggest relevant technologies, dig deeper into your business and highlight the main business challenges you want to overcome with the project. 

We achieve these goals by:

  • Defining your business goals 
  • Discussing business needs
  • Checking out the current product infrastructure 
  • Running requirement elicitation session
  • Limiting potential opportunities for further cooperation 

Week 2. Definition

We shape the project vision and create a list of features for the first project version with basic features, i.e., the project’s MVP (Minimum Viable Product) and features for a fully-fledged product’s version.  

During the second week of the engagement phase, The APP Solutions developers are dedicated to 

  • Setting up scope boundaries
  • Running scope prioritization
  • Defining MVP scope
  • Creating Architecture Vision

Week 3. Portrayal

We devote the third week of the engagement phase to gathering and writing project requirements, functional, non-functional, and transactional. 

We ensure that technical project requirements are written down from a Solution-perspective, i.e., are aligned with business needs. 

To achieve this goal, software test engineers view the requirements at early stages and apply a “Requirement Checklist” that helps determine whether the requirements are complete, accurate, verifiable, and consistent. 

The tasks for the third week include: 

  • Running technical assessment session
  • Organizing requirements elicitation session 
  • Reweaving the project’s visual style 

Week 4. Result

We develop a realistic Product Roadmap that supports your Commercial Roadmap.

We also manage the technical aspects of a project to ensure that they’re in line with the company’s growth targets. 

During the last week of the engagement phase, we are busy with:

  • Gathering the Project Scope for the release 0.1
  • Writing a Resource Plan for the Scope for release 0.1 
  • Completing Requirements description 

Main deliverables of the Inception Phase

After a four-week-period, our team comes up with the following deliverables of the engagement phase: 

  • Technical Documentation 
  • System Architecture 
  • Resource Plan 
  • UI/UX Vision

Then, we move to the next phase of the project development life cycle named the project initiation phase. 

Phase 2. Project Initiation

Before developers start writing code for your project, the team runs a quick project setup phase to gather all the necessary documentation, including the cooperation agreement, project briefs, specifications, prototypes, etc. 

The project initiation phase also ensures that all team members are aware of the project goals, and you, as a stakeholder, are aware of the communication plan schedule. 

The main deliverables of the project initiation phase are:

Communication plan

A communication plan is a document that specifies all the reports our team makes during the project development phase.

To create the Communication Plan, the Business Development Manager invites you and the Project Manager to a meeting during which you discuss further cooperation and critical project milestones. 

The Communication plan covers the schedule of:

  • Daily Scrum meetings. Their purpose is to synchronize the Project Manager with the team each day about the progress/blockers/plan for the next day. 
  • Weekly planning meetings. Once a week, the Project Manager meets the development team to prioritize tasks for the next week and improve the log review. The Project Manager writes down the incoming information from the team meeting notes to ensure important details won’t be lost. 
  • Financial reports. The Project Manager creates financial statements in PDF with a list of all the hours spent and task breakdown to the customer to ensure transparency about the monthly expenses and time spent. The customer receives the Financial report on the first day of the month.  
  • Monthly reports. The Project Manager overviews the created tasks based on requests and produces a monthly report with incoming requests from the client and requests we’ve fulfilled. 
  • Delivery meetings. The Delivery Director and  Customer discuss the processes on a higher level and write down the outcomes from meeting notes. 

Kickoff meeting

After all preparations, the development team runs a kickoff meeting with you to introduce the development team members and their roles. 

The team composition and development depend on the project’s scope. An average development team composition includes the Project Manager, the Product Owner, the Technical Lead, the Quality Assurance Manager, and  System Administrator. 

After the kickoff meeting, the team gets ready for the project development phase: 

  • The Project Manager and the business analyst create a project backlog with the tasks.
  • The Project Manager and the Product Owner prioritize tasks in the backlog.
  • The Project Manager, the Product Owner, and the rest of the development team estimate the first sprint, i.e., the amount of time they need to implement the required functionality.
  • The Technical Lead creates the overall project architecture.
  • The Quality Assurance manager creates a checklist for the project functionality one will use to ensure that the project’s functions work as they should
  • The System Administrator creates the GitLab CI/CD repository where the team will deploy and store different versions of the project’s code. 
  • The System Administrator sets up the Development and the Stage environments. The Development environment is the environment for coding. The Stage (staging or pre-production) environment is the environment for testing that resembles a Production environment.

Phase 3. Project Development and QA

For most projects, we apply the scrum project development framework. This means that the scope of the project is broken down into 2-3 week sprints. At the end of the sprint, the team runs a demo of new functionality to stakeholders and releases the new functionality to the live environment. 

Sprint Planning 

Each new sprint begins with sprint planning. At the beginning of the sprint, the development team plans and determines what scope will be delivered.

If the team considers that they can’t deliver the expected result, we find extra developers that augment the team. 

At this phase, the Project Manager and the development team

  • Define a person responsible for technical leadership on the project, i.e., the tech lead
  • Implement development guidelines (design pattern, scalability, maintainability, test coverage, code review, etc.)    

Definition of Done 

The definition of done is an essential document for developers, QA managers, and project stakeholders. Definition of done is a list of requirements determining one or another feature is performed as it should, ready for deployment to a live environment, and enlightened with the tech specification. 

The development team determines the definition of done for each function of the project during spring planning: 

  • The developer estimates the required time to complete a particular task
  • The Project Manager adds the user stories and the use case to the description of the task 
  • The developer and Project Manager add conditions the task requires to perform correctly in the definition of done     

Once the team defines the project scope for the new sprint, developers begin to code project functionality. The quality assurance team tests each task right after the developer finishes coding it. 

Sprint end 

When the team has a few days before the sprint ends, the tech lead of the project dedicates a stable branch for a QA manager for project testing: 

  • QA managers run regression tests to find bugs and errors
  • Developers fix errors and do code refactoring
  • The team releases new functions and run a demo session with stakeholders and gathers their feedback
  • The team share their challenges during the sprint, potential bottlenecks for the new spring during sprint retrospective, and create the scope for the project improvement process in the case of stakeholders not being satisfied with the project demo

Project Improvement 

Project Improvement is the scope of work developers must do so the project’s functions meet the definition of done:

  • The Project Manager establishes the improvement backlog and renews it by the end of an iteration 
  • The Project Manager involves the stakeholders in generating the project improvement ideas and fixes them in the improvement backlog

Backups

Before releasing the new project’s code, developers create a project repository backup. This procedure is necessary because new functions may not be compatible with tasks in the old project’s code.

Moreover, backups help us compare a previously good state of the project with the project’s current state. Finally, backups prevent data loss by ensuring that critical infrastructure wasn’t decoupled from Github by a third party that wants the breach to spread. 

The team creates a backup of GitHub repositories with critical project assets, including:

  • Codebase                        
  • Infrastructure and configuration                         
  • Databases                        

Then, QA managers test each project backup.

Iteration by iteration, The APP Solutions team of developers does spring planning, coding, bug fixing, making backups, and testing until the final project demo. 

Phase 4. Final Demonstration

The final demonstration session of the project is a meeting of the development team and you as a project stakeholder before the project’s release. 

During the final demonstration sessions, the development team shows the project functionality written in the project technical documentation to you and other stakeholders.

After the final demonstration session, you and other stakeholders can test the product on your own in the test environment before developers upload the project to your server. 

During the next two weeks, The APP Solutions team provides free technical support to fix issues that are not aligned with technical requirements to the system. After the end of the two weeks, the APP Solutions Team and you can sign a Technical Support Agreement to continue project improvement. 

Phase 5. Technical support 

Technical support is necessary for all new projects to maintain a system that can perform differently in a live environment rather than in a test environment. 

Technical support is also essential for ensuring the system’s stability since unexpected high traffic loads can increase project downtime and cause other technical issues. 

Tech Support Team 

The typical support team includes: 

  • The DevOps engineer maintains network health and fixes errors on the server 
  • The support manager (or a feedback operator) gathers user requests (briefing, receiving complaints, processing applications and proposals)
  • The support developer makes any urgent changes to the project to ensure streamlined fixing of critical issues, bypassing the project improvement backlog

Technical Support on 3 Levels 

At The APP Solutions, we have three different technical support levels that vary in respect of the project’s complexity, stakeholder’s needs, and the client’s business maturity: 

Level 1. Service desk

Under the service desk tier, The APP Solutions team ensures: 

  • Processing of incidents and requests 
  • Dealing with common, typical, and previously documented issues
  • Escalating issues
  • Collecting statistics

Level 2. Issues/problem management

The second level of technical support empowers developers with more responsibilities:

  • Resolving of non-standard issues 
  • Analyzing root causes 
  • Providing workarounds and quick fixes to minimize business interruptions
  • Resolving high severity and urgent incidents

Level 3. Product development

Under the third level of technical support, The APP Solutions provide a dedicated team that deals with

  • Developing permanent solutions to issues from rare curing
  • Releasing and deploying management to align system changes with changing business needs

Models of cooperation 

The model of cooperation determines the number of responsibilities a development team faces when building a project. There are three fundamental models of cooperation – Managed Services, the Dedicated team, and the Extended team. Let’s explain them one by one. 

project management for software development cooperation models at the app solutions

Managed Services is a cooperation model under which The APP Solutions team manages all product development processes while you get the freedom and time to develop your business. This engagement model works best to build complex products, such as web or mobile applications from scratch and provides technical support services. 

The composition of a team that works under this model may include application developers and quality assurance specialists and a product manager, UI/UX Designer, Business or System Analyst, and other team members depending on your project’s needs. 

The dedicated team model means the development team shares responsibilities with you. You can work under this model for outsourcing business functions such as development and quality assurance to empower your existing development team with our narrowed domain specialists. 

The team composition of the dedicated team model includes developers, quality assurance managers, and a dedicated Project Manager who is taking care of the Software Development Life Cycle (SDLC) Methodology and process. The Project Manager also facilitates the integration of the dedicated team with other teams on your side and third parties.

The extended team is a cooperation model under which you as a client manage all the project development processes. The extended team model is popular among businesses that want to extend existing software development teams with extra professionals while avoiding finding in-house candidates and hiring costs. 

To make the extended team model work, you need to have established project management processes. Our Extended Team will inherit your existing structure and report directly to you or your project manager.

Project Management for Software Development: The APP Solutions Tips

The APP Solutions team have six central values that differentiate us from other software development companies: 

Happiness as KPI. We focus on things that matter. We know how to take care of your business’s problems and turn them into solutions. 

Result-Oriented. We value your business the most, and we are willing to help you with directions that yield great value where time is everything and doubts are detrimental. 

Narrow Expertise. We understand the balance between the industry’s best practices and adjusting to opportunities when they come knocking on the door.

Verified Seniority. We manage the qualification of each team member, applying the Competence matrix, and create a Personal Development Plan to grow in-house professionals. 

Standardized Onboarding. We apply an Onboarding Plan to shorten the project onboarding process, so new team members are integrated into the project quickly and efficiently.

Project Health Check. We ensure that the project goes right by applying Project Health Check best practices to compare project characteristics and qualities with industry standards.

The APP Solutions team is here to help you develop your new project, improve your old system, augment your existing development team, and provide technical support. You can write down your request to the contact form to get in touch with the team.

Looking for a tech partner?

Drop us several lines

Handling Deadlines in Software Development: Most Effective Tips

Why Software Development Deadlines are Important

In recent years, the word “deadline” has become a synonym for “trouble” or even “catastrophe.” Yet, deadlines are both essential and useful. They help to coordinate the actions of multiple people within a complex project that requires different processes to happen simultaneously. This description reminds us of software development. Let’s see what is so special about software project deadlines.

First of all, time is money. The process of software development is rather costly, and you need to stick to the plan. Furthermore, the sooner you launch the product, the faster you start getting profit. Secondly, the release of the product might be bound to a specific date, for instance, the time of committee review or marketing activities. Last but not least, software companies are usually interested in keeping their customers content and loyal, which involves timely project completion. That is why it is significant for The APP Solutions to explain the purpose and benefits of meeting deadlines to our team members and clients.

Risks of Timely Development

Usually, people do not manage to complete projects within time frames and not for want of trying. There are various factors, and the more complex the project is, the more factors need to be taken into account. Here are some of them:

  • An inaccurate estimation might happen due to different factors. Mostly, a brand new product involves fewer risks than the refinement or completion of an existing one. Improvement and completion are more complicated than creating from scratch for developers. It is hard to say how much time it takes before you see the quality of the code. Also, developers need extra time to look into an existing solution.
  • Third-party services. However, even the development of a new product can bring surprises. For example, if there are third-party services involved, they can change their configuration or API at any time during your project. Consequently, the developers would need to change the code according to those changes, and this can take additional time.
  • Human element. We also should not forget about the human factor: illnesses, lack of expertise, residence change, and many others. This takes us to the next possibility;
  • Long on-boarding for newcomers to an on-going project. If a new person joins the team during an ongoing project, they will probably need some time for onboarding, depending on the project’s complexity, 
  • Requirements changes. Some difficulties that affect deadlines might also occur from the customer’s side. If you increase the scope of work by changing the requirements, the development team will need more time. If a person fails to provide feedback or answer questions on time, it will probably blow the deadline as well.

Our Models of Cooperation by Risk of Deadline Breach 

  • Dedicated Team

This is the safest work mode that we can offer in terms of timely completion. It means that we provide a client with a full-cycle development team. Together with the customer, we decide on the work scope, project requirements, and deadlines. If something goes off the rails, we rearrange the scope of work by prioritizing requirements.

  • Time and Material

This model of cooperation tends to meet deadlines as well. Its other name is “Pay As You Go” because a customer pays according to how much actual time the team spends on the project. This model is flexible, and it allows us to rearrange the scope of work if needed.

  • Fixed Price

This model is suitable only for little projects with a clear understanding of the workload. Yet, if anything changes during an ongoing project, a customer would need to pay extra. “Fixed Price” model involves many factors, including the possibility of blowing the deadline.

If you want to learn more about our models of cooperation, see this article.

How to Meet a Deadline

So, we agree that meeting deadlines is a crucial part of software development, and multiple issues may threaten the timely completion of a project. Here are several tips on how to not miss deadlines:

  • Estimate Risks Realistically

Project managers are always involved in risk management. They need to identify and classify risks before project implementation, as well as create a plan for each risk mitigation. For this purpose, they can use a risk matrix that helps to detect both the probability and consequence severity of possible events. In this way, when an incident happens, there is no panic, since it was predicted, and a PM already knows what to do.

Risk assessment in software development

[Source]

  • Trust Your Team and Double-Check Your Estimates

Before starting to work on a project, developers break up large tasks into smaller ones. Then, they evaluate the probable time they will spend to deliver them. After this, CTO or a team leader checks the estimates to avoid the risk of incorrect expectations. This allows decreasing the probability of unrealistic deadlines that may be harmful to project completion.

  • Be Flexible

Sticking to the plan is excellent, but sometimes you need to take action. In the case of an unpredicted event, you might need to change something, for example, involve more developers or change the scope of work. The key to time and risk management is the readiness to make a decision or implement a plan B.

  • Use a Task-Management System

task management system

[Source]

When managing software development you need to have a place to store and track all the tasks and deadlines. No matter if you use Agile, SCRUM, or Kanban; JIRA, Asana, or Trello, it must be a software tool. One of the crucial elements of project management is backlog grooming. This process usually involves both a product owner and the team checking the backlog tasks. They ensure that all the necessary tasks are in the backlog, they are prioritized, and tasks at the top are ready to be delivered. Backlog grooming is always an ongoing process that helps to avoid unnecessary tasks and meet deadlines.

  • Communicate

Regardless of all the technical progress, we still cannot read minds, so everyone needs to talk to each other. The product owner, project manager, and all team members perform their best if they have all the necessary information and receive updates on time. This helps all project members work promptly and avoid useless effort. Even if all the previous methods have not worked, and it seems that the team will not meet the deadline, timely and transparent communication can regulate the difficulties.

Conclusion

You need to track different factors to have things done in a timely manner, especially if you are dealing with a deadline in software development. Not sure you can handle software deadlines? Hire us, and we will provide you with the best project-managers. 

Want to receive reading suggestions once a month?

Subscribe to our newsletters

Top-Rated DevOps Software Based on 2016-17 IT Reports

Every year, more and more DevOps tools appear to satisfy various needs of engineers and businesses. Effective collaboration between development and operations teams is one of the key success factors any business should consider when trying to improve performance. This article stresses the importance of careful selection, benchmarking, and ongoing improvement of the DevOps software.

 

DevOps Process

Since 2012, a group of business researchers has been investigating the role of DevOps in the work of more than 25,000 technical professionals across the globe. Most of the observed companies are US-based. As a result, the 2017 State of DevOps Report was obtained with the main results of the recent five years. Several factors were considered while evaluating the performance:

  • Lean management practices
  • App architecture
  • IT managers responsibilities
  • Diversity
  • DevOps transformation
  • Diversity
  • Deployment pain
  • Burnout

The basic findings proved that businesses should invest equally in their staff and DevOps tools.

DevOps Automation Tools: Recent DevOps Statistics and Findings

The study by Puppet.Com and other IT resources has covered some of the essential key DevOps tools. To understand their role, it is important to highlight the major findings:

  • Businesses with high performance significantly outperform their lower-performing colleagues. They deploy two hundred times more often, with 2,555 times quicker lead times, recover 24 times faster, and demonstrate significantly lower failure rates.
  • A technology transformation is an effective method to obtain vivid returns for any business.
  • Changing approaches to product development to try something new often leads to higher performance.
  • Key tools of DevOps are helpful in most cases, but it’s important to pick them smartly.

There are very few things businesses can do without in-depth research. As far as the main goal of this article is to uncover the best DevOps tools, we have also searched for the latest surveys based on the questionnaires fulfilled by the field experts. The choice was made once we have collected enough feedback concerning DevOps barriers and advantages. More than 50 survey completions made it possible to decide on the main features of DevOps tools as well as the top-rated tools themselves.

DevOps Adoption Up in 2016

Major Features of Good DevOps Deployment Tools

How should you understand whether your organizations would benefit from adopting tools for DevOps? Small and medium-sized enterprises (SMEs) go on adopting DevOps because of its effectiveness. According to ECS Digital, 67% of SMEs have adopted DevOps in 2017. In contrast, fewer Enterprises (47%) have done the same. However, only 11% of all enterprises reject ever to adopt DevOps – the rest are just searching for the best tools. Those who have successfully adopted the practice name better collaboration and overall performance as the main advantages of using DevOps software.

The process of choosing the right DevOps tools is not an exception. They should be 3-in-1: reliable, secure, and time-tested. While collecting feedback from DevOps engineers and practitioners, our team has decided on the features every good tool must possess. Those are:

  • Relevant and helpful functions
  • Support for several languages
  • Compliance with different operating systems (OS)
  • Reliability
  • Safety
Enterprise Adoption of DevOps

Before moving to the list of the top-rated DevOps automation tools, it is critical to say a few words about the DevOps demands of any development team.

Why Businesses Need Monitoring Tools in DevOps and DevOps deployment tools

First of all, the tools allow automating building and deployment. Let’s say an organization ABC has a virtual machine named George. It’s doing virtual builds thanks to George. The opportunity to access it distantly, break down the most recent source code, build and deploy artifacts from it makes this instrument an example of a good DevOps tool. Provisioning the servers and other “junk” takes plenty of time, so it is better to leave such tasks to the DevOps deployment tools instead of bothering personnel.

Next, it’s all about provisioning servers. It’s up to the company to choose whether provisioning or deploying to servers comes first. Anyway, the process of provisioning requires the understanding of the application’s type and the way business hosts it. Most organizations set up new services rarely. A massive scale allows adding new services frequently. As a result, such apps obtain more traffic.

Finally, the development team needs optimization and monitoring of the app performance. Most of the developers focus on the following six factors:

  • APM – code level app performance visibility
  • Transaction tracing to see what the code is doing
  • Metrics monitoring
  • Logs (aggregation, observation, and management)
  • Errors (reporting & alerting)
  • Alerts themselves (robust monitoring)

Based on these needs, it is possible to define the most popular software each DevOps engineer may try. The list you will find below includes the best instruments for logging, configuration management, safety, control, and automation.

Collaboration, Integration, Communication in DevOps

8 Examples of the Most Preferred Open Source DevOps Tools

There is no certain order in our list – each tool is equally useful.

Nagios and Icinga

Nagios

Nagios is one of the first monitoring solutions ever. Thanks to the all-time expanding community of contributors who develop plugins for it, Nagios is extremely effective. Icinga is a fork of Nagios. The updated version provides an up-to-date user-experience as well as a range of new abilities. Most of the businesses who apply this tool stay satisfied with its scale and excellent performance. It is recommended to switch to Icinga in the closest future.

Monit

Monit

To continue the discussion on open-source DevOps tools, we should include this one on the list. The tool is rather simple in usage. The main purpose is to make sure that each process runs correctly and smoothly. In case there is a failure in Apache, the team can see this software to relaunch the process. Monit is recommended for multi-service architecture to handle multiple micro-services. Avoiding the problem is not enough. However, control each restart to solve problems by finding proper ways out. Just monitor the tool’s log files and stay alerted to every relaunch.

GitHub

GitHub Octocat

Perhaps, it’s one of the most known and spread DevOps technologies. It is a web-based Git and internet hosting service often used for code. The tool is perfect for source code management (SCM). It also allows a distributed version control. The main features of the software include bug tracking, feature requests, task management, and guidelines for each project.

New Relic

New Relic

New Relic should be on every upgraded DevOps tools list. The tool provides reliable and integrated data for every phase of the DevOps trip. The usage of New Relic guarantees increased business agility and higher speed. Shared visibility and detailed metrics are the major benefits of this software. In case your business decided to change its current DevOps structure, New Relic may assist in transitions of that kind.

Jenkins

Jenkins

Many businesses call this one a leader in DevOps automation. The primary goal of the instrument is to control executions of repeated assignments. The main advantage is the simpler project changes integration as well as the ability to determine the problems faster. Jenkins appears in the shape of a Java-based program compatible with Windows, Mac OS X, and more Unix-like OSs. It is easy to install and configure using a web interface.

Consul.io

Consul.io

Consul is another tool that allows configuration in most recent apps that are constructed specifically for microservices. It provides internal DNS names for services. DevOps engineers who have any problems with registering names would enjoy Consul.io. As a result, it becomes possible to get service names instead of specified machines. The tool is convenient when working with clusters. What we mean is when there are multiple machines joined in one cluster, it is better to sign up them as one whole entity to access it at any moment without any problems.

Chef

Chef

Among all best DevOps tools, it is possible to notice Chef somewhere on the top of the list. The tool takes care of various aspects, including IT automation and configuration management. The software is known for its excellent security. Chef allows original managing configurations thanks to the variety of recipes and resources. The tool checks nodes from a single server, updating them for DevOps team. The instrument integrates with all main cloud providers.

Vagrant

Vagrant

Vagrant established by HashiCorp assists in creating and configuring lightweight, renewable, and transferable development environments. The tool has simple-to-use workflows and is focused on automation. The installation process is fast and easy. It will run on Mac OS X, Windows, and Linux. With a single command, Vagrant will combine your entire development environments to let DevOps team participants have identical environments.

See also: How and Why DevOps Benefits the Business Process

Download Free E-book with DevOps Checklist

Download Now

What’s Next?

Out of all tested tools, Chef and Jenkins remain the most popular. However, it does not mean your business can’t try other monitoring tools in DevOps.

They are all a bit different from their goals, prices, and key features, but each is helpful in its unique way. Most of businesses do not support a “choose one” approach.

Thus, we recommend deciding on more than one configuration tool to meet your business goals and the DevOps team’s needs in particular.

Want to receive reading suggestions once a month?

Subscribe to our newsletters