Showing posts with label Experience. Show all posts
Showing posts with label Experience. Show all posts

Thursday, April 14, 2011

State of the AnotherSocialEconomy Initiative

When my partner Steven and I started our startup adventure a few years ago, our main goal was to demonstrate our ability to convert an idea into a live project. As we used our experience to build a viable product, we knew it would add value to our resume.

Over the months, the project evolved slowly:
  • The core idea is: help the consumers who look for a specific product to find the retailer who has it in stock, and help retailers to connect with consumers online and drive them in-store. Our moto: the missing link between shopping online and buying offline.
  • The proof-of-concept was made of screenshots, live Twitter accounts, and a piece of Python code connecting those accounts together. This material allowed us to be among the semi-finalist companies of TechCrunch50 in 2009!
  • The first implementation of the engine connected consumers and retailers, each of them interacting with the system with direct messages (DMs), sent  from their own Twitter account. At that time, the tool was named Twetailer.
  • Later, we figured out Twitter was too geeky and we added a connector to accept and generate e-mails. Since then, the engine has a XMPP (instant messaging) connector, another one for Facebook, and a plan for VOIP (with Twilio).
  • At one point, we were approached to start an experiment for golfers: usually avid golfers have to spend a lot of time on the phone to get three buddies to play with and to book a tee-time. In two months, we created ezToff.com, developed an embeddable widget to ease the creation of a tee-off request, and developed a Web console for the golf course staff. The experiment was shut down because of a lack of traction...
  • Recently, we started another experiment in the used car market, under the name AnotherSocialEconomy. Our market researches found that the average time to buy a used car is six weeks in Quebec. Typically, consumers start on the Web, grab listings, and call dealerships one after the other. In the Montreal area, there are 300,000 pre-owned cars bought per month: ⅓ from dealerships, ⅓ from wholesalers, and ⅓ from individuals. Dealerships control 45% of the market value.
  • So far, this experiment has been a partial success: we get demands from consumers and forward proposals from used car sales people. We helped our first customer finding a car in only two weeks! But, as the dealership staff is not used to new technologies (sic), we manage the service for them and it's very time consuming...
What's next?

We are very happy with consumers trusting us. We work hard to continue to improve their experience, on our landing pages and in our communication by e-mail. The priority is to have them qualifying more their demands upfront.

Our focus right now is more on the retailer-side, in order to have sales people in the dealerships interacting with the system by e-mail too. If around 80% of them agree to work with us to serve our users, we have to prepare the proposal details and to reach them out for approval. For the business to scale, they should prepare and post the proposals themselves.

For now, we need more data to determine trends. This is a prerequisite for used car dealers to adopt our methodology. It is also possible that will lead to another pivot.

Lessons learned?

The first one is an obvious one now: nobody can be as committed as the founders! Since I left the company Compuware to become a full time entrepreneur, Steven and I have met many people we expected to work/partner with: a technology company CEO, a former manufacture owner and now real estate agent, a UX designer, a few VCs, a marketer, two successful startup founders, etc. If we sometimes got excellent feedback, none joined us.

The second one is related to the product development: two techies are not enough to make a great product! They can talk about their product at length, but they don't know how to convince decision makers. They need the help of a marketing genius!

Another one is related to the importance of the contact network. If you don't know the right people, very few will listen to you. Having a large address book or friends with deep pockets definitively helps a lot.

And the last one: developing a tool for the general public is difficult! Following the Lean Startup process can really help. Check Ash Maurya's blog, for example.

Technologies learned?

I continue to find Google App Engine an awesome environment. The recent addition of the Channel API which allows the back-end logic to push asynchronous notifications into Web consoles really improves the user experience. On the maintenance side, I appreciate the Java Remote API which simplifies the development of maintenance and data extraction tasks.

Web console side, I've started upgrading the code to Dojo 1.6 and its new HTML5 compliant syntax. I don't use the AMD loader yet, but I'm waiting for the one coming with 1.7. I have recently started to use Selenium 2 for my smoke tests and I really like it!

Mobile side, I wish to have more spare time to update my Android application for ezToff and to benefit from the Android Cloud To Device Messaging (C2DM) API. But I'm also thinking of building application with the awesome dojox.mobile.

