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

The (Larger) Hoodie Roadmap #88

Open
janl opened this issue Jan 4, 2016 · 5 comments
Open

The (Larger) Hoodie Roadmap #88

janl opened this issue Jan 4, 2016 · 5 comments

Comments

@janl
Copy link
Member

janl commented Jan 4, 2016

Hey everyone,

Welcome to another instalment in suggestions on how we can communicate and coordinate our activities in this project for the larger outside world.

This time, it is a suggestion for how we define the next three major milestones in the project. This is less version numbers on the Hoodie software, and more where we want to be, whom we want to address and how we talk about it.

This is, I repeat, a suggestion, so if you don’t like a particular part here, please suggest an improvement. If you have an overall better idea, let us know, so we can throw this one away. Either way, let us know what you think, and help out to flesh out the details :)

This is mostly @gr2m’s idea with me writing it all up,


I’m using this illustration (thank you @gr2m!) as a an, ahem, illustration.

hoodie-road

Milestones

The larger milestones are:

1. Contributors
2. Developers
3. Users

Let me explain:

1. Contributors

This is the most immediate milestone (and we are nearly there already). The Hoodie software barely holds together and works in its most basic form: Install, sign up / sign in / store / sync data. That’s it. (we have a preview) (we have a preview). At this point, Hoodie doesn’t have plugins (because) and there are a lot of small little starter issues, that allow new contributors to flock to Hoodie to help grow from a tent into a house.

Wait what? Tent? House?

Interlude: The Hoodie Tent Analogy

The Hoodie Castle, formally Hogwarts

We’ve been calling our next development milestone “the Hoodie tent Camp release” informally. The idea is this: Hoodie, eventually, is going to be this big castle that has a fancy door, spectacular roofs, a few wings, gigantic windows with glorious views and whatever else it takes to make a big castle.

Up until eight months ago, we’ve had Hoodie built up to be a nice, standalone house that a large family could comfortably live in. It showed Hoodie’s potential and got a lot of people interested and we’ve got a good number of apps built with it and it’s even being used commercially. A full success.

To build the house we’ve taken a lot of shortcuts and before we wanted to call Hoodie “1.0 Stable”, we wanted to take out the shortcuts and fill in the paper-maché with proper cement (or whatever the house you are imagining is built of ;).

In order to fill everything though, we had to dismantle the exsiting house, work on all the parts and put them together again. We are now at a point where we’ve put up just the very basic things that make up Hoodie, and put a flysheet over it: the tent. You can sleep in it, it is perfectly adequate shelter, for a few nights, or a week if you have to.

The Hoodie Tent

In the coming weeks and months, we’ll take the tent and put up wooden walls around it, and a roof over it, so we can take out the tent, and then Hoodie is a shed, and then we switch out the walls for brick walls and put tiles on the roof and we are back to the house and then we keep going until we have our castle.

This concludes the interlude


The goal of this milestone is to attract contributors, people who care about Hoodie and help move it forward, be it with code, documentation, design or editorial work.

One of the main ways to get contributors are for the existing community to help write and curate and promote high quality starter issues.

Combined, we’ll all move Hoodie towards the second milestone, developers.

2. Developers

The second milestone is where we want to invite the larger development community to Hoodie. Hoodie now works with its core feature set (accounts, storage, tasks, sync) and it has a well-defined and stable plugin architecture that allows everyone to extend Hoodie, either on the client, the server or in the admin dashboard (or two or all of these).

Hoodie at this point will be a great rapid prototyping tool for frontend web developers and everyone who wants to be one. The core feature-set is working, but people will want more features and integrations with existing technologies and services. And they will be able to build plugins to fit their needs.

Writing plugins will be copiously documented, plugins will be listed on http://plugins.hood.ie automatically, when published to npm, and we’ll all work on making Hoodie more compelling for ever more people.

Our practice of focussing on starter-friendly issues helps us to attract ever more contributors, for Hoodie core and for any plugins. Together, we’ll finally reach the next milestone, users.

3. Users

