Interesting stories not to be skipped

Thank you! Your submission has been received!
Oops! Something went wrong while submitting the form.
Agile Methodology: past, present, perspective
Agile is tightly connected to the software development area, and is usually mentioned in that exact context. It was created to increase development efficiency. But today it is so much more.
Agile Methodology: past, present, perspective
Agile is tightly connected to the software development area, and is usually mentioned in that exact context. It was created to increase development efficiency. But today it is so much more.

What is Agile Methodology

Agile is tightly connected to the software development area, and is usually mentioned in that exact context. It was created to increase development efficiency. But today it is so much more.

Agile in general is an iterative approach based on the power of dividing and interacting. While it is an oft-suggestedstrategy to “go big” — build something from scratch to a huge launch (and cry if the launch wasn’t a success), Agile is the idea of small steps synchronized in every part of the project.

In Agile process everybody can find and fix small mistakes before they build into a monstrous problem. They’ll feel connected to all parts of the project, instead of like an alien in their own spaceship.

Requirements, plans, and results are evaluated continuously so teams have an opportunity to respond to change quickly.

That’s why Agile is still so popular. It also has an absolutely transparent ideology, and even a Manifesto! 

What are Agile’s core values and principles

Agile Manifesto teaches us the right things to do, putting it into core values and guiding principles.

4 core values of Agile

  1. Individuals and interactions over processes and tools.

It means the human element is always more significant than tech tools, no matter how sophisticated those are. Relying too heavily on processes and tools could cause an inability to adapt.

  1. Working software over comprehensive documentation.

It means that one should never forget what is really important. And this is not perfectly filled documentation; this is the result. Everybody should do exactly what they need to get the job done, without bureaucracy overload.

  1. Customer collaboration over contract negotiation.

Customers are a company's most powerful asset, its stability, its main power. That’s why you should involve them in the process as much as you can to ensure that the end product meets their needs more effectively.

  1. Responding to change over following a plan.

Having a good plan is gold. But every project is changing through time, so it could lose the connection to the initial plan. This is an absolute deal breaker for traditional project and product management, but is 100% okay for an Agile team.

12 principles of Agile

Here are basic Agile approaches that should guide you through every part of the work process.

  1. The highest priority is to satisfy the customer through early and continuous delivery of valuable software or whatever you produce.
  2. Every changing requirement, even late in development, should be welcomed due to its importance for the customer’s competitive advantage.
  3. Projects should be delivered frequently, from a couple of weeks to a couple of months. Of course the shorter the timescale the better.
  4. Coordinating team members must work together throughout the project on a daily basis.
  5. Motivated individuals should get more attention. Build your project around them, give them the right environment, and support they need. And, most importantly, trust them.
  6. Face-to-face communication should be encouraged as the most efficient method.
  7. The final product should be the primary sign of progress.
  8. All stakeholders should be able to maintain a constant pace indefinitely.
  9. Technical excellence and good design that enhances agility should get attention continuously.
  10. Simplicity should be your religion — as the art of maximizing the amount of work not done.
  11. Remember that self-organizing teams create the best architectures, requirements, and designs.
  12. Team members should reflect on how to become more effective and adjust, regularly.

It is fair to say that these principles should become a North Star for any team adopting an Agile methodology.

How did it start

We started with “all these years”, but haven’t mentioned till now how old Agile really is.

The answer is: a bit older than 20 years. In early 2001 in Snowbird, Utah, 17 people met to discuss the future of software development. They all were frustrated with the current state of affairs: companies were so focused on excessively planning and documenting all the development cycles that the sight of what really mattered was completely lost. That needed to change. And since many of Snowbird 17 already had ideas about how to usher in software development new era; that was the moment Agile Manifesto was born. It was just 68 words — a good start for the documents mess battle, ready to change software development forever.

Since then, two decades have passed, and Agile principles have been embraced by countless individuals, teams, and companies. Of course, all of them have adapted the statements and core values according to specificity.   

Why choose Agile Methodology?

In general, Agile helps respond to changes in the marketplace, get feedback from customers quickly, and put it to work with no plan breaking and struggle. Agile lets focus on people — on their needs, desires, talents and strengths, and due to that helps the product development process become more natural, more inspiring, and, after all, more efficient.

