Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Roadmap and the future of Will #257

Closed
skoczen opened this issue May 4, 2017 · 30 comments
Closed

Roadmap and the future of Will #257

skoczen opened this issue May 4, 2017 · 30 comments
Milestone

Comments

@skoczen
Copy link
Owner

skoczen commented May 4, 2017

Last Update: October 5, 2017

A Note from Steven

"Open source projects with no funding mechanism typically stagnate and die."
-GreenSock

I read that quote a few years ago when considering using GreenSock in a front-end product, and it stuck with me since, in both Will and my other projects. At first, the statement really bugged me - but as I looked objectively at my own long list of eventually guiltily abandoned open-source work, I realized there was a deep truth to it.

Will has gone on a similar journey - it was written with the support from a couple of my day jobs, and after those left, my time dried up, and the project started to stagnate.

That stagnation has bugged me for a long time, but I didn't really have a way to solve the problem until now.

What this document outlines is a future roadmap for Will that's both open-source and revenue-generating. A path that can keep the codebase active, healthy, and adding new features (First up: Slack), while also paying my (and hopefully other folks') bills - and with some luck, maybe even changing the world.

I recognize that a lot of people have contributed to will, and while many of you will be thrilled by the prospect of active, sustainable development, a few folks might have the "OMG WHAT KIND OF SELL OUT BULL*** IS THIS??!?!". To those folks, I'd like to reiterate - Will is open-source, and is going to stay that way. :)

Now let's talk about how.

Note: I use the royal "we" below because it feels more natural in the long-term. Right now it's just me, and it's awkward. Thanks for rolling with it.

Overall Project Structure and Goals

Will is being founded as a company, and with the core chat bot product, we'll have both the open-source library and a PaaS/SaaS service (ala Wordpress.com/.org). The core of the company is around an idea we call Personal AI.

(Read more about the mission at http://heywill.io/mission.)

This shift means growing the project to something much bigger than a hipchat bot, and into a write-once, run anywhere platform for chat bots, AIs, and fun new holy-crap-that's-amazing ideas.

The big goal is to provide an easy-to-build-on batteries-included platform that bridges modes of communication (HipChat, Slack, SMS, Email, Telegram, FB Messenger, etc) with services (IFTTT, Amazon AI, IBM Watson, Google APIs, etc) and built-in AI tools (NLP, ML, DL, etc).

This broader platform serves as an OS for AI development, and has the tremendously creative working name of AIOS.

Developers can build AIOS apps (our current plugins) for will using any and all of those tools, and run them on their personal wills or distribute them to a broader audience.

Will the company will focus, like Wordpress, on running the PaaS and SaaS platforms, and a marketplace for apps. Our goal is to keep Will development brisk, bring in talented folks across the spectrum, and keep Will available to anyone, anywhere on the planet, regardless of financial or technical access.

Project Roadmap

Here's the nuts and bolts of how, today, we see this rolling out.

0.9.4 - Just released, catches up almost all open PRs

1.0 - Soon, closes up existing issues, code cleanup and prep for improvements

2.0

  • Console / basic text client support, for ease of development and testing. Initial working implementation of IOBackend, but not guaranteed for backwards compatibility.
  • Initial split out of the "Brain" backends - analysis, generation, execution services that can be improved and swapped out (to replace the simple regex/run-everything current approach.)
  • Slack Support, IOBackend documented and working. PRs for new IOs accepted.

2.1 - API Support released, via an APIBackend implementation of IOBackend.

2.2 - IFTTT Support, SkillsBackend documented and working. PRs for new Skills accepted.

2.3 - Will UI, with on-the-fly config, plugin enable/disable, and restartability.

2.5 - App specs for AIOS and AIOSApp class released.

2.6 - Release of first five apps. TBD, but considered: (Image me, Remind me, Groceries, News Summary, Scattegories, Stale Package Finder)

3.0 - App Marketplace released, Git library integration released, and all existing Will plugins released as AIOS apps.

3.0+ - "The root of all evil is premature optimization." Releases after 2.0 are likely to move in a direction of improved AIOS features, more built-in AI tools, smarter and richer message processing and context, cross-app communication, and speed/reliability bumps. We'd also like to look at the feasibility of authoring apps in both Python and JS.

That said, this will really be determined after 2.0 is released, the launch craziness settles down, and we hear from the community and customers which directions need the most support, and what pain points folks are feeling the most.

We can't wait to have those discussions.

Release Schedule.

A new version of Will will be released on the 1st of every month, with a 12-month guarantee for IOBackend, SkillsBackend, API and AIOS APK function stability, and a minimum 6 month deprecation warning.

Questions and Comments

I've set up this issue to talk through this new direction, hear people's thoughts, comments, suggestions, and feedback.

I'm so excited to take will in this new, bigger direction, find consistent time and energy to keep him maintained, and grow him into something amazing together.

Thank you so much for contributing to will thus far, and I can't wait to see where we take him together!

-Steven

@BrianGallew
Copy link
Contributor

I wish you luck with this.

@brandonsturgeon
Copy link
Contributor

brandonsturgeon commented May 5, 2017

Will is being founded as a company

What does this mean?

These are some lofty ambitions. This will definitely take a lot of work.

How much of your time do you see this taking? Are you going to make this a priority, or Will this still be a side project?

In any case, this is an exciting prospect. I'd be happy to help in any way I can!

@skoczen
Copy link
Owner Author

skoczen commented May 5, 2017

@BrianGallew thanks!

@brandonsturgeon they are, and it will take a lot of work. :)

