Tag Archives: distributed team

Distributed team: process overview p.2

 

Distributed team: process details

Last week I shared an overview of NTR’s process, because, in the final analysis, no matter how talented the techs or smart the founder, anything goes better with a solid plan.

My boss is always saying, plan equals process, but I think of process more like a map that shows how to get from here to there.

We covered the first two steps — understanding your vision, market and biz, and the necessary paperwork — yesterday, so let’s get to the interesting stuff.

When it comes to software development, we offer three engagement options:

  • Project
  • Virtual Offshore Development Center (VDC)
  • Dedicated Offshore Development Center (DDC)

Here is what is involved with each:

Project involvement.
When requirements are well-specified and detailed we can work with you on a fixed-cost, project-based premise.

This means that you provide us with a detailed requirements document for the software and based on that we estimate the project in detail, factor in the development risks, and provide you with a fixed cost/fixed time proposal.
Substantial requirements changes will trigger change management procedures, including contract renegotiation if necessary.
We are responsible for project management, while QA can be on either side.


VDC (time-and-materials)
The development team is flexible, based on your needs. 

We track all developer working hours and bills are based on those reports. Invoices w/timesheets are submitted by email or online access and paid monthly.

Project management and QA can be on either side.
VDC is suited for fast-paced environments where the time to renegotiate a contract is too costly in terms of both deadlines and money.


DDC (dedicated staff)
The team is stable — works only on the clients business — allowing it to build a deep competence in the customer’s product, needs and processes.

We usually work iteratively and you pay either for each iteration based on time and material reports or a fixed monthly amount.

NTR offers two development process options, depending on the specific situation

  • Agile
  • Rational Unified

 

Agile process, typically SCRUM-based
Agile rests on four main iterative activities (listening, designing, coding and testing) with the following process highlights:

  • continuous customer interaction;
  • continuous testing;
  • early feasibility studies;
  • early prototyping;
  • early detailed software design;
  • early functional software;
  • gradual feature addition.

Typical activities include:

  • daily status meetings
  • planning reminders
  • code reviews
  • unit testing
  • weekly customer demos

Rational Unified process
A four-phase approach (inception, elaboration, construction and transition):

  • starts with business needs and context analysis;
  • produce the project plan and description;
  • consider challenges and basic architecture;
  • create development plan;
  • write the code;
  • complete all necessary testing and feedback-driven adjustments. This includes all customer-specific options.

Step 3

The quality and efficiency of your experience with any kind of remote work is heavily dependent on the quality of communications that facilitates the teamwork.

We use a variety of communications technology, combined with written documentation that avoids misunderstandings, mishearings or memory lapses.

As I keep saying, communications are paramount. Together we choose the optimal communication tools we set up

  • a rhythm of daily or weekly meetings, along with whatever additional communications are needed;
  • a solid online project management tool or issue tracker;
  • a tool to collaborate and share all sorts of documents about the product; and
  • tools that allow effective distributed collaboration for engineering activities.

Step 4

When applicable we build a UI prototype.

We make an interactive prototype, correct and change it depending on customer feedback, and only after that do we make the real prototype.

Step 5

Each project has a project manager and lead developer. We start coding when the spec is decided using the agreed upon development method (Agile or Rational Unified)

Step 6

We move to small one- or two-week iterations sequentially increasing the functionality of the application.

Step 7

We use a variety of technology to track errors and store the code on GitHub to facilitate full integration.

Step 8

We build effective tests into the planning process at the start, because that is the best way to assure quality and prove your application is ready to launch. Testing includes setting up measurement tools, including KPIs, if applicable.

We have our own team of QA engineers. They conduct both manual and automated testing as needed.

Step 9

Launching is always a multi-faceted process. We make sure that the marketing build-up, actual product launch, and data migration (if applicable) occur at the same time.

Step 10

Comprehensive Support

After product delivery we provide support, warranty bug fixes and usually continue developing future versions, allowing you to focus on market and monetization.

These are the details of our development process — from the seeds (AKA paperwork) to the beautiful flowers (product delivery) and berries (comprehensive support).

As NTR’s business development manager I don’t really need to know these details; even when I work with potential clients these details are beyond our typical conversation — they belong to our accounts and tech guys.

But I believe that what really distinguishes great workers from OK ones is the will to do and learn and know more.

For me, understanding how things go from idea to solid code, per aspera ad astra, really helps me  integrate into the very living essence of your company, to really feel part of it, not just a contractor, but someone who helps your dream grow and blossom — like a bee to the flower. Maybe that sounds corny, but it is how I feel.

