Showing posts with label Cogini. Show all posts
Showing posts with label Cogini. Show all posts

Thursday, August 29, 2013

Cogini Skill Sets - Perceive and Control your own career development.


Ever since the early day, our vision about the company has been clear, to build a fun place to work. Moving towards that direction, countless of remarkable improvements have been made, with joined effort from everyone in the company, from the management board to new interns. The two most significant milestones in our journey of building a fun place to work are our recruitment process and our current office. Believing that hiring is the most important decision a manager can make, we have always been religious about recruitment. For many times, we have said "no" to talented people who could bring immediate effect to the work place because we didn't think it was a good culture fit and would eventually be a long-term harm. The new office on District 7 and all the nice benefits are high fixed costs for us that to a certain extend makes revenue flow management more troublesome. But that is a trade off we are willing to make as we can see how much it has been improving the professional and personal lives of us. Today, I would like to introduce the next big thing at Cogini, which, if done right, would bring employee development to the next level and provide a substantial long-term competitive advantage over everyone else. Cogini Skill Sets - Perceive and Control your own career development.

For a long time, our weakness in seniority has made employee development resort to self-study. And that isn't a smooth trip. The number of new technologies is blooming. Practical application of certain skills or technologies can be vague without industry insight. Without a roadmap, self development can be ineffective at best and crawling in the dark at worst. The idea of Cogini Skill Sets (CSS) is to provide a skill sets system that covers multiple roles (e.g developer, designer, system admin, etc) across multiple levels from interns, people in probation to people who have spent their entire career here. CSS serves as a checklist for employees to decide which skill sets to attain and control their career development. The progress one makes in CSS also contributes to his/her performance reviews (which are done once a year or twice). This is a exciting move that we expect to bring perceived control and progress to everyone's career.

Looking at the bigger picture, CSS is the first stepping stone in building a platform necessary for Cogini to be a long-term enduring and growing business. With the CSS roadmap laid out, we can focus on building a pipeline of people in every department with varying levels of skills and experience, ranging from entry level all the way up to senior and leadership positions. The vision is that for almost all of our hires from entry level, the company provides all the training and mentorship necessary so that any employee has the opportunity to become a senior leader within 5 years. 

I would like to make the roadmap a joined effort of everyone. It is acknowledged that it is hard to know what we need to know, to learn and to research to make us more valuable to the company. But that is where our diversity kicks in. There will be certain things about which you have a better idea than the person sitting next to you and the other way around. The Vietnam branch of Cogini has been in operation in two years and a half, which means at the minimum we have the experience to lay out a 2-year-long roadmap for a newbie. The number will be even more significant if everyone contributes his/her experience and ideas. There is always something we can learn from each other, so CSS will be beneficial to not only newbies but also experienced employees.

In the following week, we are collecting people's ideas about virtually everything you think an employee would need to attain to become successful at Cogini. Each idea should be written in a condensed noun phrase on one of the stickies you can find everywhere in the office and submit to the "CSS Box" on each floor. For those who cannot make it to the office, feel free to email me your ideas.

Ask yourself:
  • How do you grow personally? How do you grow professionally? What is your vision for where you want to go?
  • What skills that make you a better person today than you were yesterday?
  • What skills you have learned / want to acquire to differentiate yourself from everyone else?
  • What skills you have learned / want to acquire that would potentially to make work more fun?
  • What skills that you have pushed yourself out of your comfort zone to attain?
  • What skills you think would get the company as a whole grow?
  • How can you make people enjoy working with you?
  • How can you do what you are doing more efficiently? How can your team become more efficient? How can the company as a whole become more efficient?
  • What make you passionate about the company, about your work?
  • And more...
I am very excited about this new change we are introducing. We have always been keeping a flat organization in mind so that everyone's ideas are treated equally importantly. Now we are making it to the next level where together we are shaping up the type of employees we are raising, now and coming generations. In many ways, you are having the chance to leave your personal trait on the direction Cogini are walking in the next few years.



Tuesday, September 4, 2012

Remove bureaucracy, Embrace remote working

We don't want to be the norm

We have been embracing a dynamic working environment ever since there was only 4 of us, working in a small apartment. We refer to everything that prevents our developers from being productive and living the life they want as bureaucracy. It is dogmatic, I know, but the attitude keeps us alerted, always looking for ways to improve the environment and eliminate boredom.