Long-term, this is going to be my full-time job. I'd guess it'll be about six months until I transition from here to there, but my intent is to give will a consistent set of hours every week, stick to the release schedule, and get and maintain consistent project momentum. There's also a chance that Will will be supported by this fellowship, though I won't know for a few months, and I do plan to move Will forward regardless.

I've been pitching this version of Will to places I've worked for the past few years, but nobody quite seems to be able to wrap their heads around it. Right now in my life I've got a window where I can give this a proper shot - and it's something I'd always regret not really going for - so I'm going! Here's hoping that all the failed startups I've founded have taught me enough to get the right folks around to make this one a success! :)

Glad you're excited, and can't wait to build it with you!

@wohali
Copy link

wohali commented May 5, 2017

Will is being founded as a company, and with the core chat bot product, we'll have both the open-source library and a PaaS/SaaS service (ala Wordpress.com/.org). The core of the company is around an idea we call Personal AI.

You need to start thinking about open source governance and what it means to your organization. It's not enough to slap an MIT/BSD/Apache license on the repo and think you'll continue to attract developers who aren't being paid, yet are lining your pockets with money. This is especially true if my fears are realized - that you are going to convert what is effectively a standalone program you can run entirely independently (will) to a thinner client that requires a service-based offering to operate. (I'm sure you're aware that you've already got a lot of competition in this space.)

As an Apache Software Foundation member, and a member of one of its project's Project Management Committees (Apache CouchDB), I have an admitted bias towards what the ASF has done - but there are other examples out there like the Linux Foundation, X.Org, etc. Our project is a great case study. Apache CouchDB has been incorporated into IBM/Cloudant's cloud-offering Cloudant. They provide a superset of functionality and a fully managed service that provides almost everything you can do by running CouchDB standalone. Just upload your data and you're ready to go. But you can very easily stand up your own server(s), replicate your data off of Cloudant and do most of the same things yourself, via the open source software. And over time, features that were exclusive to Cloudant have been open sourced, like the full-text and geospatial search indexes.

Some links on the ASF approach:

I guess the point I'm trying to make is that while EHF funding may gate your ability to get started, and sustaining your passion project via a self-started company may be fulfilling, without a long-term strategy on the open source front that respects both your code contributors and your users, and doesn't force them into a services-related model, you will bleed volunteer developers, and potentially users as well.

