2004 — 2014
A simple tale of how we created Targetprocess, the visual project management software.
It all started back in 2004. In those days only a few people in Belarus had heard about agile and almost no one actually used it for their work. Iterative development, what the heck is that? Pair programming? TDD? However, at one local software development company where Eugene and I worked, we had a chance to try Extreme Programming for one of our internal projects. As a side effect we needed a software tool to manage such a project. During that time there were several horrible free tools and a few paid ones that were ridiculously expensive. We thought to ourselves: "Why don't we make our own XP project management tool?" as many programmers at that time must have. For us, this single question turned into the concept of Targetprocess (the very first name was SWIPE – Sprint Web Integrated Process Environment).
I started playing with the idea in May 2004 and by June it evolved into a 20-page document. The development began in July; I had a day job, so I only worked after-hours and week-ends.
I worked on the first version mostly by myself, the other guys were not able to join for various reasons. TargetProcess:Planning 1.0 said "hello, world" on November 14, 2004.
TargetProcess:Planning was free and had minimal functionality. Nowadays they'd say I released a Minimal Viable Product using Lean methodology, but at the time there was no lingo like that, it was just common sense. It's quite hard to release something amazing, working alone, at nights and on week-ends. All I wanted in the minimal product was iteration planning, a burndown chart and a task list.
In those days there were very few such products available on the market and Targetprocess stood out from the rest with its un-ugly design. The initial feedback was quite good and it was clear that users are interested in such a product. To us, it meant a go-ahead to start working on a market-ready version of the product.
Oleg, Eugene and Vadim joined me eventually. We released the first paid version on January 20, 2005; it was called TargetProcess:Suite 1.1 and the integrated bug tracker was the coolest feature. Back in the mid 2000's no other agile tool, not a single one, allowed managing both user stories and bugs.
One could purchase the software for only $799, for unlimited users. The software had to be downloaded and installed on a server as the SaaS model was mostly unheard of back then.
We continued to build on the product. Our next big addition was integrated time-tracking. In April we released TargetProcess:Enterprise edition. In this version the full source-code was available upon request, custom development and "premium support" were included.
More favorable feedback started coming in:
There's nothing else really special to say about this year, except that we introduced the license count and raised the price. The product was really gaining momentum.
By this time the technical limitations of the system began to take their toll. Early on I picked O/R mapper, which turned out not to be the best choice, and we were stuck with it. As of 2006, NHibernate would work better. Besides, the code written by me was not the nicest in the world; rather, it was just bad. So in January 2006 we decided to rewrite the system from scratch.
It was clear that TargetProcess could potentially grow into a company. The four of us made a decision to quit our cozy day jobs and work on the product full-time. This important event occurred in May 2006.
My apartment was the first office. Eugene would come over with his laptop, and we'd do pair programming.
A quiet start to yet another debate
We'd get into very heated debates over functionality and UI. My wife sometimes thought that we'd soon start hitting each other in the face, but it never came to that. Actually, none of us got punched in the face over those 10 years, no matter how fiery the debates, not a single time.
The architecture in TargetProcess 2.0 was mostly Oleg's baby. It included code generation, NHibernate and some other stuff which was considered cool.
Meanwhile, we released the final version of the first generation of TargetProcess, 1.7. Also, we suddenly won a Jolt Productivity Award in the Quality Project Management category. I had to ask one of our customers – Bruce Onder - to fly over to the ceremony and pick up the award.
In the fall of 2006 we decided to work with more focus and rented a small room in an office building.
In this room our work on TargetProcess 2.0 started to pick up steam.
About this time, the interface was redesigned, by Dima Bolashev.
By mid-fall TargetProcess v. 1.7 sales dropped to almost zero. There were no recurring subscriptions, so all of the company's profits came from new sales. And there were none. That's why we had high expectations about the new v. 2 launch. If it were to fail and the product wouldn't sell for even 3 more months, it's likely the company would have ceased to exist.
So, on October 10, 2006 the first v. 2.0 preview-release was made public. After that we were baking releases like hot cakes. Each month some cool new features were added to the system. The UX phases included discussions, drawing sketches and creating wireframes in Visio. And then the concepts would go directly into production.
We were one of the first in the world who implemented release planning with drag-and-drop! As you can see, it hardly looked nice. But back in those days any ajax-functionality was perceived as a "wow, cool!"
In November 2006 the product was launched officially, and first sales came right after the launch. In December sales tripled. In January they doubled that of December. It was clear that the new product was off to a great start. We got drunk together on the occasion.
Even way back then the system included custom processes for projects; each project could be run with a unique process. That's what made TargetProcess the most customizable tool on the market.
There were 4 of us working in the company.
As another year began, we kept adding new functionality. Andrey joined us and started to promote the product in the USA. TargetProcess made its conference debut in Orlando. Over time Andrey has greatly contributed to the success of the company.
The new features in TargetProcess were considered innovative back then. We were the first to implement Subversion integration, and we released our Help Desk Portal at the same time as V1 released theirs. Terms support soon appeared and a decent email integration was added as well.
In June 2007 we launched TargetProcess On-Demand priced at $25 per user per month. As you can see, the price of the license has not changed for 7 years.
The team started to grow. Apart from Andrey, 2 great developers, Andrew and Alex, joined our team. In addition, we had our very first QA engineer Tonya and Kate as a copywriter. All of these people are no longer with the company.
We took the adjoining room in the office to get more space. There were no free lunches back then, so people could only go to a grocery outlet or to a cafeteria. For holidays we brought food from McDonalds and everyone rejoiced at that.
This year was full of drive. We did 6 major releases.
We moved offices yet again, and took the 2nd floor in a different building. The QA grew larger and a few more developers joined the team, as well as Olga Kouzina whose primary responsibility was to take care of potential customers. She was our first account manager.
The site changed again. It looks good even now.
This year we were busy with integrations: Jira, Selenium, etc. and worked to improve the Getting Started experience for the new users. These activities took up most of our time, and the product development slowed down considerably as compared to the previous year.
We worked in iterations, planned releases and estimated user stories in points with planning poker. We really did it all! The process we had was actually a true Scrum with elements of XP.
The product won another Jolt Productivity Award. We had this image on our web-site for the new year:
By the year's end, the company had 16 people, 2 of which were in the United States.
There's no way we could do this without a redesign, so we started on one. The redesigned UI included very few functional changes. In the end, it mainly boiled down to having a new style. The plan included 3-levels for the top menu and touch-up of the style for the lists:
As you can see, the main focus was on the design itself, not on what's under the hood. It looks nice, but lacks functionality. This is called putting lipstick on a pig. We wouldn't release such a design now.
Fortunately, this didn't go any further than just being a concept. The Agile 2009 conference changed everything. It's there that I watched Jared Spool's keynote on UX. The subject was fairly new. This keynote turned all my ideas and beliefs on how to make software upside down. It can happen to anyone: you sit, listen and suddenly the abyss of your incompetence strikes open. There comes a clear realization of how many bottlenecks and problems have piled up in the product, how un-pretty and uncomfortable it has become. A year later the same keynote looked average to me. You never know where this impact will come from, the idea that sends your company into a different direction. I was even taking pictures of this presentation's slides, which I'd never done before.
Then, as I'd read several books and many articles, I prepared a presentation about UX for the entire company. It is still available online.
We had a booth at the Agile 2009 conference and competed with VersionOne and Rally.
Andrey making a demo of Targetprocess
As we got back home, we decided to hire a designer and get really serious about UX. Alex Tsayun, whom we all adore, became our very first UX designer.
We moved yet again to another office, to a different part of the city.
By the way, here's how the site looked at this time. Pretty bad for our current taste. Perhaps, even the previous version was better.
That year we were one of the first to implement Kanban support. It was powered by (or tied to) ExtJS and worked quite slowly on large amounts of data. The tool now was able to track Cycle Time and build a CFD diagram (which worked very slowly due to the wrong choice in the development approach). Users could also work with bugs and user stories on a Kanban board.
We actually switched from Scrum to Kanban at the same time as we implemented Kanban support in the tool. We wanted to release by features, but the iterations in Scrum hindered that. It turned out that Subversion worked really bad with branches, so we switched to Git. The switch was hard, and involved many forced commits. But in the end Git worked out just fine.
A rather large and pushy customer came into the picture, who wanted lots of new features their way, or the highway. We agreed to add them and later regretted this many times. A mistake like this doesn't happen anymore. If the tool doesn't fit a customer, we simply recommend not to buy it, rather than mess with adding a dozen features.
Pair programming was a must. We had special desks set up for pair programming. Developers switched pairs rather often. However, this practice didn't become organic with us, although we tried to stick with it for quite a long time.
The same year we decided to create a really new version of the tool, instead of applying a lipstick to the pig. We came up with the idea for many teams and many projects support.
The plan went as follows. First, we were supposed to implement support for many projects (in those days you could only work on a single project at a time) and then for many teams.
We even had a roadmap for this plan:
- January 2010 ‒ new navigation and multi-projects support
- June 2010 ‒ new views, new lists and multi-teams support
- December 2010 ‒ mashups, REST API, new email module, new Help Desk Portal (!)
We were going to call all these things TargetProcess v.3 (again! I'm not even kidding!). Looking at what actually happened, we released the new navigation in March 2010, multi-projects support in mid-summer 2010, and all the rest - much later (except the Help Desk portal, of course, which stays as it was even now).
This single year roadmap stretched out to over two years. In our defense, we had a distraction: the Teams Board, but more on that later.
Our QA team was remarkably strengthened as Nadia Bulynia and Olga Kastsiukevich arrived (Olga is better known by her married name, Ikhelis). Andrey Vaskovsky and Sergey Trukhtanov joined the development team.
The company didn't have much notable growth, only 5 new people joined, so there were 21 of us. That year we had the first person who decided to quit: it was Alex Radzivanovich, a great developer. He wanted to focus on a project of his own.
This was a breakthrough year in every sense of the word, and only now we've started reaping the benefits of what was initiated way back in 2010. But let's start from the beginning.
The year unfolded as usual. We continued with the UX, as we created personas and described use cases. Many people from the company were involved in defining our UX processes.
Top menu navigation was our first baby step towards designing the new UX. We came up with several concepts, created two prototypes, did some usability tests and opted for the solution which is still available in v.2.
We even tried paper prototypes.
The Views got redesigned this year, the ones that are still used now. This original concept is still available: we used it to collect feedback from users about the new views.
We started attending more conferences. The ACE! conference in Krakow, Poland was the first that we visited.
Nadia in Krakow.
In spring we moved again. We rented the whole floor in a larger office building, 3660 sq feet of space! It seemed that we would stay in this office for a very long time, and it seemed soo large! "Very long" ended up being 2 years.
The company started organizing fun events. Bowling, go-carting, skeet shooting. These days, it has all faded away somehow.
It was that fall that the fun started: we had our very first company founders' retreat. We continue to do those retreats every year since then, and what we decide and discuss there affects the company's future dramatically.
At this first retreat we decided that we didn't want to make just another piece of software, but a product that's the best in the world of its kind. For that to happen, we needed to create the best working environment and put together a team of the best people. We identified 3 core values: passion, humility and trust. These are the fundamental things that without greatness will not happen. We wanted to have a top-notch IT company with highly talented people in Minsk.
The new concept was presented to the team.
Looking back, I can say that we made this vision a reality. We are a great team. Not that everything goes 100% OK, but we stick to our values. We have our core beliefs, our unique organizational culture and unique future.
Someone had to be fired, though, and 4 people left the company.
We decided to upgrade everything in the office, including desks, chairs and workstations. The coffee-machine was replaced as well and we started to provide snacks.
Learning became a priority, and we initiated internal conferences with presentations and workshops.
Each employee was entitled to attend one good conference on software development or UX per year, paid for by the company. About a dozen people went to QCon in London, some went to OOP in Germany. We also attended UX conferences in London and in Lisbon.
We were running the so-called "Friday Shows" where we watched some interesting videos and had discussions, some of which were very interesting. It was actually a good learning experience. Possibly, we could resume these shows.
We changed our approach to hiring. The selection process was a grind, and most of the new hires were sifted through it. Alex Fomin was the first in a row: he had to come up with an architectural concept for plugins in one hour. Alla Pogotskaya had to do pair programming for half a day as a part of her hiring process (yes, we even had done this...)
Product-wise, in the first half of the year, we finished and released multi-teams support. The other half was devoted to two new things: plugins and the Teams Board. Essentially, the Teams Board was a prototype of our cool Board views in Targetprocess 3. At that time we formed 2 or 3 UX teams, and each of them were supposed to come up with their own UI concept. Oleg's team ended up presenting the best concept.
This laid the essential groundwork for the Board concept, but it wasn't yet complete and you could not customize anything.
Too many annoying bugs piled up, but we only allocated certain days to bug fixes. The entire team - including myself - was only supposed to fix bugs on these days. We called them "clean up days". In one such day we would normally fix 20-30 bugs. We never managed to finish any of these days with a new build, however, although we tried; but these days worked quite well.
Our development process was improving and our functional tests started making sense.
We did a few updates to our web-site, adding some new sections which made us look like a company who means business.
Also, through the efforts of Anton Marchenko, we formed a department for customer support, which we referred to as the Customer Care Team. Among our competitors, we were the first to provide live chat support. Maintaining it, however, has been hard work with having to decode and transmit customer problems to the development team.
That New Year, we had a lot of fun by renting a mansion in the country. We wasted no time on boredom playing paintball, lounging in the sauna, shooting fireworks and doing other more hilarious stuff.
The Blue team is ready for battle
The company didn't really grow in numbers during 2010, we were just 22 people. But, we had laid the foundation for a breakthrough that was bound to happen soon.
Acting on the momentum of the previous year, we got into a regular working rhythm. We created an infographic for our first ever hiring campaign. The infographic was acclaimed by everyone, and even Andrew Schiotkin sent over his CV and was hired.
We put a visual roadmap up on the wall in the kitchen. This roadmap clearly showed that we had released too few features last year. This made us sad. :'(
Later on we added the timeline of f**k ups to the roadmap, and soon it had quite a few cards. Visualizing f**k ups was a great idea.
Later that year, we finished and released the Teams Board. The feedback was positive, people liked it.
- One of the best features are the user rows. This is very helpful at dispatching work.
- Very intuitive and interactive
- Far better than the Kanban-Board
After the Teams Board's release, we focused on Views. The meetings were intense.
Why did we start work on the Views instead of focusing on the real UI for v.3? First of all, we wanted to collect more feedback on the Teams Board and slow down a bit. We did get a lot of very useful feedback, but the slowdown lasted for too long. It took us a year to redo the backend in Views. We ran into many bummers during this period, but in time this experience helped us make the new boards even better.
By then our UX design process became more mature. We tried Design Studio a couple times; it's a quite interesting methodology to generate ideas and boil them down to solutions.
Design Studio. Alex absorbed in some sketches
We tried to gather feedback from the team using a "design ideas" pinboard, but that practice didn't last long.
The visual builds board appeared to be more of a help when we put it on a large screen. We could see the red broken builds right away.
In the summer we went on a picnic which included horseback riding. Since then, we retreat into nature every summer and camp out overnight.
Besides, we finally arrived to a clear and tangible vision for Targetprocess v.3, and began putting this vision into a prototype and concept document. The main idea of v.3 is this: deliver multiple 2D views for any dataset, visualizing information any way you want. Need a board this time? There you go. Or a list? Sure thing. A timeline? Of course, we have it. You only have to pick a dataset and look at it from any perspective.
This concept was based on our ideas from 2009 about multi-teams support and multi-dimensional zoom board (which was tested as Teams Board), as well as our new found knowledge about visualization and DSL languages.
I showed this prototype to several customers. Their feedback was good, and we decided to implement this concept in the product.
The site didn't change a lot, it just felt lighter now
11 more people joined, and there were now 35 of us.
Developers were pre-occupied with slicing.
We were hoping to have the first public release by summer in an effort to make it on time for the Agile 2012 conference. It turned out we would make it on time for the conference... in 2014.
We unveiled an update to our web-site in February. It took us almost a year and the site looked a lot better compared to its previous versions. We tried various concepts, sketched a lot, prototyped, and then started anew. The new site was completed at the slow pace of one page per month.
We had our 3rd internal conference.
We tried an Xbox Kinect for entertainment in the office. In the beginning everyone wanted to play it, but in a month or so the love for it faded away.
In spring dev.by ran a contest to find, as seen by the employees, who was the best IT company to work for. We took the 1st place award in the 11-50 employees category. The summary report also showed that we ranked highest among all participating companies, regardless of categories. That was flattering.
On April 1 we finally shared with the whole world how we work.
Then, everyone had to be reminded that April 1 is April Fool's Day and that our work environment looks a bit different.
In May an article, which I consider my personal best, was published: Our Development Process: 50 Months of Evolution.
In June 2012, we did the first "private" release and used the new v.3 UI within our company. It felt very good, as the board looked so fresh and cool. It seemed that a public release would be coming very soon.
The office was unable to accommodate all the new people who were coming in. We rented a room on another floor in the same building, but that was not enough, and soon they would have no more spare rooms for rent. We needed another office, and we found one later that fall. A floor in Sky Towers. All the other options were either too costly or unsuitable for us.
Before we moved in: a deserted 2nd floor with dirty windows.
We landed our largest customer this year: CAT (the deal included 800 licenses and some custom development). It's an interesting story, how we won them. They didn't like TargetProcess 2 all that much and we were about to part our ways when Andrey wanted me to do a demo of Targetprocess 3 for them. The moment they saw the estimation board (created by Alex Fomin specifically for that demo) they grasped the whole concept and loved it. We only had a beta version at that time and so, in truth, they bought a vision rather than a finished product.
We formed a dedicated team which did - and still does - lots of nice product customizations for CAT.
Oleg created a tool to collect Targetprocess usage stats, which helps us in decision-making and will soon help even more. With these stats we are able to better understand how people use the product, what matters to them, and what ‒ doesn't.
The girls shot a cool video for New Year.
There were 48 of us by the end of 2012.
This year started with some crucial changes. We introduced decision-making boards and Orange Fridays, broke away from the back-end/front-end paradigm and instead formed Feature Teams.
We have a product board, development board and marketing board. The boards are the decision-making authorities in our company.
The product board loves good UX.
Previously, employees were allowed to spend up to 5 hours on self-education and learning each week. People were free to use up this time when they wanted, but this caused inconvenience because someone would want to learn and someone else needed their help. That's why these 5 hours of learning were restricted to Fridays.
Then it seemed that it makes no sense to leave 3 hours for work on Friday, so we allocated the whole day for learning and personal projects. That's how Orange Fridays were born.
Meanwhile, we were getting ready to move. Here's what the plan for the new office looked like:
The Green Tower plan (ideally)
We tried to do everything right and put lots of money into the remodeling, but the building contractors (as usual) blew all deadlines... and we had to move in to this:
This under-finished office space was horrible. After the glass doors had been washed, we found ourselves bumping into them. The huge half-empty rooms smelled like freshly laid carpeting. There were no whiteboards on the walls. We used rags and cartons instead of window blinds.
Our new office is 3 times larger than our last one. Again, we had this feeling that it wouldn't be too soon until it's filled. A bit more than a year has passed, and there's almost no room left...
In spring there was a crisis on Cyprus, which deprived the company of most of its assets. We had to switch to "saving" mode as a result. We terminated conference trips, Orange Fridays, English classes, cut down on office expenses, etc. It was clear that we needed to brace ourselves and release v.3 ASAP to mitigate the damage. Surprisingly, there were no issues with paychecks, but the company was subject to a grave threat at that moment.
The separation into Feature Teams wasn't smooth. One Feature Team was doing OK, while it didn't work out well with the other one and in a couple months the two teams were re-mixed. Now we have three Feature Teams, and soon there will be a fourth one.
In summer we also introduced an Emergency Team and the team members were drafted on a rotating basis. The setup lasted for half a year, when we opted for a permanent Emergency Team. Frequent switches in the work context affected the performance of product teams badly. This rotation would have worked all right if we had at least 6 teams. Each team would rotate once every 3 months, which is usually enough time to release a middle-sized feature.
We had a great time camping that summer. Jet skis, fun on a ropes course, campfires, a sauna, swimming in the lake and singing along with guitar.
Developers started to use Git Flow. It stuck.
In October we resumed Feature Demos where the teams show their progress over the previous 3 weeks. Not all goes smoothly with the demos, but without them things are even worse.
We agreed on how we would position and promote the product. Our goal is to create a market niche for Visual Management systems. By and large, the company is currently putting all effort into that. Timelines, Boards & Lists – this is only a start. Only when we add custom graphical reports and dashboards into the tool will we be able to call it a major breakthrough.
Little by little, things got back to normal after the crisis and we resumed all the previously suspended benefits except trips to conferences. I hope we will soon be able to resume this benefit as well.
We released the Targetprocess iOS app. With 600 user per month, it has about 5% of all the Targetprocess on-demand users.
In September Olga Ikhelis and Egor Sviridenko organized the first Targetprocess meetup in London. The meetup attracted several dozens of our clients. Now, such gatherings have become commonplace.
The London meetup. People discuss Targetprocess
New Year greetings were humble this year. Our designers focused on a conference booth layout and on redesigning the web-site.
There were 65 of us at the end of 2013.
We formed yet another board: the Office Board. This board works to improve the office environment and oversees things related to lunches, snacks, perks, etc. The boards are working quite well, but there's still space for improvement.
To me, the February 23 and March 8 holidays this year were the most fun that we've ever had.
A word association game
The conference in Moscow went well, too. We handed out lots of T-shirts, met many people and came home with fresh ideas.
We won the Best IT Companies to Work For contest again. This time it was a "heavier" category, 50-150 people.
For the first time ever we had a booth at a Belarusian conference, IT Spring. Unexpectedly, the conference was a great gathering this year.
We are finally releasing Targetprocess 3 and starting a massive promotion. We spent almost 2.5 years crafting v.3. Working for such a long time without any real leap forward is very hard. Almost everything is ready, everyone is waiting.
Currently 80 people work in the company.
Targetprocess will turn 10 years
old young in November...