The latest issue we try to tackle transparently and systematically is a remote working policy for staff. It is not like remote working is new at Cogini or in Vietnam. . Young and reckless, we believed in a culture step-change, affecting staff and businesses, as work increasingly became something we do, rather than a place that we go. The benefits from this decision are various, ranging from improved staff engagement, talent attraction, boosted productivity and a better work/life balances for employees.

The challenge we face after more than a year applying remote working into professional workplace is the growing mismatch in expectation and communication between board of management and employees. Working under pressure, there were urges to abandon remote working, bring things to a tighter control. But that is just a sight a weak management and we know we can be better than that. What we need, in this particular situation, wasn't tighter management and more processes. We need a clear understanding between staff and management on what, why and how of remote working. We made this guideline to express the concern we are having, practices we are doing and nonetheless, set the ground for further improvement.




The Guideline


Is remote working suitable for you?

Newbie developers, or competent developers who are phoning it in, are absolutely not going to have the moxie necessary to get things done remotely. It isn't all about technical skills though. Those who are sanctioned to work remotely by management are the employees with an appropriate skill set such as punctuality and good time management and organizational skills. Under any circumstances, you will be asked to to move back to the office if your colleagues or direct manager feel like the productivity and project progress is compromised because of your absence.


Stay connected, Stay motivated

Remote workers often suffer feelings of isolation. Some feel that they miss out on informal organizational discussion and have a poorer understanding of the office and project context. Try to bring yourself to on-site events whenever possible. If you are within the city, come to the office at least once a week. Try to combine it with some formal activities such as Project Review Meetings, TechTalks or Retrospective Meetings to make your time and communication worthy.

Because remote workers are not actually physically in the workplace, and therefore 'seen to be at work', there is a crucial need to make yourself accessible during your working hours and let people know what you are up to. Define a time frame as your 'office hours' and commit to be accessible during that. Update your status whether it is a general one or project specific for every day that you work remotely.

Despite that, remote workers do have to be able to motivate themselves to work independently and with less supervision. If you find this difficult and miss the direction you have previously received from face-to-face contact, remove working is going to be rough.


Don't write angry

When you work in the same room as people, misunderstandings can be quickly cleared up. In contrast, remote workers tend to spend most of their time communicating via the written word that can be easily misinterpreted from afar. If you are worked up about something - angry, confused, frustrated, etc - try not to vent your frustration in writing. Instead take a moment to voice or video chat with your team to discuss the situation. Make sure your work place is fully equipped and quiet enough for Skype calls.


Build your own office

Whether you are working from home or heading to your favorite coffee shop, you need to put some real thought into your work environment. Of course remote working offers better control over the working environment and you shouldn't lose a chance on getting nice furniture, natural light and bunch of other gadgets to make the station comfortable and convenient. But there are some benefits of working in an office that people often fail to notice and therefore can't reproduce for their remote working station.
  • Right working environment to eliminate sources of distraction (TV, Game consoles, Kitchen, etc..)
  • The office routine separates your work life from your personal life. 
When you fail to give your body proper breaks, it gets tired pretty quick and drags your productivity down. Many fuse their personal time with working time. Soon they find themselves exhausted and productivity is dropped. And even though they are in the illusion that they are working for longer hours, they in fact just get tired sooner. Well defined working schedule and working station give you physical and mental breaks, which is essential for the next productive working day.

Sunday, July 1, 2012

The journey to an ideal billing option

General speaking, there are two types of billing we are using for our contract work: fixed price and Time and Materials (T&M). Fixed price contract is just like it sounds. Meanwhile a T&M project is similar to being an hourly employee, payment is made based on a set rate for the actual hours that you worked. Each of which has its own pros and cons and articles about that can be found at mostly every corner of the internet, as it turns out that this is a norm in consulting work in other industries too. What got my attention recently is how my ideal billing type has been changing through out the years.



When I was younger, having my first full-time internship, I was always fond of fixed-price projects. Why? It had always given me much less blocker doing thing that way. A project back then wasn't much different from a school assignment. The project requirements were given to me sometimes in a nicely formatted spec, sometimes a Redmine ticket or sometimes just a mockup. The only thing I needed to care was to finish the requirements in time. No one told me whether the project went through four rounds of development and lost us a bunch of money nor did I care about. I got my work done, and that was it. The simplicity made me happy.