@skoczen
Copy link
Owner Author

skoczen commented May 5, 2017

Hey @wohali ,

Thanks for your thoughts - they're well-heard and appreciated!

To address a couple of points:

1. Open-source governance - I agree 100%. That conversation is part of why I'm having this one out in the open, and I welcome everyone's thoughts. I like the ASF approach, and think there are lots of smart people (Wordpress, Linux Foundation, Greensock) trying different approaches to making genuinely open-source software work from both business and free-like-speech perspectives. I'm not looking to reinvent any wheels on that front, and would be really happy to adopt an approach that's proven, well-documented, and makes sense for the project.

2. Thin Client/Service-based lock-in. I probably should have started with this one, since it's what I feel most strongly about. We're not doing this. :) From both an ethical and project-differentiation aspect, Will is and will remain something anyone can download, tweak, and run locally without any service subscription. Period.

I chose wordpress.com/.org as the example, because I think what they're doing maps to how I want to see Will grow on both fronts - you can download the full Wordpress software, run it on your computer, and be done. You can also pay them do run it for you, and manage upgrades, servers, etc. There's also a marketplace where developers can make plugins, get paid for writing them, and those plugins can be used both by folks who are running wordpress on their computers, and those using the hosted service. That's the model I'm aiming for here.

My broader aim with Will and the project is to make AI-based tools easier for everyday folks to pick up, use, remix, and create with. Functionally, this means both bundling in things like NLP, and ML and providing an easy option for people to connect their wills to useful third-party services.

I want Will to be a place folks can write their own useful AI/Bot tools, and have those tools be insulated against the rate of evolution and change that's inherent in the space. There's no reason anyone should have to rewrite a bot to move it from FB messenger to hipchat. That's one of the problems I'm hoping for this project to solve, but in a way that encourages portability, instead of lock-in.

As for competition - this is one space I actually don't see a lot of competition (though I'd love to hear/see projects that are taking this on that I've missed!) Currently, most of the players I know of in this space are using AI APKs to create platform lock-in. Will's goal is to do the opposite. Write your logic, run it whereever you want.

3. Minor clarification: EHF isn't funded - its main draw would be connecting to other smart folks, and raising the project's visibility. My pockets are very much not being lined. :)

My hope is that this long ramble provides some more context and color to the really important, spot-on issues you've raised. I'd love listen more, and continue this dialog.

@pepedocs
Copy link

pepedocs commented May 6, 2017

@skoczen

This is personal AI, and that is our mission.

The AI capability is interesting. In the context of a chat bot and particularly to Will, what does a Personal AI mean to you? How do you see Will being used as a personal AI, let's say everything goes well? Will it be the same as other existing intelligent chatbots out there? Would it be a platform for building AI-based plugins or would it simply be an integration point (which makes more sense to me) to some existing AI services out there? The mission is broad enough to attract a lot of questions, pardon me. Lastly, if this is revenue-generating what would be the value proposition for this particular "Personal AI"? To me Will's pythonic codebase and easy to deploy feature is what would attract me to use it, although operational-wise there are many things it needs to improve (e.g. high availability), but having it as an AI chat bot wouldn't make any difference to me, maybe at this stage only, it would be helpful to know your thoughts and answers about my questions.

@levithomason
Copy link

Long time no see buddy ;) The AI aspects of a chatbot may be something I'd be interested in dabbling with.

@chillipeper
Copy link
Collaborator

@skoczen congrats!! I think this is an awesome idea, and actually very happy to see this project live again. I am just diving in open source programming, and this sounds really interesting and challenging.

I will be following closely, and you can count with me for any help needed for it.

Cheers!

@skoczen
Copy link
Owner Author

skoczen commented May 7, 2017

@pepedocs great questions.