But actually every part here has its own benefits from embracing Agile values.

  • If you are a customer, you get the vendor more responsive to development requests.

  • If you are a vendor, you have an opportunity to reduce wastage by focusing development effort on high-value features. Also, you can improve customer satisfaction, which translates to better customer retention and more positive customer references.

  • If you are a member of a development team, you will enjoy development work, and the feeling of seeing it used and valued.

  • If you are a product manager (and also a product owner), you will be able to make customers happy with less effort, becausedevelopment work is, according to Agile, aligned with customer needs.

  • If you are a project manager, your planning, tracking, and team organizing tasks are easier and more concrete, compared to waterfall processes.

So, Agile methods fit anywhere. But…

… is the Manifesto still relevant?

While Agile Methodology serves huge international companies leading us to the future, why not change it? Does it need to be updated and improved?

Actually, no. Agile Manifesto is not just a document or some product management guide — it is an ideology, a statement, a firm “no” to bureaucracy mess and time wasting. So this is, basically, untouchable.

And those who want to embrace it might be able to reinterpret it, adapt it to their own development cycles. But never change.

Find a developer and a right way to interact
If you’ve decided to launch a web-service or app, but you have no developers, in the past, you only had two options...
Find a developer and a right way to interact
If you’ve decided to launch a web-service or app, but you have no developers, in the past, you only had two options...

Hire employees

Nobody will judge you if you hire full-time developers through an official contract. The team will be under your full control and you will be able to change priorities and move employees from one task to another.

But… this is expensive. First of all, you must consider the employer obligations - everything from taxes to benefits to job guarantees for your workers. To make the economics work, you need to create constant task flow so employees are not idle. CFO’s are not in love with adding fixed costs into the business, especially in this economy. Also, the hiring process can be complicated and expensive. It’s almost impossible to build an engineering team around an office these days, and remote hiring opens up a new set of challenges. You can spend months and up to 5000$ per hire for just one good developer. Even more — if you are looking for a developer with special skills or huge experience.

If you choose to hire employees, saving money could be tricky. Today you can’t “hire developers from a small town and pay them half as much". Thanks to the global trend towards remote work, large tech companies are hiring technical talent all over the world, making it even harder to compete.

If you are hiring on staff, you will need an IT talent acquisition team, manage relationships with multiple recruitment agencies, and will face the challenge of how to recruit in the modern remote work environment. HR (and it will be one more staff unit) or go with agencies, which are not always safe to rely on.

If you are running this from the tech function, you can create a test task and interview your candidates yourself. Even so, you will need to distribute your offer across the many remote global job boards online, analyze CV’s, help new employees with adaptation etc.

Here is how long it currently takes to hire tech experts in the US:

  • developer — 35 days,
  • tester — 26 days,
  • database administrator — 26 days,
  • mobile apps developer — 24 days,
  • junior developer — 16 days.

Work with outsource studios

Imagine you could find a ready-to-go team and trust it with every part of your project. Somebody you know well, who wouldn’t leave you with raw product and code access.

The challenge of this model is it lacks flexibility and customer-centricity. Outsource studios usually have a specialism they are great at, but struggle with work outside of the field of expertise.

Of course, there are always big companies with a bigger range of specialty options, but then you lose the relationship and their services are priced at a premium.

Outsource studios also have to build in a strong margin to de-risk any project at a fixed price, as well as a nailed down SOW. That’s why they are famous for being subject to Change Orders almost from Day 1 of a project and you lose control of the budget.

Work through a cross-functional platform

This is often known as staff augmentation. You engage a company to supply workers with specialist skills for your project, without the commitment of a permanent hire, and you keep the ability to scale up and down as required. With people who have been pre-vetted through technical tests, peer to peer interviews and HR interviews, you can access the best matching people to fit your requirements available on demand.

Skipp is exactly this kind of business; a global network of technical specialists. We come from technology companies, and experienced these hiring challenges, so we set out to solve the hiring problem. We have extensive networks across the world, understand how to sort for the different levels of talent and we know how to find the people to best fit your requirements.

After briefing one of our Talent Acquisition Specialists, they will provide you with a short list of great candidates for final interview so you can start working together within one week. In addition, we will assign a Customer Success Manager to meet you regularly, meet the developer weekly, and monitor their activity through our platform dashboard. We stay on top of everything from task progression in JIRA, to volume and quantity of code shipped, to your customer NPS score to ensure developer productivity. The CSM is your assistant manager to ensure all Skipp talents are always on track to help keep your project on time.

