October 12th, 2014
Over the recent conferences, I’ve had several people ask me the follow:
I would like to better understand the expectations from the organising committee on the talk proposals. In particular, I would like your feedback on my talk submission so that I can work on improving the same.
I think, this is a very valid question:
What is the selection criteria for the talks?
I’ve been organising conferences for a decade now and following is my perspective:
In terms of the overarching themes or values, we look at the following during selection:
- Diversity – As a conference, we want to be more inclusive (different approaches, different programming languages, gender, countries, back-ground etc.)
- Balance – We want to strike a good balance between different types of presentations (expert talks, experience reports, tutorials, workshops, etc.) and different types of experience the speakers bring to the conference.
- Equality – We encourage more students and women speakers. We won’t select a stupid proposal just because it came from a student or a female speaker. But given we have to pick 1 out of 2 equal proposal, we’ll pick the one, which was proposed by a student or a female speaker.
- Practicality - People come to a conference to learn, network, have an experience and leave motivated. Proposals which directly help this are always preferred. While a little bit of theory is good, but if the proposal lacks practical application, it does not really help the participants. Also people learn more by doing rather than listening. If proposals has an element of “learn by doing” it wins over other proposals. Take people on a learning journey.
- Opportunity – While we want to ensure the conference has at least 2/3 rock solid speakers, we also want to give an opportunity to new speakers, who have real potential
- Originality - Original ideas wins hands-on from copied one. People always prefer listing to an idea from its creator rather than second or third person. However, you might have taken an idea and tweaked it in your context. You would have gained an insight by doing so. And certainly all of us want to hear your first-hand experience, even though you were not the creator of the original idea. We are looking for Thought-Leadership.
- Radical Ideas – We really respect people, who want to push the boundaries and challenge the status quo. We have a soft-corner for unconventional ideas and will try our best to support them and bring awareness to their work.
- Demand – Votes on a proposal and buzz on social media gives us an idea of how many people are really interested in the topic. (We fully understand votes can be gamed, but we’ve a system that can eliminate some bogus votes and use different types of patterns to give us a decent sense of the real demand.)
Once the proposal fits into our value system, here are some basic/obvious stuff we expect when we look at the proposal in the submission system:
- Is the Title matching the Abstract?
- Under the Outline/Structure of the Session, will the time break-up for each sub-topic will do justice to the topic?
- Is there a logical sequencing/progression of the topics?
- Has the speaker selected the right session type and duration for the topic? For Ex: 60 mins talk might be very boring.
- Has the speaker selected the best matching Theme/Topic/Category for the proposal?
- Is the Target Audience specific and correct? Also does it match with the Session Level?
- Is the Learning Outcome clearly articulated? Ideally 3-5 points, one of each line.
- Based on the Outline/Structure, will the speaker be able to achieve the Learning Outcomes?
- Based on the presentation link, does the speaker have good quality content and good way to present it?
- Based on the video link, does the speaker have a good presentation (edutainment) skills? Will the speaker be able to hold the attention of a large audience?
- Based on the additional links, does the speaker have subject matter expertise and thought leadership on the proposed topic?
- Are the Labels/Tags meaningful?
Proposal stands the best chance to be selected, if it’s unique, fully flushed, ready-to-go. Speaker please ensure to provide links to your:
- previous conference or user group presentations
- open source project contributions
- slides & videos of (present/past) presentations (other conferences or local user group or in-office)
- blog posts or articles on this topic
- and so on…
When selecting a proposal, we pay attention not only to the quality of the proposal, but also quality of the speaker, .i.e. whether the speaker will be able to effectively present/share their knowledge with others. Hence past speaking experience (videos & slides) are extremely important. If you don’t have a video from past conference presentation, that’s fine. Try to setup google hangout in one of your upcoming local user group meeting or internal office meeting, where you are presenting and share that link. This will give the committee a feel for your presentation skills and subject matter expertise.
While this might look very demanding, it is extremely important to ensure we put together a program which is top-notch.
October 3rd, 2014
Many teams suffer daily due to slow CI builds. The teams certainly realise the pain, but don’t necessarily take any corrective action. The most common excuse is we don’t have time or we don’t think it can get better than this.
Following are some key principles, I’ve used when confronted with long running builds:
- Focus on the Bottlenecks – Profile your builds to find the real culprits. Fixing them will help the most. IMHE I’ve seen the 80-20 rule apply here. Fixing 20% of the bottlenecks will give you 80% gain in speed.
- Divide and Conquer – Turn large monolithic builds into smaller, more focused builds. This would typically lead to restructuring your project into smaller modules or projects, which is a good version control practice anyway. Also most CI servers support a build pipeline, which will help you hookup all these smaller builds together.
- Turn Sequential Tasks to Parallel Tasks – By breaking your builds into smaller builds, you can now run them in parallel. You can also distribute the tasks across multiple slave machines. Also consider running your tests in parallel. Many static analysis tools can run in parallel.
- Reuse – Don’t create/start from scratch if you can avoid it. For ex: have pre-compiled code (jars) for dependent code instead of building it every time, esp. if it rarely changes. Set up your target env as a VM and keep it ready. Use a database dump for your seed data, instead of building it from an empty DB every time. Many times we use incremental compile/build, instead of clean builds.
- Avoid/Minimise IO (Disk & Network) – IOs can be a huge bottleneck. Turn down logging when running your builds. Preference using an in-process & in-memory DB, consider tmpfs for in-memory file system.
- Fail Fast – We want our builds to give us fast feedback. Hence its very important to prioritise your build tasks based on what is most likely to fail first. In fact long back we had started a project called ProTest, which helps you prioritise your tests on which test is most likely to fail.
- Push unnecessary stuff to a separate build – Things like JavaDocs can be done nightly
- Once and Only Once – avoid unnecessary duplication in steps. For ex: copying src files or jars to another location, creating a new Jenkins workspace every build, empty DB creation, etc.
- Reduce Noise – remove unnecessary data and file. Work on a minimal, yet apt set. Turn down logging levels.
- Time is Money -I guess I’m stating the obvious. But using newer, faster tools is actually cheaper. Moving from CVS/SVN to Git can speed up your build, newer testing frameworks are faster. Also Hardware is getting cheaper day by day, while developer’s cost is going up day by day. Invest in good hardware like SSD, Faster Multi-core CPUs, better RAM, etc. It would be way cheaper than your team waiting for the builds.
- Profile, Understand and Configure – Ignorance can be fatal. When it comes to build, you must profile your build to find the bottleneck. Go deeper to understand what is going on. And then based on data, configure your environment. For ex: setting the right OS parameters, set the right compiler flags can make a noticeable difference.
- Keep an Open Mind – Many times, you will find the real culprits might be some totally unrelated part of your environment. Many times we also find poorly written code which can slow things down. One needs to keep an open mind.
Are there any other principles you’ve used?
BTW Ashish and I plan to present this topic at the upcoming Agile Pune 2014 Conference. Would love to see you there.
July 28th, 2014
A quick update on upcoming conferences:
- Selenium Conf 2014 – 4th Annual Selenium Conference. Draft program schedule is now available at http://seleniumconf.org/#program. Also you’ll notice that the registration for the 4-pre-conference workshops are also open now. We’ve limited seats, grab them now at http://booking.agilefaqs.com/selenium-conf-2014
- Functional Conf 2014 – 1st Functional Programming Conference in India. Draft program schedule is now available at http://functionalconf.com/#program. Last few smart registration seats are left. Grab them at http://booking.agilefaqs.com/functional-conf-2014
- Agile Pune 2014 – July 31st is the last day to submit your proposal for the conference. We have already received 27 proposal. You can view them at http://confengine.com/agile-pune-2014. Also last few seats are left for the Early-Bird registration. Book your seats at http://booking.agilefaqs.com/agile-pune-2014
- Agile DC 2014 is accepting proposal till Aug 15th. So far, we have 33 great proposals submitted. Check them out at http://confengine.com/agiledc
Blast from the past: All the video from Agile India 2014 Conference are now publicly available here: http://confengine.com/agile-india-2014/schedule.
June 24th, 2014
We are delighted to present Linda Rising and Joshua Kerievsky, as our keynote speakers for the upcoming Agile Pune 2014 Conference. The conference will be hosted at Hyatt Regency, Pune on Nov 21st and 22nd.
The Agile Pune 2014 is a volunteer-run, non-profit event organised by the Agile Software Community of India (ASCI). The goal of the conference is to bring together Agile enthusiasts from around the world to share ideas, socialise, and work together on advancing the state of Agile/Lean Software development.
Simplicity, quick feedback cycles, systems thinking, mistake proofing, transformational leadership, building quality in, relentless improvement via inspect and adapt, evolutionary design, cross-functional collaboration, sustainable pace, self-organisation and safe-fail experimentation are some of the core tenants of the Agile and Lean mindset. They help teams embrace uncertainty and make them more change resilient. This conference is dedicated to deep-dive on these topics.
Agile Pune 2014 is a two-day conference, starting on Nov 21st (Friday), where experts and practitioners from around the world will share their experience on topics related to our theme, “Action Precedes Clarity”. The conference will host 3 parallel tracks. We also plan to host pre-conference workshops to help you get world-class training directly from our international experts at affordable rates.
If you are interested in presenting at the Agile Pune 2014 conf, please submit your proposals at http://confengine.com/agile-pune-2014
Super early bird registrations starts today. Register now at http://booking.agilefaqs.com/agile-pune-2014
To know more about the conference, please visit http://pune.agileindia.org
June 19th, 2014
Remember the dot-com days of Webvan and Pets.com? We took traditional businesses and gave then an online presence. Rapidly acquiring a large customer base was the sole goal of many dot-coms. “If we can get enough users, we can easily figure out how to monetize it.” And all of this made perfect sense expressed in dollars and cents. I know people who melted down Yahoo Finance’s servers by checking for their favourite stocks prices throughout the day, calculating their (paper) net worth in real time. If you were not part of this madness, you were certainly considered stupid.
But then on March 10, 2000, the perspective changed. Suddenly it became clear that this was really a bubble. Without having real profits (or even revenue/cash-flow), it was really just a house of cards. In hindsight, the entire dot-com burst made perfect sense. But why wasn’t this obvious to everyone (including me) to start with?
In complex adaptive system, the causality is retrospectively coherent. .i.e. hindsight does not lead to foresight. When we look back at the events, we can (relatively) easily construct a theory to explain the rationale behind the occurrence of these events. In fact, when we look back, the reasons are so obvious that one can easily be fooled into believing that “Only if we spend more time, carefully analysing and thinking through the situation at hand, we can completely avoid unwanted events in future.” Yet, time and again, we’ve always been caught by surprise and it almost appears to be impossible to predict such events ahead of time. Call it the Black Swan effect or whatever name you fancy.
This effect gives rise to a classic management dilemma – Predictability Paradox(pdf). In the zeal to improve the effectiveness and reliability of software development, managers institutionalise practices that unfortunately decrease, rather than increase, the predictability of the product’s success. Most companies spend an awful lot of effort and money to analyse the past, derive patterns and best practices, set targets and create processes to prevent past failure and produce ideal future goals. If software development was highly structured, if we had a stable environment and we had a good data points from million other projects, this approach might work. But for software development, which is a creative-problem solving domain, with high levels of uncertainty and each project having an unique context, these techniques (best practices) are rather dangerous.
In our domain,
- We need to break the vague problem down into small safe-fail experiments.
- Then execute each experiment in short iterative and incremental cycles.
- We need to focus on tight feedback loops, which will help us adapt & co-evolve the system. (We cannot be stuck with analysis paralysis.)
- We need to probe the system with experiments and find evolutionary practices.
- And then apply these practices in a given context, for a short duration.
- Speed and Sustainability are extremely important factors.
This is what I mean when I say “Action Precedes Clarity”.
June 12th, 2014
We are delighted to announce the first Functional Programming conference in Asia. Functional Conf will be hosted in Bangalore, India on Oct 9-11th. This is your golden opportunity to meet the Functional Programming community.
For over 35 years, functional programming has been a hot research topic. However in the last 5 years, driven by the need to build massively concurrent systems and to handle big-data, we’ve experienced a rapid adoption of functional programming concepts by diverse companies, ranging from tech start-ups to financial institutes.
These days, functional programming is at the heart of every, new generation programming technologies. Companies are employing functional programming to enable more effective, robust, and flexible software development. This has given birth to a very vibrant community of functional programmers, who are constantly exploring ways to bring functional programming concepts to the world of enterprise software development.
Functional Conf is designed to bring the growing community of functional programmers together under one roof. At Functional Conf:
- participants can understand the fundamentals concepts behind functional programming,
- they can learn how others are using functional programming to solve real world problems,
- practitioners can meet peers and exchange their experience,
- experts can share their expertise on practical usage and gotchas in functional programming concepts.
If you are interested in presenting at the Functional Conf, please submit your proposals at http://confengine.com/functional-conf-2014
Registrations have already started. Register now at http://booking.agilefaqs.com/functional-conf-2014
To know more about the conference, please visithttp://functionalconf.com
June 12th, 2014
We are delighted to announce that this year we’ll be hosting the 4th annual (official) Selenium Conference in Bangalore, India. This is your golden opportunity to meet the selenium and test automation community in general.
The goal of the conference is to bring together Selenium developers & enthusiasts from around the world to share ideas, socialise, and work together on advancing the present and future success of the project.
If you are interested in presenting at the Selenium Conf, please submit your proposals at http://confengine.com/selenium-conf-2014
Registrations have already started. Register now at http://booking.agilefaqs.com/selenium-conf-2014
To know more about the conference, please visit http://seleniumconf.org
May 14th, 2014
Recently, we announced the Selenium Conf 2014 to be held in Bangalore India. Based on my past experience running others international conferences for the last 10 years, I put together the following review process:
Interested speakers are requested to submit their proposals directly on our proposal submission system. All proposals will be public. Registered user of the submission system will be able to comment on your proposal. Submitters may also post comments on reviews or public comments of their own proposals to provide clarifications, explain revisions and respond to questions. Comments by public users are information that can be utilised by both the submitter and the review team. Ultimately the decision to accept a session resides with the program team, the program chair, and the conference chair.
Your proposal stands the best chance to be selected, if it’s unique, fully flushed, ready-to-go. Ensure you provide links to:
- previous conference or user group presentations
- open source project contributions
- slides & videos of your (present/past) presentations
- your blog posts or articles on this topic
- and so on.
Following is my rationale behind this review process for conferences:
- Fact: Writing a good proposal is one thing and Presenting on stage is a completely different thing. One could write really good proposal, but might be a poor speaker on stage. The conference attendees don’t care how good the speaker’s proposal was, they care how good was the delivery of the talk. Hence selecting proposals based on their ability to present rather than JUST their proposal becomes extremely important. I understand we want diversity and we want to give new speakers an opportunity. But do we really want a speaker on stage who has never presented anything ever? Hopefully they have presented at a local conference or a local user group or even within their company. If noting, they can do a short 5 mins screencast or video on the talk and upload that video. We want them to contribute to open source projects and write at least a blog or an article about it. My thinking is: what is the harm is asking speakers to provide us this info, so the community and the review team can make a better, more informed decision?
- Also along with this, using an open submission & review system, has the following advantages:
- The most important element it brings is the transparency. (Being an open community, I’m sure we all appreciate that element.)
- It really helps create a buzz for the conference. Which in-turn helps us get really good proposals and opportunity to get sponsorship.
- When I as a speaker, look at other proposals, I get encouraged to submit a proposal myself.
- Also in my experience the overall quality of the proposals increase because of the open eco-system and public feedback mechanism.
- With the help of public voting, the review team gets a good sense of which topics people are most interested. (Public voting can be gamed, but there are ways to limit it. Also we might not pick the exact proposal with the highest votes, but certainly select similar topic.)
- In the end, if the team still wants to do a blind selection, we can certainly export the proposals into a format they want and give them just the info they need. The approach we take is more open and allows us to achieve both options.
Would love to hear your experience.