Hoodie’s eventual goal is to empower people to be creative with technology. We have a long way ahead of us, but we are definitely on the right path and we have the right people to get this off the ground, and we have a good plan (see milestones 1. and 2.) and we can finally turn our attention continuing to simplify all aspects of getting started with Hoodie and getting results with Hoodie, so people who’d otherwise turn to tools like Access, Excel or, Grohl forbid, Lotus Notes, to solve their problems, be it personal, for friends and family, or business and productivity.

With a community that is chock full of designers, developers, writers, marketers, and so on…, and with a culture of inviting new people to join the project with minimal effort and time commitments, we are in a position where Hoodie can be the empowering, diverse and independent project we all want it to be.


I know this is high level and not very concrete, but we are really really interested in what you think about chopping up our efforts this way.

Once we have this all a little more clearly defined after hearing everyone’s feedback, we want to make an effort to put a shorter version of this on the frontage on http://hood.ie, so that it is clear where Hoodie stands toady and where it is going, and how people can join to help.

@ransomw
Copy link

ransomw commented Jan 5, 2016

this is an interesting analogy, kind of like the cathedral and bazaar analogy.

the component i'd like to see addressed is, "who do you expect these contributors, developers, and users to be?" i'll take the tack of considering users and backtracking.

i started using hoodie in large part b/c of the core values espoused at http://hood.ie , particularly the idea that web development should be more accessible. there's a lot of progress on this front for static sites: wordpress, square, and lektor, for instance. to me, building a site with one of these pieces of software is programming, just as much as using LabView, a drum machine, or even moving desktop icons around really is programming.

is making a "CRUD site generator" a reasonable long-term goal for hoodie or a reasonable use-case for the direction that core devs see hoodie going? imo, such a program is the only thing that will be immediately accessible to people who use Excel, etc.. honestly, sometimes i think people who use text-file-based programming languages appear to be witches to people who are only comfortable interfacing with their computer in a way that involves tabs, buttons, text boxes, and the like... or maybe i just want to post this awesome goya painting.

witches coven

admittedly, things get a bit dicey here b/c i'm talking about specific targets. otoh, moving further in the direction from defining core values to considering specific targets and use-cases will help javascript users decide whether they want to consider contributing their time to hoodie as contributors or developers.

let's say that the general-purpose CRUD site generator case fails. would you then consider making several domain-specific web app generators? what are the other options for the end-user step?

enough of that direction

from the contributor end, how about a groups and permissions system akin to Django's? this is something i might like to contribute as it could be useful in a particular project i'm toying with. moreover, considering this specific proposition illustrates the sort of politico-social growing pains that hoodie will face from the contributor and developer perspectives, particularly if "users" are not considered up front.

so let's say that groups and permissions aren't something hoodie decides to include at this time. maybe it will be a plugin later. in that case, i replace hoodie calls with some other backend in an angular service or whatever abstraction layer, maybe losing offline-first features or something else that hoodie provides but that i place at a lesser value than groups and permissions (or whatever). as a result i'm in the hoodie [tent|castle|cathedral|bazaar] less often.

if groups and permissions --- or, really, whatever idea. i would appreciate a response regarding this particular feature, but most of the considerations here generalize --- is a feature you want in hoodie, then there's more branching: who contributes it? how? of course, these things aren't entirely algorithmic, or at least not deterministic.

one off the wall idea

i've seen some questions about "scalability". ok, so yes, scaling single application instances is important, it's "just" a matter of getting that done. what about distributed scaling across app instances? in particular, how about a pub-sub mechanism? combined with groups and permissions, i think this would go a long way toward the core value of independence, not just of hoodie's users but of the users of the things that hoodie users build.

tangentially...

there's bound to be some project that can be reused or at the very least some code that can be recycled for a pub-sub or some other type of server-server sync. i've a predilection for codebases like Flask or the Clojure ecosystem that favor composition of small pieces over comparative monoliths like Django. i mean, i really like Django for a lot of reasons, but i think there's a case for not reinventing the wheel in your project, even if users of your project have to repeat themselves occasionally.

.......................

anywho, it's been fun. i'm curious to hear other replies from the community.

@pocmanu
Copy link

pocmanu commented Jan 6, 2016