Join me next week when I start sharing stories about our departments, people and especially the newest part of NTR — hardware. You’ll have fun. Bye!

Distributed team: process overview

 

Last week I quoted something a client said to me, “give a fool a tool and you still have a fool — they need to be used correctly.”  

I do business dev for NTR and when potential clients ask the “process question” it means they are seriously interested. It also means my response can make or break the deal.

When I first started working in IT I found it surprising that everyone wanted to know how we work. I thought that was weird, because everybody works the same way. Boy was I wrong.

People who work in IT know there is this special atmosphere of creation — developers discussing how to implement unusual features you never think about; their jokes that nobody else understand, QA department guys pretending to be a bus to test a new feature (how accurate is the bus timing in a navigator app), flying drones around the office; lots of turmoil and lots of excitement.

The atmosphere is inspiring even when it’s a bit childish. The project managers tell me that it’s a process in which they must carefully balance the creative forces, while avoiding chaos. 

NTR’s process has been developing for 16 years and continues to iterate. Probably because we have grown from the original little team of friends to 12 teams with 100+ developers working together on really large projects for both major customers and dozens of startups and from all over the world.

So our basic process must be really solid, well-curated, and fully customizable in order to deliver the best results for our clients and be proud of ourselves.

The first step is in getting to know your business; we take time to understand you market, its pain, your solutions, and how we can help tame the idea a reality.

Every engagement starts by signing a binding NDA-NCA-NSA. The reason for NDA is kind of obvious. Non-compete agreements (NCA) ensure that we don’t walk away and start a business competitive to yours, while non-solicitation agreements (NSA) mean two things. First, that neither of us will solicit each other’s customers directly, and, secondly, that neither side will poach each others employees.

Once the paperwork is done, there are three main engagement options:

  • Project-based
  • Virtual Offshore Development Center or VDC (time and materials)
  • Dedicated staff

And a choice of two development options depending on the specific situation:

  • Agile process
  • Rational Unified Process

Once these choices are made we build a UI prototype when it’s applicable.

The next step is an interactive prototype, discussed, corrected and modified depending on client feedback; only then do we build the real prototype.

Each project has its own project manager and lead developer.

We set up measurement tools and store the code on GitHub to facilitate full integration.

Our quality team conducts both manual and automated testing to ensure your product is ready for launch.

Because launching is a multi-faceted process, we make sure that the marketing build-up, launch of the product, and data migration (if applicable) occurs at the same time.

Finally, we provide comprehensive support.

Next week I’ll go into more detail on the how and why of the choices above.

Distributed team: what about the tools?

 

Most people, especially those who work in tech, and most especially Millennials like me, really like where we work — if we didn’t we would leave and work somewhere else.

I know from all the recruiters who contact me that I could move easily and probably for a little more money.

So why do I stay? Because I love the way NTR does business. I may not have a lot of work experience, but I have been on the receiving end of companies whose sole interest is taking my money and not giving a damn once they have it.

I know from chatting with people in other countries that the attitude isn’t unusual no matter how many times they say “you are very important…”

And that’s why I stay, because NTR isn’t like that.

Nick and Anton (our founders) have spent 16 years “improving the customer experience,” as they say at Amazon.

Over those years they developed a really good process and continue to tweak it, constantly evaluating the tools to be sure we use the best ones for the job, incorporating new tech because it’s better — not just because it’s new.

So let’s take a look at the tools.

 In the course of a series on outsourcing last year the importance of good communications was prominent with everyone we talked to.

Because our project managers all speak and write competent English, we can use a variety of different communications tech, partially dependent on client preferences, combined with written documentation that avoids misunderstandings, mishearing or memory lapses.

There are many tools available, so we set up

  • a rhythm of daily or weekly meetings by Skype, Slack, Google Hangouts etc.,
  • continue with online communications beyond the scheduled meetings;
  • a tool to collaborate and share all sorts of documents about the product (Google Docs, Confluence);

However, as critical as good communication with clients is it’s still not everything. Teamwork tools are also extremely important, since we are communicating across time zones. So in addition to Skype, Slack, and Google docs, we add

All of the tools we use are cloud-based, so our clients can work from anywhere.

Tech tools are great, but, as a client said to me, give a fool a tool and you still have a fool — they need to be used correctly.  That means they need to integrate smoothly into whatever process is being used.

NTR’s process is what truly sets us apart, as I will explain in detail next week.