Given that I am an untidy person, T&M projects, on the other hand, weren't that fun. I had to keep track of my time, and as I jumped between tasks and my Chinese classes, the little chore turned into a burden. The question "did I turn on/off my timer" kept running through my mind just about when I need some concentration. And even when I managed to get my task done, I needed to mind the time I spent on the task as well. Usually, I missed the estimate made by my PM. Even though this was expected (yo, I was an intern) and we "deal" with it by billing 50-75% of my time only, it still somehow left me a guilty feeling. Needless to say, in the early years of my career, fixed bid was the preferred option.

Further down the road, I gradually took more managerial work and the amount hasn't stopped increasing so far. The fixed bid that I used to love started to haunt me back. I soon learned that fixed bid contract is all about fortune telling and my team efficiency.

In order to make a reliable fixed bid without massively increasing the estimate, I have started to develop weird hypothesis about what would happen during the development process and truly wish for the ability to tell future like Nicolas Cage in Next. Ok, I accelerated thing a bit here. In practice, I make THREE versions of quote, each for ideal, normal and worst case scenarios. This all sounded insane at the first time I was asked to perform by my boss. Soon, though, I realize that engineers are optimistic and idealize most of the misty parts during estimating (hence worst case scenarios quote for the rescue). Yet, there are parts that are hard to predict anyhow, like the learning curve of a newbie, time to set up dev and prod environments for non-standard products, and deployment time. No matter how you look at it, it is definitely more work, boring work : (

And with all of that burden, I am not even making the estimate for myself, I am making it for my team. Which requires thorough understanding about the team and trust that they will do it in the right manner. If we are efficient at doing the work, we make money, or else an even or a lost. Efficiency of a person inevitably relies on one's emotion, the amount of work and morale. That complicated nature making the effort to jell a team just as challenging, if not more, as telling the future.


T&M billing option now proves to be useful for me, as an PM. I can really focus on getting the job done, rest assure that I will be paid for what I have done. Try stepping into customer's shoes, I also find T&M is more valuable for them, given that the consultant they are working with is ethical and trust-worthy. Terralien illustrate the point beautifully using the house building metaphor.
a fixed price agreement will almost always cost more and give you less than you need.
It has been pretty fun looking at the past and noting it down here. I am not sure how would my point of view change in the next few years but unarguably, this is one of the challenges whose answers define the shape of the company and set it apart from other norms. So I am pretty eagerly looking for next challenges here : )

Friday, June 22, 2012

Get started in Cogini Team


TEAMWORK GROUND RULES
There are three things that are important in general:

Ask: If a task is not clear, or more information is needed, please ask as soon
as possible. Asking is always ok. Doing the wrong thing (or doing nothing)
because you didn't ask is not ok.

Debrief: It's not "done" until you reported it done. This is often just a
one-sentence email to me or to the client, sometimes a "100%" mark in the task
list, or a ticket closed. It is done, completed or fixed only when whoever
needed it done knows about it.

Warn: If a deadline you know is important will likely be missed, warn me soon,
as the situation is evolving, and then we can usually figure something out. If
I have to learn at the moment of the deadline that it was missed, that's not
ok. If you are working on multiple projects with multiple project managers, or
if you're a freelancer, also warn me if your workload is above what you can
actually do, instead of not doing certain tasks.

Last but not least PRODUCTION SYSTEMS

When systems are in production, you need to be careful about what you do. 

It's easy to get in a habit during development of making bugs and fixing them,
but in production they can have real impact. So we need to have a review
and testing process for all releases to production. Test everything, even
simple typo fixes, as they can sometimes make a page give a parse error.  

In general, any bugs having to do with money can cause serious problems. 
And simply having the production site down for a few hours can result in
thousands of dollars of lost revenue. 

Sunday, October 23, 2011

A Cogini's internal TechTalk on Today HTML5

I made this slide and presented it to my colleagues a month ago. I even planned to publish the slide right after the presentation BUT, back then the layout of blogger made viewing deck.js presentation a pain in a**.

The problem hasn't vanished yet but with the current theme, it is less painful to view the slide, so...

The target of the speech is to identify HTML5 elements and features that you can use today, on any browsers. The selected elements are ones that nice to have but either don't break the website functionality if the browser doesn't support them (link relations) or comes hand in hand with a reliable fallback option (video/audio tag).

And here comes the slide. You might enjoy it better if activate your browser's full-screen mode. And here is the link to the original slide.