To develop our customer base in the used car experiment, we have created two AdWords campaigns: one for each language, both in the Montreal area. Using AdWords and optimizing the campaigns was very instructive. There are many concepts to master: long tail, auto bid, average CPC, conversion rate, landing page quality score, etc. I know understand why so many people choose to become an AdWords certified partner ;)

    Thursday, January 6, 2011

    Wrapping up 2010, preparing 2011

    2010 Summary

    2010 was an interesting year for me professionally. Inspired by similar lists online, I present what I did (or can remember at least):
    1. Left Compuware and joined my partner Steven at Milstein and Associates inc. end-of-January, to focus 150% of my time on AnotherSocialEconomy (formely known as Twetailer).
    2. Adapted the Amazon Flexible Payment Service (FPS) library to the App Engine environment—freely available on github.
    3. Refactored the communication layer to be able to send details e-mails to customers, in addition to short ones sent over Twitter and Instant Messaging services.
    4. Built the first Web consoles for Golf players and Golf courses staff, based on Dojo and using the freshly delivered REST API—check ezToff.com.
    5. Built the first Android application for Golf players using their GPS & Address book to ease the tee-off booking process with AnotherSocialEconomy—freely available on github.
    6. Helped preparing pitches to Golf Canada representatives and to Golf staff members and owners.
    7. Developed the AnotherSocialEconomy widget, ready to be embedded in participant websites and loading the AnotherSocialEconomy wizard on demand
    8. Reviewed the book Google App Engine Java and GWT Application Development.
    9. Continued to develop my open-sourced library offering tools for globalizable generic resource bundles (TMX)—on github too.
    10. Developed a prototype of a Facebook application.
    11. Augmented the AnotherSocialEconomy engine to support the used car dealers: buyers don't buy immediately, but collect car information and offers for a while before committing with one dealer => the engine work flow has been adapted to support this slower path of interaction.
    12. Attended presentations to few car dealerlship owners.
    13. Attended meetings with various mentors and potential investors.
    14. Attended meetings of Montreal NewTech, Android Montreal, Augmented Reality Montreal communities

    I’m pretty happy with what I have done so far and am looking forward to doing even more.

    New technologies

    It was also fun to play around some hot new technologies:
    • Ubuntu 10.04 and 10.10
    • Android 2.2 and push mechanism on my HTC Desire
    • App Engine 1.4.0 and channel api
    • Node.js and WebSockets

    2011 Goals and Plans

    2011 is going to be critical for AnotherSocialEconomy. The application runs and passed usability tests. The focus point is now on the business development!
    1. Concentrate on one domain (used car market) and get a significant traffic in the Montreal area.
    2. Gather customer feedback (consumer looking for second hand cars and used car dealers), tune the system, and increase traffic. Repeat until 100% satisfaction ;)
    3. Once the system is proven by the traffic and testimonies, involve investors and/or partners to 1) expand the business to other areas or 2) to target another domain or 3) both expand geographically and vertically.
    4. Develop data mining tools for retailers.
    5. Develop domain oriented interfaces for consumers (Web/HTML5 for tablets and PC, native apps for iPhone, Android, BlackBerry).
    6. Add more communication channels (like voice messages with Twilio, for example).
    7. Offer my services as Software Architect & Developer consultant on designing & developing highly scalable and highly available applications on Google App Engine and mobile applications on Android.
    A+, Dom

    Friday, December 3, 2010

    Reviewed book 'Google App Engine Java and GWT Application Development' is out!

    I know that's a pity not to post more regularly! It's just I'm too busy with the developments for AnotherSocialEconomy.com ;)

    Here is a little news for Google App Engine developers:
    Over the summer, I've been asked to review the draft of the book Google App Engine Java and GWT Application Development. Even with my experience, I learn few techniques, like with the object relationships (chapter 5). A very good book for beginners/intermediates, and still an interesting book for experts.


    Enjoy!
    A+, Dom

    Note: I've no incentive to sell the book, just the pleasure to share a good reference ;)

    Monday, September 20, 2010

    Securing accounts on the Web

    Situation

    Few days ago, my partner Steven got his Google account compromised for a short period of time:
    • Tweet #1 at 8:52 PM on Sept. 9: Just received 2 calls from friends wondering if I'm being held at a London hotel. FYI, I'm not.
    • Tweet #2 at 12:23 AM on Sept. 10: Re: Being held in London. My Google account password was changed by an IP address in Nigeria. I've got it back now but with no Contacts.
    • Tweet #3: at 3:04 PM on Sept. 10: Re Stuck in London: I thought I had everything under control last night but needed http://bit.ly/czgYdg Google Security Breach help to fix.
    The thieves used his account to send a scam to few of his friends asking for money because he was supposedly blocked in London without resources.

    If Steven's password was not very strong, there's no chance it has been discovered after only few attempts. At no time, Google reported that attempts to log into his account were conducted from computers with IP addresses in Liberia! Steven saw the first warning only when he recovered the access!

    Encountered risk

    The goal of these thieves was limited to getting money as soon as possible. So they reached out few of Steven's contacts, ones he contacts only occasionally, and they asked for a money to be transferred by Western Union. As they kept the control of his account, they would have been able to get the transaction MTCN (money transfer control number) via his inbox. Western Union maintains a page listing the Common Scams.

    Others could have decided to change his password, to just spy his incoming message stream (these ones enabled the POP3 and IMAP accesses), to ask for password reset when Steven is not online, and then to steal his identity in many online services.

    Because Steven reacted promptly and because his contacts detected the scam, the thieves did not get any benefit from this operation. They are probably trying to get someone else now, maybe someone from his contact list.

    How to reduce the exposure

    The first protection consists in defining strong passwords. A lot of services offer information about how to produce strong passwords. I would recommend this Microsoft site Strong Passwords | Microsoft Security—I'm confident that they don't provide the online password checker to enhance a grey dictionary ;)

    The second protection would be to use a unique and strong password per account. This is probably the most difficult part! I may use probably 20 to 30 online services, some I use regularly, others I use very rarely. There's no way I can remember so many strong passwords...

    My solution: Keepass + DropBox
    • Keepass is an open source password manager. The tool has been ported on many platforms: Windows, Mac, Linux, iPhone, Android, etc.—Full list on the download page.
    • DropBox (link with my referral id ;) is an online file sharing system that, thanks to a program installed on each computer/mobile in your network, maintains in sync the corresponding set of files. DropBox is a nice companion to Keepass as it duplicates your password database transparently, reducing the risk to loose the passwords if the original computer is lost.

    The combination of the password generator and Keepass secure edit controls makes the tool especially useful:
    • It's easy to generate a strong passwords (remember: 16 characters or plus ;)
    • You don't have to remember them as a simple Ctrl+C / Ctrl+V allows to copy securely them in your browser! (the computer clipboard is automatically flushed after few seconds.)
    In final, I just have one very strong password (30+ characters) to remember and to change periodically.

    Known limitations

    Some sites ask users to give a secret answer for a series of predefined questions. If you look at the Apple page below, you'll see that some questions might weaken users more than offering a protection... These days, it's pretty simple to find the responses online!

    List of predefined security questions on Apple.com website

    Many sites only accepts alphanumerical characters only or don't accept passwords over 20 characters. Oddly enough, most of the bank websites I use prevent too long and too complex passwords! I guess they have other tools to detect intrusions...

    List of predefined security questions on Apple.com website

    Last minute update

    Today, Google announced on its Online Security blog that they will offer a Two-Step Authentication mechanism to log into Google services. This One-Time Password authentication is simpler than distributing a one-time password generator, as Amazon does for example, while providing a still strong security enhancement.

    I hope it helps.
    A+, Dom

    Monday, September 6, 2010

    Update business-side

    It's been a long time since my last post. The summer went by so quickly. With my partner Steven Milstein, we have focused on building a generic tool for golfers and golf courses. This post summarizes the latest developments.

    The product name

    The product name Twetailer is now AnotherSocialEconomy.com. Twetailer was chosen when Twitter started to become mainstream and was made of a combination of Twitter and Retailer. The project Dretailer (more in a future post) was name from Android and Retailer, and we thought about having a variation per connector type.

    AnotherSocialEconomy.com is better because it really illustrates that our offer is about a business platform in a global economy, with social networks involved, in a new way of connecting people—and it is not tinted by any service du jour. More information on Steven's blog post The Twouble with Twetailer.

    ezToff.com: a dedicated implementation

    AnotherSocialEconomy.com provides a generic multi-channel communication engine, conveying messages among consumers and retailers according to the given location and some search criteria. Whenever we explained what's the product is about, potential consumers understood but were blocked when it was time to formulate one of their needs... We knew then we needed to offer a very simple interface where users can post demands without thinking twice about it!

    At one point, we met Marc Bienstock who offered to help us building such an interface for golfers! According to Marc:
    • When a golfer has a chance to play (because his wife gave him the permission ;), he usually calls his buddies to find three of them who are free too.
    • Then he has to call a golf courses to book a round at the agreed on time, maybe with one or many pull carts, one or two golf carts, etc.
    • If the booking goes well, he calls his buddies to give them the golf course coordinates.
    • If it does not work, he calls another club or calls his buddies with the time of the available rounds.
    • Way too many phone calls to be able to spend a minimum of $200 for 4 players!
    • On the golf course-side, they have to deal with so many phone calls; some of them have a system queuing calls up to 50!
    • Average time spent on the phone per caller is too long, and many are useless because they cannot screen them.
    • When a round stays free, it's an average of $200 lost.
    So end-of-July, we launched ezToff.com which allows:
    1. One golfer can submit a request for a tee-off from one central place and it will be broadcasted to all participating golf courses around the given location. The golfer can specify the e-mail addresses of his buddies so they'll be cc'ed for all exchanged messages.
    2. Golf courses are provided a Web console which displays all requests posted in their area. According to their schedule, they can propose rounds—the price per round and the total cost should be documented. Golf courses don't have to watch the console indefinitely as ezToff.com can notify them by e-mail, SMS or tweet.
    3. Proposals are sent back to request initiator by e-mail (his buddies receive a copy if he gave their e-mail addresses). At this step, the golfer can wait for more proposals to come. If he wants to book it, a simple link in the e-mail will generate a response to be sent by e-mail to ezToff.com.
    With ezToff.com, golfers can get tee-off proposals with just few clicks. Golf courses get all demands electronically and can focus on the ones they can propose a round to (others are simply declined). Buddies of the golfers are notified at each step of the process automatically. No more infinite phone calls ;)

    We interviewed many golfers and they confirmed the golfer's pain. With some visits to golf courses, we've confirmed the courses' pain too. The difficulty we have is that we're not sales people and it's hard to close a deal with golf courses... Knowing that the season is almost finished here, that our business model is probably too expensive for the golf courses, that we need good marketing materials, we're going to tune the offer and be ready for the 2011 season.

    The AnotherSocialEconomy.com reseller and influencer programs

    The ezToff.com project has been beneficial for us on many points:
    • With the widget, we have another way to reach consumers: influencers (bloggers, Facebook groups, associations' site, for example) can embed it into their webpages.
    • If dedicated Web consoles are available to golfers and golf courses, all operations can be done with e-mails, which is the most pervasive communication tool.
    • The original messages produced by the engine were short to accommodate the Twitter limitation of 140 characters per message. These ones were cryptic to too many people. The variation of these messages for e-mail are now much friendlier and contains links ready to forward the readers' response.
    • We'll simplify the pricing model thanks to the received feedback.
    But the most significant development is the offer of the influencer program:
    • Each influencer will receive 25% of the revenues generated by consumers confirming demands posted with their copies of the widget.
    • An influencer can propose one or many widgets anywhere on the Web he reaches his/her community.
    • We'll work with influencers to customize the widgets for his/her community.
    In parallel, we developed the reseller program to share 25% of the revenues generated by retailers proposing goods or services with AnotherSocialEconomy.com.

    It's possible that some well organized enterprises will be their own reseller (cut of 25%) and will drive requests with their copies of the widget (another cut of 25%) but that's fine. We'll make some money if they make some, and they'll have a good discount if they help driving more traffic (which means more business to them).

    Next steps

    On business side, Steven and I are looking for resellers that will help to bring ezToff.com to the next level. We are also trying to develop another domain specific implementation, another skin on the top of the AnotherSocialEconomy.com engine.

    On the technical side, if everything works perfectly for the ezToff.com users, I need to document the widget usage and the REST API used by the Web consoles. I need also to enable the Facebook connector for influencers to communicate on this platform as they can do on Twitter. There's also the Android application (project dretailer mentioned above) to update to benefit from the Android Cloud to Device Messaging (c2dm) mechanism and then to push notifications asynchronously. Still a lot to do but no road block ;)

    A+, Dom

    Friday, May 28, 2010

    What motivates us?

    One year and half ago, I wrote the blog post Career Advice '08. The key idea was about encouraging people to develop their own expertise to be successful in their career. Don't wait for your management to give you something exciting, do it yourself!

    Two weeks ago, I wrote another blog post Work around the general laziness. In some ways, I reported on my disappointment of not seeing enough autonomous experts, and that entrepreneurs have to compose with variously skilled teams.

    I finished my second expose by mentioning the Twetailer's work-for-attribution offer. I explained that many people liked the concept and that few of them have committed to deliver something with their own schedule. Each one at its own pace builds an extended skill set.

    What are the commonalities between the contributors?
    • They have a regular job so the money is not an issue.
    • They are performers and have a high level of satisfaction.
    I was such a contributor when I started working with Steven, before jumping on the entrepreneur-side to help developing the business from the inside.

    I had not really identified the sources of my motivation until I saw Dan Pink's illustration of "What motivates us", for a talk given by the Royal Society for the encouragement of Arts, Manufactures and Commerce (theRSA.org).
    The three factors that lead to performance and personal satisfaction:
    • Autonomy
    • Mastery
    • Purpose.





    I strongly encourage you to look at that video, part for the fun of viewing Dan Pink in action, part for the delivered message. I encourage you also to share your experience as a comment below ;)

    A+, Dom

    Tuesday, May 18, 2010

    Work around the general laziness ;)

    This blog entry is primarily inspired by a rant from Jason Calacanis, during the episode #47 of This Week in Startups (full show, or directly starting near 5:20). During that show, Jason goes against the Generation Y people who are usually lazy and want everything before actually delivering...

    Another source of inspiration is Mark Suster, the co-host of This Week in VentureCapital, with a series of posts culminating with The Long-Term Value of Loyalty.

    What's their point-of-view?

    Jason is mostly focusing on a group of people, a group that has been educated with a different mindset from his own one. Gen-Y people have more concerns about ecology in general, for example, they are used to getting free or cheap digital goods, and many of them live with their parents longer than before...

    If I can agree on the fact that many Gen-Y people seem lazier than the the Gen-X or the baby boomers at the same age, I think the key differentiators is their relationship with money: the Gen-Y people think they need less money, so they don't work that hard to get always more!

    In his first post of the series, Mark pinpoints job hoppers, employees who can resign anytime, without much respect for their commitment or for the situation of the company. If Mark readjusts the context in the second post by writing that “quitting a job because it's a mess is OK”, Mark still thinks that being “loyal” is important and everyone should stay loyal for long term benefits...

    I can agree with Mark that working with such individuals is risky, that developing a business with not-so-loyal people is tough. However, I think that building a business with people from different mindsets and backgrounds is more valuable. To me, diversity, if you can manage it, is more important than loyalty!

    Is laziness a syndrome limited to Generation Y?

    Before becoming an entrepreneur, I was an employee like many others. In France, I worked for a very small company and then for a multinational corporation before immigrating to Canada. My first job here was for a medium Montreal company which was later bought by Oracle. I quitted Oracle to go with IBM Rational, which I quitted to go with Compuware. In addition to my professional life, I've been involved in many non governmental organizations.

    Along my life, I've always been curious, interested in learning new subjects, debating around them, and trying to implement the best ideas, especially when I'm passionate. I've been lucky to team up with great people (note that I learned a lot too from the failed partnerships) and I've gotten excellent mentors. When I write “lucky”, I mean “I worked hard to consider myself as lucky.”

    All in all, I can honestly say I haven't seen a lot of people working very hard at work, not that they are lazy, just that they have different priorities, different motivations. Although I've already proposed many times to be a mentor, to give lunch-n-learn talks, to organize specific trainings, etc., -on my own time, for the only benefit of the recipient- only few people have followed.

    I've observed the “good enough” attitude with any types of people: old or young, men or women, immigrants or native country, Europeans or Americans, etc. In Western countries, we don't have to fight for a shelter or to find food, so the sense of urgency is blunted. Why would people with already enough (enough money, enough responsibilities, enough social involvement, etc.) go for more?

    Maybe the Gen-Y people are worse than the others,because their “good enough” level is lower than before. IMHO, they are just like the common crowd, just normal people in our modern world.

    How to deal with the general laziness?

    As mentioned before, I think the diversity is important. Trying to stay in closed vacuum with the elite can help a bit, but not for a long time. The key point is to compose teams with top elements and less skilled ones. The newbies can learn from the experienced people and more help around them will reduce the “single point of failure” risk.

    For sure, you cannot reward the in-learning people as you do reward the top team members. As I explain to my kids, there's a consequence to everything! If you work hard, if your help is valuable, if you go beyond your tasks, the system should reward you accordingly. If it does not come immediately, it should be clear that it will come eventually if everything goes well. If the hard workers don't get a tangible ROI, I think it's normal to expect them to slow down or to quit... (to expect them slowing down ?)

    To me, the key factor in a successful project is the commitment of the participants. It's not that important that this intern has a lower velocity than an experienced engineer because we can plan accordingly. What's more important is that you trust that he's going to deliver as expected, or if he has some troubles that he's going to report them as soon as possible.

    In the case of software developers evolving in an Agile environment, measuring their work progress is not really an issue. If the team is correctly equipped, everyone is accountable. In the peripheral teams (product managers, marketing, sales representatives, etc.), commitments are more difficult to get, and the more sources of non-productivity there are, the fewer chances of success you get.

    A real case, please!

    My partner Steven and I have developed the concept of work for attribution. Because we're a startup, we cannot offer salaries in exchange to work. However, we offer to attribute back the work to the ones who have delivered it. Immediately, contributors can use our environment as a lab to test and develop new ideas. We have a working product and it's up to them to adapt it, to make it better.

    If our projects are successful, if we can cash them at one point, the contributors will be part of the success and then we'll try to reward them. If a big player wants to acquire us, top contributors will be probably part of the deal.

    So far, many people have liked the concept and a few of them have committed to deliver something specific. Some of them are Gen-Y people, some are immigrants, and everyone work at different rates. If I can rely on people I trust, on people who are going to deliver what they have committed to, whoever they are, it's very cool!

    A+, Dom

    Wednesday, April 21, 2010

    Social Software, Cynapse, and Open Platforms

    What's a Social Software?

    These days, most of white collar workers have to deal with computers on a daily basis. Computers are everywhere: from the front desk to allow receptionists to get to the company directory up to garage doors checking who's in, who's out. There are so different types of computers that some of them go unnoticed!

    The scope of this post is limited computers used to collaborate:
    • Make appointments
    • Produce documents
    • Review & comment documents
    • Forward documents
    • Poll users
    • Manage tasks
    When it's time to collaborate, the vast majority of computer users rely on e-mails. E-mail is probably the most essential tool now, and without e-mails, many are lost. Do you remember the BlackBerry syndrome of the RIM product early adopters? Yeah, the one that wakes up people middle of the night so they can get new e-mails ;)

    With tools like Microsoft Outlook, Apple iCal, and Google Calendar, more users relying on calendar tools to organize their time. This is neat because with such tools you can sometimes see up front if the targeted time slot is good for other attendees. And when attendance confirmation comes, the meeting information are updated automatically without requiring a specific triage in the mailbox.

    When people have to share pictures, because the ones modern digital camera can generate are so big and very few people have the knowledge to reduce their size nicely, more and more people resort to online hosting services like flickr or Picasa. In addition to process  images to transit on the Web (while still available in high resolution for printing purposes), sharing pictures via links is way lighter for the mail system. It has also the additional benefit that pictures can be removed safely without one someone else to purge his/her mailbox.

    With review sites like cnet or Epinions.com, more and more users have started to give their opinions online to share the joy of being a owner of a wonderful gadget, or to inform others that such a gadget is crap! Involving readers and customers to share their experiences is the key element of the social software movement.

    So what's the relation between Cynapse and social software:
    • Cynapse is a central place where people can collaborate online with the most practical tools without relying on e-mails, a place where collaboration and communication do not loose their context.
    Why Cynapse?

    When my partner Steven and I started to work on the !twetailer, we knew that we wanted to collaborate online, within a reliable and protected environment that could handle many document types: user stories, specifications, diagrams, mock ups, pictures, bookmarks, discussions, etc.

    As IBM-ers, we looked among the tremendous IBM products and we selected Lotus GreenHouse which was still in beta. The main flaw we experienced was its disruptive slowness. Another issue to us was our quasi-impossibility to influence the development path to fix the painful issues. Just 2 guys in a big user community have a very little impact...

    We then decided to switch to Elgg, a free and open source software, that our hosting service offered. Elgg is probably a good tool but it did not match our needs. The variety of entities was limited as our ability to fix the issues. Probably, it would have been better to host the service at home and to extend its model. Because it would have distracted us from our project, we looked for a better solution.

    At this time, Steven was studying the social software offering and Cynapse came out as a good fit to us:
    • The service out-of-the-box was promising and was still under active development.
    • They had an affordable offer: free self hosted service, managed service for a small subscription, managed hardware also for a fee.
    • They had an active user community which was hosted on the tool itself (the “eat your own dog food” principle).
    • Whatever solution we choose, we are free to upgrade/downgrade/exit.

    Cynapse is an Indian company and its managers are really great. For practical reasons, we decided to go with the managed service online. When Steven contacted them, asking for a rebate in exchange to us blogging about our experience with the tool and us feeding them with enhancement requests from the development point of view, they accepted and sustained our involvement.

    Disclosure: Because the tool and the team is great, Milstein & associates is now a business partner and can resell and offer services on the top of the tool.

    After one full year and two upgrades, we are very happy with the tool and its support. At one point, we have developed an offer for schools available at edu.cyn.in which has been extremely well adapted by the kids!

    In addition to the collaboration aspect, Cynapse with its offering of various tools in one platform allows users to develop their online reputation in a controlled environment. As Craig Newmark, the founder of craigslist, mentions in a blog post:
    People use social networking tools to figure out who they can trust and rely on for decision making. By the end of this decade, power and influence will shift largely to those people with the best reputations and trust networks, from people with money and nominal power. That is, peer networks will confer legitimacy on people emerging from the grassroots.
    The Cynapse environment allows users to highlight their work: statistics about contributions and comments are shared on the main page, readers can note the published materials, etc. When people are new to social software, Cynapse offers a simple way to identify the people others “trust” and allows good contributors to build their reputation.

    Aside our work on the !twetailer project, because the tool fits our needs, because kids adopted very well, we have proposed it to traditional companies (the ones that relies on Microsoft Outlook and shared folders for their collaboration). For now, the feedback is positive but it's too early to advance any adoption rate ;)

    Why Open Platforms?

    As a developer, I'm an heavy user of open source software (development environment, source control, build system, etc.). I am also a contributor myself with two open libraries hosted on github:
    • A set of utilities for Web application developers (Java, Python, JavaScript) which offers:
      • Globalization features: from one set of central repositories (TMX format) to programming language dependent resource bundles;
      • JSON related objects: to ease the parsing/generation of JSON structure
    • An adaptation of the Amazon Flexible Payment Service (FPS) library for the Java environment of Google App Engine.
    And the content of this blog is offered under the Common Creative Licence By-NC-SA, which allows using beyond the traditional “fair-use” as long as you cite the source ;) I very like open platform for the reasons Larry Lessig gave in speech on . Open source is good for innovation for geeks like myself. For enterprises, I would argue that the key point is the data access: at anytime, someone can get the data out of an open source project without risking any patent infringement, without risky reverse-engineering. For sure, it won't be free as in “free beer” but they'll be free to get their data back. Some people will argue that close software often offer a way to export data in a standard format (like a SQL dump for a database) and allow then to import them somewhere else, but that's only true if no feature are dropped during the export and if all features from one can be activated in two during the import.

    To summarize my point, I would say that open source software allow anyone to exit at anytime while continuing to control the data.

    As a collaboration tool, Cynapse is maybe not the best one but it offers competitive advantages for the right price (for free if you have the team and expertise to manage it, for fee if you choose the hassle-free solution of the hosted service on Amazon AWS) while letting users migrating to another platform anytime.

    Important point to consider during the selection of an open source solution: the quality of its community. More active is the community, better are your chances that issues you are facing have been documented, better your chances to see your (excellent) enhancement requests supported by others. Being able to contribute to an active community (by submitting bug reports, by answering others' questions, by submitting patches) have also the side benefit of improving your reputation.

    A+, Dom

    Thursday, March 11, 2010

    Ladies and gentlemen, here is !twetailer

    On Tuesday March 9 evening, my partner Steven Milstein and I attended a Montreal NewTech event. As three other companies, Steven pitched our project !twetailer to a crowd of 30-40 people. After few closed presentations, it was our first public pitch and it went very well! Read Steven's blog post for the details.

    Background

    I met Steven while working for IBM Rational. He was the Business Analyst while I was the Software Architect for the Web client of the Rational Portfolio Manager product. When Steven came to me with the Reverse Retailing idea, we agreed to develop it as a proof-of-concept for our own expertise.

    We worked so well that we submitted our project to TechCrunch50 (TC50). If we were not among the 50 finalists, we passed the first selection round on 1000+ applicants and we had the chance to present it to Jason Calacanis during 15 minutes last August.

    Boosted by the appreciation we got from Jason, we continued to focus on developing user stories and the corresponding code. We were ready to demo the full cycle early this January. Two months later, after many tests and fine tuning, we are opening !twetailer to broader audience!

    Presentation

    !twetailer first objective is to “connect supply and demand”, specifically “connect consumers to retailers” in its first version.

    Look at this original presentation to get the sense of !twetailer ;) We made it months ago but it's still very accurate. Don't miss the part describing the hub, starting at 3:00.

    After the presentation, we got many feedback from the audience and most of our interlocutors got it right. Here is the interpretation of Max Maheu, the presenter of the SolidWild company:
    • Max: If I register my company and listen for the tags “3d printing prototype logo”, all people using !twetailer will get to me?
    • Me: Exactly. All demands posted with one or many corresponding tags in the Montreal area will be forwarded to you, will be routed to you for free ;)
    • ...
    • Me: At this stage, it's possible you'll get unrealistic demands, many of them with the #demo tag. But if you respond to them, that means if you propose something, your message will be routed back to the consumers and your business information will be displayed to them!
    • Max: It's like advertising my business then! Cool.
    What's next?

    As mentioned by Guy Kawasaki in Montreal in March 2009, we have chosen to "launch early and to correct progressively". If all the delivered features are fully functional, there is still a long road to go in delivering the full feature set.

    At this step, we need to get users, that means consumers and retailers, playing with the system and giving us their feedback.

    To collect the information, we have organize the community site twetailer.cyn.in, implemented with the excellent social software from Cynapse. To value the contributions, we have setup a Work-for-attribution protocol: any community member that makes a significant contribution will have his/her work publicly recognized. Any volunteer?

    We need also to work on the marketing side:
    • The brand !twetailer seems too tightly related to Twitter, while using Twitter is just one among the various set of connectors taking to our engine.
    • If !twetailer initial targets are consumers and retailers in a public market, it can work with closed markets, where wholesalers communicate with manufacturers, for example. This aspect needs to be documented and illustrated.
    • To ensure a vibrant life to !twetailer, we have plan to open its API to third-party developers, a bit a-la Twitter. Closed friends have already accepted to develop clients (under the Work-for-Attribution CLA) that will exercise it, but we need a stronger communication there too.
    Thanks a lot to our families and closed friends for encouraging us on the entrepreneurship path. Thanks to anyone for the feedback because they help us improving !twetailer.

    Call to contributors

    !twetailer is a big project with a development still growing, so there's a lot of room for anyone to showcase their knowledge!
    • If you're a developer with Java/JavaScript skills,
    • If you're a tester with automation experience,
    • If you're a UI designer & Interactivity specialist,
    • If you're marketer with a Web 2.0 & Social software experience,
    • If you're a simple consumer in touch with a vibrant community,
    • If you're a business owner looking for new ways to reach your customers,
    • Etc.
    Don't hesitate to contact Steven (Steven@Twitter or Steven@Twetailer.com) or myself (Dom@Twitter or Dom@Twetailer.com) and we'll exchange on our community site at twetailer.cyn.in.

    A+, Dom

    Monday, February 8, 2010

    Ma nouvelle vie en tant qu'entrepreneur !

    La démission

    Il y a trois semaines, j'ai démissionné de mon poste de Consultant technique pour la compagnie Compuware, à Montréal. Plusieurs facteurs m'ont poussé à prendre cette décision :
    • Mon projet [toujours secret] personnel arrive à maturité et les conditions de sa mise en marché sont à envisager sérieusement;
    • Mon boss Paul Czarnik m'assigne sur un projet en relation avec l'intégration des outils de Gomez (récemment achetée par Compuware) dans le produit phare Vantage.
    • Le récent chaos provoqué par le tremblement de terre en Haïti offre une opportunité de proposer mon projet personnel aux organismes d'aide, dans la même veine de ce qui sera proposé aux organismes de Microfinance, comme Diku Dilenga et Jamii Bora.
    D'un côté, il y avait un assignement plus prenant avec mon employeur, et de l'autre, il y avait une demande d'attention plus importante pour aborder une phase critique. J'ai finalement opté pour la démission. Youpi, je suis maintenant indépendant !

    Certains amis m'ont demandé si cela avait un rapport avec mon âge (ils se souviennent de mon articule Le cap des 40 ans). Réponse simple: pas du tout, pas de middle-age crisis en vue ;)

    C'est plus le cotoiement, même par Internet ou livre interposé, avec des gens inspirant comme Guy Kawasaki (GK's keynote in Montreal) qui me poussent à aller de l'avant, pour « faire quelque chose qui a du sens. »

    Et maintenant ?

    Du temps où je travaillais en tant qu'Architecte logiciel pour IBM Rational, à Montréal, j'avais eu le plaisir de travailler avec Steven Milstein qui avait le rôle d'Analyste d'affaires.

    L'idée originale du projet qui m'occupe dorénavant est de Steven. Avec mon expérience, j'ai pris en charge le développement en nous appuyant sur des outils très accessibles comme :
    Le travail de collaboration (user stories, blogues techniques, support à la communauté des participants, etc.) est colligé sur la plateforme cyn.in, sélectionnée par Steven pour sa grande qualité et l'évolution rapide de son développement.

    Dans l'immédiat, je me concentre sur la mise au point de l'outil, passant d'un rythme de 15 à 20 heures par semaine à quelques 60 heures et plus. En ce moment, le code représente environ 13.000 lignes de code pour 33.000 lignes de test, rien que pour la partie serveur !

    Si nous avons fait plusieurs présentations réelles du produit, nous sommes fin prêts pour faire des présentations plus larges, toujours sous le coup d'accord de non divulgation cependant. Idéalement, nous souhaitons avoir des partenariats pour avoir une masse critique et aller de l'avant en ouvrant les portes à tout à chacun ! Excitant, non ?

    Parce que nous pensons que notre produit peut aider à la coordination des équipes d'aide aux sinistrés en Haïti, nous avons pris des contacts pour le leur proposer à titre gratuit, mais pour lequel il faut assumer les frais d'exploitation. Comme les contacts se font au niveau gouvernemental, du Canada et du Québec, ou au niveau de grandes ONGs comme la Croix Rouge ou MSF, il risque de se passer un certain temps avant que notre proposition trouve un écho favorable. Le suivi des contacts se poursuit.

    Le futur

    Pour le moment, je suis sans revenu. N'ayant pas de dettes colossales, ayant un train de vie modeste, je pense pouvoir être en roue libre pendant quelques mois sans que ma famille en patisse.

    Avec Steven, en attendant que le grand projet avance, et en exploitant notre expérience des outils de socialisation, nous avons développé une offre reposant sur cyn.in et dirigée vers les écoles et l'initiation des élèves. Le projet s'appelle edu.cyn.in—voir le blog de Steven pour plus de détails.

    Pendant la période de lancement, étant toujours « programmeur » sur des technologies récentes, j'ai le sentiment que mon capital de « connaissance technologique » restera solide. Ma communication sur ce blogue en témoignera ;) Le cas échéant, je pourrais toujours aller à la recherche de contrat de consultant pour partager mes connaissances.

    Mon activité pour l'organisme de microfinance Diku Dilenga continue, toujours pour le soutien technique, moins en tant qu'investisseur privé. Si le grand projet décolle par contre, je consacrerai du temps pour son adaptation aux organismes de microfinance avec pour objectif d'aider les microentrepreneurs et de d'offrir une source de revenus aux dits organismes.

    À suivre donc,
    A+, Dom

    Friday, September 18, 2009

    Progress update

    Almost three months without publishing anything! I am definitively not proud of this score...

    I have been busy on three fronts:
    1. At work, I continue working on mobile related development. The easiest platform to play with is the Android one (see my post on Android Dev Phone 1) and I thrilled to see new handsets being made available, like the HTC Dream and Motorola Cliq, with their respective HTC Sense and Moto BLUR custom UIs (see videos below). Even if its SDK is not as rich as Android's one, even if the gadgets are not as polished as Android's ones, I also like developing for BlackBerry phones, like the BlackBerry Storm.
    1. For my side project, running on Google App Engine infrastructure, it is progressing very well. Today, I reached a milestone: the first part of [still a secret] runs live. In terms of coding, it represents ~6,000 lines for the source files and ~12,000 lines for the test. I have always considered source vs test as being 50-50; it seems I should re-evaluate the balance to 1/3-2/3 ;)


      Thanks to different contributors, I have developed a series of mock classes allowing to test transactions with BigTable, the database used by App Engine. A really neat piece of code I am going to describe here later.
    1. On the social side, I am working with the board of Diku Dilenga Canada (board I am member of) to move as its Executive Director (still as a volunteer). The move has been inspired by Jean-Pierre Tchang, founder of IRIS Mundial. I hope this update will make Diku Dilenga (Canada) as successful as IRIS Mundial.

      I had a lot of activities on this front recently: a fundraiser thanks to Louis Lamontagne walking between Saint Jean Pied de Port (France) and Santiago de Compostela (Spain), a trip of 780km, a first series of computers to be shipped to Kananga, Democratic Republic of the Congo, etc.

      The plan to link the [still a secret] project with Diku Dilenga activities have been formally approved by the board during the summer. This side, there is a possibility I will do a presentation to the 2010 Africa/Middle East Regional Microcredit Summit (AMERMS) to be held in Nairobi, Kenya April 7-10, 2010. It would be nice to participate, isn't it?

    Stay tuned, I should be back in few days with technical information about unit testing transactional code on Google App Engine ;)

    A+, Dom
    --
    Videos:


    HTC Hero, the first phone with the HTC Sense, a customized UI scheme on the top of Android.



    Motorola Cliq, the first phone with Moto BLUR, a customized UI scheme on the top of Android.



    BlackBerry Storm, first BlackBerry phone with a touch screen

    Friday, June 5, 2009

    Android Dev Phone 1 Setup

    To start investigations on mobile application development for Compuware, I have just acquired a first Android Dev Phone, also known as G1 [1]. Last week at Google I/O, Vic Gundotra delivered an Oprah event by offering to the audience a second generation Android phone, also known as G2 or HTC Magic [2, 3]. The G1 is more limited but it is still the only Android platform legally available.

    With a bit of luck, few of 18 new phones Google expects [4] will be made available to developers during the year.

    I have been able to activate the phone with the Fido pre-paid plan (10 $/month) [5]:
    • I inserted the SIM card as illustrated into the documentation, put the the battery in place, and connected the phone to the AC adapter.
    • Before signing in with my Google account, I had to create an Access Point Network (APN) entry:
      • Name: Fido
      • APN: internet.fido.ca
      • Username: fido
      • Password: fido
      • MCC: 302
      • MNC: 37
    • In some forums, it is reported that new Fido SIM cards use 370 as the MNC value.
    • A post of Olivier Fisher's blog [6] gives also the coordinates to connect to Rogers network, another GSM provider in Canada.
    • To limit interference, I deleted all pre-loaded APN entries (related to T-Mobile networks).
    • At one point, a popup asked me to enable data transfers. It is important to enable it and to activate the Data roaming, disregard how expensive are the costs for a prepaid plan.
    • Then I specified my Google account credentials and let the phone contacting Google servers via Fido network.
    • Once the activation has been successfully reported, I disabled the Data roaming, even before the synchronization of the applications {GMail, Contacts, Calendar} ended. The impact on my plan should be limited ;)
    • Then I added the description of my home Wi-Fi network.
    • I found the MAC address of the phone in the menu Settings > About phone > Status, with the entry near the end of the list. I used it to let my Wi-Fi controller accepting connections from the phone.
    • At this step, I was able to use my phone for regular calls over Fido network, and for data transfers over my Wi-Fi network.
    The phone comes installed with Android 1.0 installed. I will blog later about updating the phone OS to the 1.5 version (also known as Cupcake)...

    Update 2009/06/16:
    Instructions on how to upgrade the Android dev phone to Android 1.5 is pusblished on HTC website: Flashing your Android Dev Phone with a Factory System Image.

    Update 2009/07/15
    Because of some restrictions to access Internet from the office, I have decided to pay for a 1GB/month data plan with Fido (30$/month). The activation has been made pretty quickly but none mentionned the following limitation:
    • On HTC website, you can see the network specifications for the G1: HSPA/WCDMA (US) on 1700/2100Mhz.
    • Fido/Rogers GSM only operates on 850/1900Mhz, so there's no possibility to go at a 3G speed in Canada!
    Using this phone mainly for development purposes, it is not a blocking issue. It is just sad to not benefit from a better bandwidth...

    A+, Dom
    --
    Sources:
    1. Order the Android dev phone 1 from Android Market.
    2. Techcrunch reports the Oprah moment by Vic Gundotra.
    3. G2 review by MobileCrunch
    4. Google expects 18 to 20 new phones on the market by the end of 2009.
    5. Fido pre-paid plan.
    6. Android G1 Phone in Canada on Rogers by Olivier Fisher. Posted comments are especially useful.

    Sunday, May 31, 2009

    Le cap des 40 ans !

    1969-2009
    Me voilà 40 ans révolu ! Ce 30 mai, j'ai eu le plaisir de recevoir de proches amis que j'ai rencontrés au long de mes 10 années passées à Montréal. Ce n'est pas tant le chiffre des 40 ans qui est magique, c'est plus celui des 10 ans et tous les événements qui se sont produits depuis.

    En effet il y a 10 ans, ma femme Sophie et moi avons pris un aller simple Nantes-Montréal avec 2 valises, pendant que le reste de nos affaires traversait l'atlantique en bateau. Rapidement, nous avons loué un haut de duplex à Ville LaSalle. Et après quelques temps de vacances au Lac Saint Jean et dans le Saguenay, nous nous sommes mis à la recherche d'un boulot.

    Pour moi, c'est la compagnie CS&T (plus tard renommée en Steltor) qui a décidé de me faire confiance. J'y ai d'abord réalisé une console d'administration Web pour le serveur de calendrier, un outil de collaboration instantanée et distribué avant l'heure. Je dois en partie mon recrutement à Patrice Lapierre, toujours employé par Oracle à Montréal ;)

    Une fois acquise Steltor par Oracle, j'ai travaillé pour une équipe californienne. Mon expérience des applications Web a retenue d'Attila Bodis. Avec quelques autres, nous avons construit un environnement pour une application Web 2.0 avant même que le buzz existe ! Une première version a été commercialisé. Les débuts de la seconde version étaient très prometteurs, notamment grâce à la vision d'Amir Borna, et avec la bonne coordination de Vince Wu. Mais des aléas politiques ont cependant plombé le projet et l'équipe s'est quasiment dissoute...

    Quand la semaine dernière, j'ai vu la présentation de Google Wave par Lars Rasmussen et Stephanie Hannon, j'ai trouvé beaucoup de similitudes avec ce que nous avions sur la planche de travail pour OCS (Oracle Collaboration Suite) en 2005-2006. Parce qu'Oracle évolue dans le monde de l'entreprise, les médias comme le courriel ou l'événement de calendrier devaient perdurer—j'attends à ce propos de voir quelle stratégie Google va offrir aux entreprises pour migrer leur legacy systems. Il y a sûrement des concepts OCSiens de l'époque qui s'appliqueraient à Wave aujourd'hui. Chapeau bas les gens d'en bas ;) car vous avez réussi où ceux d'en haut n'ont pas su persévérer !

    C'est alors qu'IBM Rational m'a offert un poste d'architecte technique. Le projet n'était pas sensationnel (il est même mort depuis), mais les gens rencontrés et l'expérience de Big Blue ont été sans pareil. Chapeau à Steven Milstein, à Toufik Bahloul et Arthur Ryman.

    Présentement, je suis chez Compuware dans un groupe d'experts multi-disciplinaires et j'aide à définir les stratégies de l'entreprise dans les domaines des applications Web et des mobiles. Évoluant dans une compagnie très conservatrice, certaines situations ont tendance à me frustrer royalement, mais les résultats que j'arrive à obtenir par ma persévérance font que finalement l'équilibre est positif. Je ne sais pas combien de temps cela va durer, mais j'en apprécie la valeur. Et je remercie Paul Czarnik, Mathieu Pageau et Abdel Belkarsi.

    Du côté extra-professionnel, il y a eu mon passage dans le groupe RÉSULTATS, merci Sunnie Kim, pour lequel l'action des citoyens fait pression sur le gouvernement fédéral pour que l'aide au développement vise les plus pauvres. Maintenant, je suis impliqué dans Diku Dilenga au Canada, dont je remercie le co-fondateur de l'organisation en République démocratique du Congo révérend Tambwe Musangelu.

    Je n'oublie pas non plus ma relativement récente entrée dans le monde du karaté au Dojo de Don Lorenzetti, pour le style Chito Ryu. C'est d'autant plus passionnant que toute la famille Derrien y participe : Sophie, Erwan, Goulven et moi-même chacun à des horaires différentes deux fois par semaine.

    Merci Sophie, mes enfants, et mes amis pour votre amitié et les richesses que vous m'apportez. J'espère être à la hauteur et vous donner autant de plaisir.

    A+, Dom

    Wednesday, May 6, 2009

    Revue du livre « le dip » de Seth Godin

    Une fois n'est pas coutume, je prends le parti d'écrire une entrée de blogue en français. Ce qui me motive à le faire c'est la récente lecture du livre de Seth Godin qui n'était disponible qu'en français à la bibliothèque de mon quartier. Depuis quelques années, j'utilise la langue de Shakespeare mise au goût du jour par Ron McDonald pour mon travail. En plus, 95 % de mes sources d'information sont anglophones. C'est donc assez déroutant de lire du Seth Godin en français, mais aussi très rafraîchissant.

    Le thème de ce court livre publié en 2007 (100 pages au format d'un livre de poche) traite de la description de différents profils d'activité et sur les stratégies à adopter pour avoir du succès. Seth est très honnête sur la notion de succès : s'il incite le lecteur à être le « meilleur du monde », il précise que ce « monde » est propre à chacun et qu'il peut varier au court du temps. Voici les trois profils d'activités qu'il identifie :

    • Il y a le profil que tous connaissent quand ils démarrent une nouvelle activité, où l'excitation rend les choses faciles. Cette phase est suivie d'un creux où l'évolution est lente et pénible. Quand l'obstination porte ses fruits, la sortie de ce creux est souvent couronnée de succès. Seth appelle ce creux le dip.
    • Il y a le profil de la falaise où les activités progressent bien jusqu'à s'écrouler totalement. Seth fait le parallèle avec le monde de la presse écrite : tout allait bien jusque récemment mais la démocratisation d'Internet a tout chamboulé. Plus besoin d'attendre le quotidien du lendemain pour connaître les nouvelles car la plupart des grands médias [2] diffusent sur Internet. Plus besoin du journal local pour vendre ou acheter un bien car les services comme craigList [3] offre de meilleures couvertures. Plus besoin du mensuel pour voir des photographies extraordinaires, il suffit de se rendre sur Flickr [4]...
    • Il y a enfin le profil de la progression plate, infiniment plate, sans perspective de succès. C'est le chemin vers une voie sans issue.

    Seth explique que les deux derniers profils sont à abandonner rapidement, car il n'y a que de la médiocrité à en retirer. Le premier profil, celui avec le dip, est à évaluer consciencieusement.

    Il arrive des situations, ou malgré les perspectives de réussite évidentes, le palier à traverser pour atteindre le succès est trop pénible. En fait, Seth écrit que la péniblité du palier est proportionnel au succès à atteindre. Si ce n'était pas pénible tout le monde serait couronné de succès, ce qui n'est évidement pas le cas. Parmi ses exemples, Seth cite le cas des grands sportifs, des dirigeants de grandes sociétés, des créateurs, etc. Il dit, par exemple, que c'est facile d'être un grand patron, mais c'est difficile de gravir les échelons pour arriver à ce poste.

    La partie qui m'interpelle particulièrement, c'est son discours sur la nécessité d'identifier les situations de dip que l'on peut traverser et celles qui sont insurmontables compte tenu de nos propres contraintes. Quand une situation de dip trop difficiles, tout comme celle de la falaise ou de la progression, il est important d'y renoncer tôt. Il affirme même qu'il est important d'identifier les critères de renonciation avant d'être dans la situation de blocage pour être sûr de quitter pour les bonnes raisons. Si les raisons sont trouvées alors qu'on est dans le trouble, elles provoqueront des remords par la suite. Avec l'analogie d'un marathon, Seth dit que par exemple se mettre des objectifs de temps de parcours et de s'évaluer par rapport à eux plutôt qu'aux sensations du moment (crampes, fringale, etc.) donne de meilleurs chances de succès. Si on déjà parcouru 35 km, les sensations rendront la fin plus pénible à supporter s'il n'y a pas l'estimation initiale de succès établie en fonction de temps établis par avance.

    Seth dit que le renoncement à des situations trop difficiles laisse la chance à la réalisation d'autres défis plus à sa mesure. Comme le critère de réussite est d'être « le meilleur de son monde », peu importe que d'autres pensent que l'abandon d'un situation soit un échec. Il arrive même que ceux qui vous jugeront mal sont eux-mêmes incapable de sortir du dip, qu'ils nagent dans une médiocrité relative.

    Si je fais un peu d'introspection, j'en arrive aux constats suivants :

    • Autant mon immigration au Canada, mes derniers changements d'emploi (de Oracle à IBM Rational, puis à Compuware [5]), ainsi que le déplacement de mes activités para-sociales (de RÉSULTATS à Diku Dilenga [6]) ont été motivés par des constats de dip devenus infranchissables (en tout cas, avec des perspectives moindres lorsque comparées à celles offertes par les changements).
    • J'aime les difficultés, les challenges qui sont rudes, dans la mesure où la perspective de grandir est bonne. Instinctivement avant, clairement maintenant, j'abandonne les situations qui sont sans issue, ou pour lesquelles les compromis à faire sont sans commune mesure avec la satisfaction à en retirer. Cette attitude peut paraître fruste et égoïste mais c'est relatif : j'imagine qu'en étant le « meilleur de mon monde » cela bénéficie aux gens de « mon monde ». Ce qui est mieux, à mon avis, que d'affecter mon entourage parce que je reste « un médiocre dans mon monde ».

    Étonnant comme un petit livre peut faire gamberger, n'est-ce pas ? À votre tour d'y consacrer quelques heures et de partager votre propre cheminement en me laissant un commentaire.

    Pour le plaisir, voici la vidéo d'une présentation donnée par Seth Godin en 2003 [7]. Tout ce qui dit est du « gros bon sens » et c'est ce qui le rend pertinent. Le livre est du même acabit.


    Seth Godin at Gel 2006 from Gel Conference on Vimeo.



    A+, Dom
    --
    Sources :
    1. Le livre décrit sur le site de Seth, et la présentation francophone sur le site des Éditions du trésor caché.
    2. Google News, Associated Press (AP), Agence France Presse (AFP), Cable News Network (CNN), Radio de l'information (RDI, du réseau de Radio Canada), France24, Al-Jazeera, etc.
    3. craiglist, kijij, lespac, etc.
    4. Flickr, PicasaWeb, PhotoBucket, etc.
    5. Oracle, IBM Rational, Compuware.
    6. RÉSULTATS, Diku Dilenga.
    7. Entrée sur le blog de Seth : This is broken.

    Monday, April 13, 2009

    Agile: SCRUM is Hype, but XP is More Important...

    (This post is part of the series Web Application on Resources in the Cloud.)

    I have been doing “Agile development” for more than 5 years. I am used to saying that an organization is Agile at the level of its weakest element. So I cannot claim having worked on any fully Agile projects. However, I have always tried to apply as many as possible Agile principles to my work. This blog entry goes over different practices and identifies the ones that worked best for me and my teams.

    Agile

    The Agile methodology is a not pure invention, this is the compilation of best directives gathered from various practices:
    • Individuals and interactions over processes and tools
    • Working software over comprehensive documentation
    • Customer collaboration over contract negotiation
    • Responding to change over following a plan
    Agile principles and sub-principles have been defined by a group of technical leaders: Beck from eXtreme Programming (XP), Schwaber (Scrum), etc. The Agile Manifesto [1] is the result of their collaboration.

    Scrum

    “Scrum is a lightweight Iterative and Incremental (Agile) Development Method that focuses on delivering rapidly the highest priority features based on business value.” It has been defined by Ken Schwaber and Jeff Sutherland in early 1990s.

    Scrum promotes high collaboration and transparency. There are different backlogs helping delivering the best business values at each iteration. Capturing and integrating feedback (from business users, stakeholders, developers, testers, etc.) is a recurrent task. Deliveries occur often and their progression is continuously monitored.




    Scrum in Under 10 Minutes by Hamid Shojaee


    The points I really like about Scrum:
    • Task reviews done with all actors, in Poker Planning [2] sessions, for example.
    • Product designed, coded AND tested during the Sprint.
    • Sprint deliveries are workable products, with limited/disabled features, but working without blocking issues.
    • Defined roles: Product Owner, Scrum Master (aka Project Manager), and Project Team (composed of cross-functional skills: dev., QA, DBA, Rel. Eng., etc.).
    Pig and Chicken are traditional roles in the Agile teams [3].

    eXtreme Programming

    While Scrum is mainly managers (chicken) oriented, eXtreme Programming (XP) focuses more on do-ers (pigs).

    XP is more a matter of having the right tools and having real technical exchanges within the Scrum team. For example, XP strongly suggests the adoption of peer-programming: two developers per computers, one coding and the other thinking about the coding and correcting the code on-the-fly.

    Applying peer programming in teams with actors from various backgrounds is sometimes too constraining. Matching peers is a difficult exercise. However, enforcing peer code reviews allows to get almost the same benefits without too much frustration. With code reviews, junior developers can see seniors' work in action, and senior developers can learn new programming paradigms. I found it's good also for the team cohesion, because team members really know about each others' work.

    Among the practices XP incites to follow, there are:
    • Continuous Integration: every time a developer or a tester delivers new materials, a complete build process starts to compile, package and test the entire application. Ideally, the build time is short enough to prevent committers to start any other tasks, so they can fix it right away. A safe strategy is to put “fixing the build” as the top priority whenever a problem occurs.
    • Unit testing and code coverage: when developers write unit tests, they provide the first piece of code consuming their own code, and experience shows that it really helps delivering better code. Unit tests without code coverage measurements does not mean much. And not trying to reach 100% coverage leaves too much space to defective code... Using mock objects [4] is an essential tool to test accurately. Test Driven Development (TDD) methodology is pushing this practice up to writing the tests before the code.
    • Continuous refactoring: during each sprint, developers should focus on the immediate requirements, because they have very little control on future sprints (the product owner can adjust the development plan anytime). This is sometimes difficult to limit them to their immediate tasks because many do not like the perspective of having to rewrite their code later. Investing in tools like IntelliJ IDEA which provides extended refactoring features is really worth it because developers can adapt their code efficiently while being secured by the continuously growing regression test suites.

    Best of both approaches

    In medium to big companies, they are often many layers of management. In such environments, when managers should be facilitators[5], they often add weight to the processes.

    About the issues in shipped products, here is an anecdote about IBM:
    An internal team reviewed the quality of the released products and came to the initial conclusion that minor and maintenance releases contain more flaws than major releases. The conclusion was made after studying the number of defects reported by customers: this number was sometimes twice higher for intermediate releases. But the team pushed its investigation further and polled many customers. At the end, it appears that very few customers were installing major releases immediately, most of them would wait for the first maintenance release to deploy in pre-production environments (one stage before production one).
    In this story, IBM used the results of this study to size and train the support teams according to the product release plans. As you can expect, more support people are trained and made available on releases following major ones. It did not help IBM delivering better products up front, it mostly smoothed the experience of customers reporting problems ;)
    Development labs are often known for delivering over the budget, over the allocated time, and with too many issues. Many times, I have seen the maintenance being operated by specific teams, without relation with the development ones. In such environments, development teams focus on delivering features and maintenance teams fix issues: each team has its own budget and life goes on!

    The combination of the relatively poor delivered software, the accumulation of managers, and the Scrum burn-down chart (the chart that shows how the work progress on a daily basis [6]) favors Scrum adoption in IT organizations.




    Burn down chart sample


    My problem with Scrum as I see it in action is related to its usage by managers: it is a one-way communication channel for them to put the pressure on Scrum teams. And because Scrum is task oriented, if the task set is incomplete (or deliberately cut through), these managers mostly follow the feature completion rate, and sometimes the defect detection and fixing rates.

    In my experience, with organizations transitioning from waterfall methodologies to Scrum, the feature check list has always precedence on the quality check list! If tasks have a risk to break the deadline, the test efforts are cut. And because these organizations have very few ways to measure the delivered quality (because they adopted Scrum but refused to invest in XP), results are not really better for customers...

    This is why I think it is important to balance the importance of Scrum with the one of XP, why as the same time managers should tools to monitor the work progress, Scrum teams should publish quality metrics about all delivered pieces of code. With both sides being instrumented, it is be easier to identify decision impacts and product owners can make informed decisions.

    A+, Dom
    --
    Sources:
    1. Principles of the Agile Manifesto, and definition of Agile methodology on Wikipedia.
    2. Description of Poker Planing on Wikipedia.
    3. The Classic Story of the Chicken and Pig on ImplementingScrum.com, and the role definition by Nick Malik.
    4. Mock object definition on Wikipedia, and Chapter 7: Testing in isolation with mock objects from the book JUnit In Action, by Vincent Massol.
    5. My personal view on the facilitator role managers should have: Manager Attitude.
    6. Burn-down chart described as a Scrum artifact on Wikipedia and Burn Baby Burn on ImplementingScrum.com.