I'm not really sure how to contribute to the discussion. What I can say, is that for the moment, I think Hoodie lacks some visibility to achieve the milestone 2. It is quite fine for now as the new Hoodie is not yet finalized but will soon become a priority.

What amuses me is that you mention Lotus (IBM) Notes which is a system on which many applications were built in the company I work for. In order to get rid of it, and because we need the offline part, we set up a pretty heavy architecture, with a heavy client, a web site, web services for synch, ... From my opinion as a Business Analyst (i left the developpement side not so long ago), it is really, really heavy. Any new functionality requires developpement on both sides plus backend for synch, and we reach too long dev times.

I stumbled upon Hoodie because of this, I was looking for a way to have an offline web site and I first found PouchDb, which finally led me to Hoodie.

What I want to say is that, I had a very specific requirement, to do a very specific research, to come learn Hoodie.

I think that for step 2, the Hoodie team will have to communicate, but not only create tutorials, and blog posts, but also have some well known (meaning followed) people grab interest for Hoodie. Just as an example, Minko Gechev, as an Angular2 contributor, teacher at Sofia university, very active in the Angular community, could be interested and also provide Hoodie with quite a larger public. I mention him because I'm interested in Angular2 currently and I follow him because he makes interesting talks, projects, ... but I'm pretty sure we can find plenty of great people who can be happy to discover and share Hoodie.

@ianstalter123
Copy link

From my perspective Hoodie is very interesting because it has a large community of active contributors and starter issues, but I haven't spent much time attempting to build apps with it. I think it would be useful to pick one front-end framework (Angular/React) to integrate with Hoodie starter examples and build out various examples of apps with that framework + Hoodie in increasing complexity, in order to show some of the front-end / developer/ potential, and also maybe show some of the limits of what could be done with it.

In terms of increasing the visibility and usability of it, I agree with @pocmanu that having some well known people grab interest would be useful. In addition perhaps integrating Hoodie with some other trending technologies right now like React/Webpack/Angular2/ES6, and showing strong use cases for these would open it up more to the public and pull more contributors/tinkerers. (Or maybe picking one front end framework and using it as a default for a Hoodie starter app). Having a more user friendly admin panel/ (or CRUD generator style) would also be useful so that the final users wouldn't have to think too much about the configuration / setup.

@gr2m
Copy link
Member

gr2m commented Jan 6, 2016

@ransomw groups / group permission is something we thought a lot about already. I'm not sure if it will be part of the Hoodie Account Core functionality or if we will do it with plugins, but we can start discussing APIs / technical concepts. I can put our thoughts into an issue and ping you

@pocmanu @ianstalter123 I’m pretty sure we have enough "well known people" that are friends of Hoodie and know the project. They are just not active with it because it’s not in the right state yet. But once we ship milestone II, we will do more outreach to grow the Hoodie’s eco system of plugins, apps, tutorials etc.

@varjmes
Copy link

varjmes commented Jan 10, 2016

Ok, I finally read this!

In general, I like the the idea. It's hard for me to visualise it in my head without concrete examples and visual evidence and this idea is very surface level for now.

Some things:

  • We need to work to improve our starter issues. Gregor is doing a fantastic job so far but sometimes they still assume more knowledge than sometimes someone might have. Also we should think about having 2-3 people who write starter issues as Gregor simply cannot have the time to do them all :)
  • We should review the tutorials we have on the website.
  • We should create a "how to put your app online" tutorial, I think this is one part where we are severely lacking. Putting your app online is the thing that takes a dev from "i have built a localhost todo app, cool!" to "holy crap people are using my thiiiiing omgomgomgomgomgomgomg"

As a contributor of Hoodie, I still don't really understand what is going on, what people are working on, and what the changes we are making actually are_. I have mentioned this before and Jan said they would test new things on me, so please do! It's a great way for me to learn *and_ as a complete beginner I can help make sure it suits that audience.

Our Editorial Team will be key to the journey, too.

Thanks for the roadmap @janl and @gr2m :)

*This doesn't mean you are doing a bad job, it just means that as someone who hasn't been involved in the development process of Hoodie, it isn't very visible to me

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

6 participants