I see Personal AI as analogous to Personal Computing. Before the late 1970's/early 1980's, computers were big warehouses tended to by Really Smart People in Really Nice Lab Coats. They were used for Big Problems like weather, population, rockets, and profits. Then the PC was put out there - a smaller, less powerful, but much easier to use and accessible version of computers. People took it in entirely novel directions that Lab Coat folks didn't see coming. I see the same journey happening with AI.

As for where I see Will fitting in the broader space, it's as a platform/OS, with friendliness baked in. Will will come with some base, configurable behaviors, but also support AI Apps from anyone, similar to how apps augment what your smartphone can do. The goal is to make it so folks can write intelligence once, and have access to AI services without having do do all the annoying glue work. The OS is a great metaphor - *nix/Windows/MacOs made it so that devs like us could just make apps that work, without having to worry about device drivers or HTTP handling, etc. The goal for Will is to enable the same level of ease. People writing AI-based tools shouldn't have to handle configuring libraries, integrating with slack and sms, and figuring out how to distribute those tools to a broader audience. They should just be able to make the great thing. That's the goal.

Revenue - the value prop is a hosted will, with both SaaS and PaaS varieties - similar to how you can download wordpress, set up your own hosting (or run it on your computer), and have it work - or just pay them $10 a month and never worry about any of that stuff, security upgrades, uptime, etc.

I'd suspect that for a lot of folks who currently use will, they'll continue to host their own, hopefully building AI Apps that other people can use and install on their services. But there's a second round of users who are a bit less technical but still want a useful, helpful bot. People who could figure out pip installing or setting up Heroku, but who would rather just pay $10 and have it done. Those are the first round of who I'd see as paying customers.