IT outsourcing: choosing an expert, assigning tasks, setting up process
IT outsourcing seems a bit scary, doesn’t it? After all, you’re entrusting your project development to complete strangers. We’ll tell you how to work with an outsourced team with no money losing and getting the results.
IT outsourcing: choosing an expert, assigning tasks, setting up process
IT outsourcing seems a bit scary, doesn’t it? After all, you’re entrusting your project development to complete strangers. We’ll tell you how to work with an outsourced team with no money losing and getting the results.

What tasks are good for IT outsourcing and what are not

Some projects are more suitable for in-house production. Consider this option, if:

  • you need to work constantly on a simple task like the interface testing or similar pages creating. Junior developers for a full day will cost much less for you than an outsourcing company, and manage the job well enough.
  • you work on an R&D project, and this is not easy (or impossible) to define the timing. Outsourcing may be too expensive in such case.
  • the project has high security requirements, and any outsourced employee creates a security threat, potentially.

The task is good for outsourcing if it is clear-cut and has a defined deadline. Go with this option, if:

  • You need a website or application. It is easy to estimate expenses and final result, which is necessary for IT outsourcing.
  • Your company lacks competence in any tech. If you need to use C instead of Python once or twice, it’s more convenient to hire an extra person on outsource for that.
  • Everything is on fire (not literally, of course). In this case, you just don’t have time for getting a team.

How to choose your perfect worker

Outsourcing begins with a team picking. How to choose the right one?

First, even if you think you’ve already met “the One”, request offers from a couple more teams. You will get more market data and make an informed decision.

Second, pay attention to offer itself. You should be careful if:

  • Outsourced team makes an offer immediately, with no questions asked. It is not common that everything is clear; probably your potential candidate just doesn’t understand the issue quite well for ask the right questions.
  • The price is weirdly high and there are many outlay items that are not quite relevant. And it’s not just about money: less experienced teams usually ask more from the beginning, just in case.

You can be sure your candidate is good if:

  • He asks a lot of questions in order not just to write code according to the brief, but to create a useful product.
  • The hour rate is higher, but there are less hours for the task in total than in other offers; it shows an employee knowing well what to do.

Third, check out the portfolio. Similar cases will show the expert level. And if the software development team launched an app with poor navigation and interface a few months ago, there are no reasons to believe it could do better today.

Fourth, meet with your potential team. Specify their methods, figure out their opinion on the product. Too common answers are a bad sign. You need not the cheapest option, but the team who can do the best for your project. It is better to spend time searching than redoing what was already done.

❌ The way to fail: choosing by price.

✅ The way to succeed: choosing by experience and skills.

How to put the task right

Development specification usually consists of three parts: concept, design, and functional description. There are one main rule for every part: the more details the better result.

you need a website or application. It is easy to estimate expenses and final result, which is necessary for IT outsourcing.

  • Discuss with a team, whether you missed anything important, if there are any other options you didn’t mention, and is it can be done at all. Do not forget that developers can’t read your mind: if you missed something in specification, it will be missed in a final product.
  • Give all the information. The team should understand not only what they work on, but also what they work for. If your employees have the whole picture, they can optimise business process, and probably even a product itself. So, if you want to launch a basic online store and then in a few months add a recommendation system and a personal accounts, it is better for your team to know the plan from the beginning.

❌ The way to fail: general description of your idea.

✅ The way to succeed: detailed description and answers to all the team questions.

How to interact with a team

Sometimes an outsourcing vendor promises you two backenders and two frontenders for your project, but after all it looks like all the job was done by one employee, and not even a full-time one. This can be easily explained by the business model of outsourcing companies — if there are too many projects in process, developers are torn in between.

Meet developers who will work on your task and do your best to keep in contact with them. The more you meet, discuss and plan, the better result you will get.

❌ The way to fail: giving the specification and waiting silently till the product will be ready.

✅ The way to succeed: staying in touch; checking out the work in progress; answering questions.

How to work on complex products

Project includes design, front and back, testing, and analytics. But outsourcers usually have a narrow tech specialty, so one person won’t be able to manage all the tasks properly. So, he will give it to a more experienced developer, or, in a worst scenario, do it poorly with his own skills.

The solution is to work with meta teams. In this case, you select well-experienced experts for every specific part of the task.

It is important that all meta team members were able to communicate, make decisions together, be on the same page. The tighter their contact, the greater the result will be. You can even use an extra expert to organise the team communication — a product manager who understands the task well and can answer any questions.

How to use IT outsourcing after all

  1. Do not outsource everything you have on your hands. There are type of tasks that are not suitable for giving away.
  2. Choose not by the price, but by skills, experience and enthusiasm.
  3. Do not expect somebody to read your mind. Explain your idea as detailed as you can.
  4. Do not leave the team alone with the task — be ready to answer any questions.
  5. If you are looking for a team to develop something huge, go with a meta team.
Building a World-Class Software Engineering Team
After a ton of work, you’ve launched your app. You’ve explored the market, set a goal, created mock-ups, found the team, and managed everything. Your product is live, and users are already loving it. Is it time to pop champagne? Not really...
Building a World-Class Software Engineering Team
After a ton of work, you’ve launched your app. You’ve explored the market, set a goal, created mock-ups, found the team, and managed everything. Your product is live, and users are already loving it. Is it time to pop champagne? Not really...

Point 0. Do you really need an in-house team?

It’s nice to have your own development team. You can create features, brainstorm, and discuss your future. You can give your team equity in the company to motivate them, but this practice is pricey.

Point 1. You don’t have to start with looking for a developer

If you are good at tech and you’re able to give a task and then approve the final code — then sure, hire your future developer ASAP. But if you need to focus on business and management, better be sure you have somebody to lead a team, like a tech director or project manager. You can rely on him for the tech part, and be able to focus on the product.

Point 2. Define all the roles and describe the job

Define the volume and specificity of the project-supporting work. If there are many new functions to develop ahead, you’ll probably need a few different full-time developers. If it’s enough to just keep servers alive, then all you need is a part-time admin. 

Describe your expectations about required technologies and the developers’ experience level, write about your product, and explain possible tasks. Now, you should have something you can upload to career web-sites.

Here is an example of how to describe the role:

  • Job title
  • Description of tasks
  • Who you are looking for
  • Qualifications and skills
  • Project and team information

It doesn't have to be long. You can summarize everything you need in one page.

Here is how we do it: the page for designer job description has the name, the definition, tech list, and terms. Below that, there is more info about us.

Point 3. Pick your possible team members

Take a look at the applications and exclude developers who don't meet your needs in specialty or experience. Take the rest to the interview stage. Here are things you should check while interviewing.

Soft skills. Is a developer interested in business goals, or does he just wanna code? Is he independent, or does he need to be guided to complete certain tasks? Does he match your project personally?

There are no right or wrong answers. One project needs an independent contributor, while the other does not. Look at every skill through your goals and needs.

Tech skills. Make sure you won’t need to redo everything your new developer does, and that he is really able to do all the things he said he could. The easiest way to prove this is with a test task.

Point 4. Give a test day or probationary period

Assess your possible candidate in the field: connect him to the team and watch how he manages real tasks. It depends on the project, but you can observe just for a day or for a two-week sprint.

At the beginning of the probationary period, organize a kick-off meeting. Introduce the developer to the team. Tell him about the product and its future. Give him access to your repositorium, messenger, and CRM. Introduce him to work processes; explain your prioritization and evaluation policy.

Like any other employee, a new developer will need time to adapt — to understand the code and realize your expectations. Don’t think that he’ll be ready to develop new features immediately, but pay attention to his work methods and values.

Point 5. Build your team processes

Assembling the team is just the first step. If your product is not a one-day issue, but a long-term business, the work needs to be systematized. Here are things that will help you do so.

Regular management system. You can try working in sprints. At the beginning of each sprint, you will set and dissect tasks. You should have meetings everyday, and at the end of them, you should look at the project retrospectively and discuss the work you’ve just done, taking feedback and analyzing problems.

This will help you know that the team is on the same page and moving in the right direction, and that all the developers understand business priorities.

Tech process organization. The tech lead of the team has to ensure that development is always progressing. This requires test processes and auto-updating systems. 

Also, the code should be understandable to any new team members. This requires code standardization.

Different teams’ synchronization. Over time, the project will grow, and experts will start working independently. Developers, designers, and analysts will manage their tasks in their detached teams. But their efforts will still need to meet in key points. For example, designers are always 1–2 sprints ahead of developers to make sure they already have mock-ups by the time they get the task.

And, of course, you don’t have to make everything with just your own employees. You can use the magic of outsourcing any time you want.

Skipp helps both with new projects and existing ones. Tell us more about yours, and we will assemble the perfect team for you.

Nothing found