Also, to be completely clear (and repeat myself because it's important), there will always be an option to download will, run it on your own computer or server, and do your thing. It's critical to me that access to AI is spread as widely and freely as possible - I think of this as a key moral imperative in the developing, AI-driven economy, and it's not something I'm going to bend on, or let this project compromise on.

Hope that answers some questions - keep 'em coming! If you have questions, odds are good that plenty of other folks have the same.

@levithomason hey! Awesome, would love to have your smart helping make him better!

@chillipeper Fantastic! Would love your help - the more smart brains we've got, the better.

One area I haven't been good at thus far is coordinating parts that are on the roadmap (or even communicating the roadmap), and linking up with places people want to contribute. Anyone have thoughts on better ways to do that?

@skoczen skoczen mentioned this issue May 7, 2017
@brandonsturgeon
Copy link
Contributor

@skoczen

One area I haven't been good at thus far is coordinating parts that are on the roadmap (or even communicating the roadmap), and linking up with places people want to contribute. Anyone have thoughts on better ways to do that?

How about a Hipchat server? :p

Really any chat program would be a great choice to get, everyone on the same page. Being able to casually communicate in a near-instant manner about the project is extremely helpful.
Discord is popular these days, but Hipchat or Slack would both be good platforms.

Hipchat might be a good choice because we could quickly have the master-branch Will running on there 24/7.

Slack would be an interesting choice because then we have some immediate incentive to get Will to be slack-compatible.

Gitter is also a good choice, and it's development-oriented.

@skoczen
Copy link
Owner Author

skoczen commented May 8, 2017

@brandonsturgeon great suggestion. I'd lean toward slack at the moment, both because it gives an even stronger incentive to teach will how to use it, and because it's (selfishly) where I live most of the time these days. I'm adding this to my to-do list, and will update here when it's set up!

@pepedocs
Copy link

pepedocs commented May 9, 2017

@skoczen Thanks for answering my questions and sharing your thoughts as well.

One area I haven't been good at thus far is coordinating parts that are on the roadmap (or even communicating the roadmap), and linking up with places people want to contribute. Anyone have thoughts on better ways to do that?

Github, Google Groups, and Slack IMO would be the best tools to use for a start since they all require less overhead to setup and use.

@skoczen
Copy link
Owner Author

skoczen commented May 11, 2017

Just a note - I've set up a slack org for will - feel free to hop in here:
https://heywill.slack.com/signup

@brandonsturgeon
Copy link
Contributor

@skoczen We can't join via that signup link because we don't have a @heywill.io email address.

I'm not super familiar with Slack, but one option is to manually shoot us invites. That's a bit laborious though, haha.

@skoczen
Copy link
Owner Author

skoczen commented May 11, 2017

@brandonsturgeon thanks for the report! Weird, thought it was the link anyone could join from - will check out and get another to you in the AM - thanks for your patience!

@chillipeper
Copy link
Collaborator

@skoczen can I get an invitation as well? Don't own a @heywill.io email either

@skoczen
Copy link
Owner Author

skoczen commented May 11, 2017

@chillipeper yep, it'll be open to anyone - also, I have a reply to you on my todo list - thanks for your patience! I'm trying to reclaim my inbox from being a place things (including me) go to die. It's a process. :)

@skoczen
Copy link
Owner Author

skoczen commented May 15, 2017

@antgel
Copy link
Contributor

antgel commented Jul 17, 2017

Invite link not active. Anyway, hello good people. We're looking to migrate from Hipchat to Rocket.Chat. Anyone here familiar with that excellent project? Before I go trying to rewrite our Will code in Hubot, anyone interested in implementing Will support for Rocket.Chat? I believe (not 100%) it's meant to be API-compatible with Slack.

Edit: Diego from the RC team told me:

We plan to have a compatible API, but currently they are not compatible.. our endpoints are very similar, but the payload is different.

@wohali
Copy link

wohali commented Jul 17, 2017

It's not the same API, no, but you use a Meteor client to interact.

@brandonsturgeon
Copy link
Contributor

I think the idea was to make it compatible with many different platforms. I'm sure there will be a structure which will allow for easy API integration plugins.

@skoczen
Copy link
Owner Author

skoczen commented Jul 17, 2017

@antgel here's a new link: https://join.slack.com/t/heywill/shared_invite/MjEzNDMwNjE5NjMzLTE1MDAzMjQ3MTItYmVhZjVmMDk4ZQ

As for support for rocket.chat, I'd definitely be open to it - the refactor branch has pluggable backends at the moment, and the interface is about 90% stable (and working on slack, hipchat, and shell.) Let me know if you (or anyone else) is interested in jumping in!

@digitalfiz
Copy link

Any chance of some Python 3 support?

@skoczen
Copy link
Owner Author

skoczen commented Sep 28, 2017

@digitalfiz yep - see #266 . It's on the roadmap!

@skoczen
Copy link
Owner Author

skoczen commented Sep 29, 2017

Quick note here that I've changed version numbers on the roadmap to more easily and clearly let people upgrade. Current, hipchat-only will is the 1.x releases, and the multi-service, AI-based apps are 2.x.

@skoczen skoczen added this to the 2.0 milestone Sep 29, 2017
@hobson
Copy link
Contributor

hobson commented Sep 29, 2017 via email

@skoczen skoczen mentioned this issue Oct 18, 2017
76 tasks
@skoczen
Copy link
Owner Author

skoczen commented Nov 7, 2017

Closing this up, as 2.0 is out, and the roadmap is in the docs!

@skoczen skoczen closed this as completed Nov 7, 2017
@pgcorchary
Copy link

Is it possible to use Will Bot with MS Teams, and if not is there consideration for that in the (near) future? My organization uses Will Bot on HipChat today, but we are being required to abandon all messaging platforms in favor of MS Teams....

@pastorhudson
Copy link
Contributor

I'm not a core dev or anything, but a quick google search found that MS Teams has an api and there are python wrappers for it. So I don't see why a will bot backend for MS Teams couldn't be added if someone wanted to take a stab at it.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests