Technical-NGO / Technical-NGO.github.io

We develop applications for NGOs for free
https://Technical-NGO.github.io
MIT License
10 stars 14 forks source link

Proper organization of this community #5

Open shashank-sharma opened 6 years ago

shashank-sharma commented 6 years ago

Can we please organize our task in some way. There are few things which needs to be done first before going ahead.

Let me know if this thing will help, because our main concern is to take care of new comers so first we will do that. @kundanvishen Let me know if you agree with this, then we can work on it

kundanvishen commented 6 years ago

Awesome points @shashank-sharma . Let's proceed with these

aravindharinair commented 6 years ago

Along with these, include protocols for pushing files to the master repos...

shashank-sharma commented 6 years ago

Ok sure, I'll push few of the necessary details by today. :)

abdus commented 6 years ago

Hey guys, how about using Trello (https://trello.com) for managing and maintaining tasks?

shashank-sharma commented 6 years ago

@thisisabdus Let's focus on small things first, because our community is not that big right now. Will manage things if we will face an difficulty in future till then lets help each other :) What you say ?

abdus commented 6 years ago

I have no problems dude. Let's focus on work. :)

fayazara commented 6 years ago

It would be good, if everyone lets us know their skills, be it anything, content/documentation-writing, writing code, seo, Adobe suite, API calls etc, will help everyone to assign issues/tasks appropriately.

For example

I know HTML5 APIs,Jquery, Ajax, JSON standards, HTTP/s protocol, Google APIs well. This might help you assign a task.

aravindharinair commented 6 years ago

Well, I know HTML/CSS, basic Adobe Suite (Lightroom, Photoshop, Premiere Pro - in that order) and Python. I have experience with content editing but, I do prefer coding...

kundanvishen commented 6 years ago

It may seem like I'm trying to brag, but honestly, it is just to give you the right idea. I happen to pick up quite a few things,

HTML/CSS, Bootstrap, Javascript, SASS, JQuery, D3.js, APIs from Google, Facebook, etc, are some of the things that we would be using here which I happen to know.

In my regular job, I majorly work with:

Typescript, Angular, Gulp, WebSockets, Webpack, etc in frontend,

PHP, NodeJS, ExpressJS, Hapi, etc in server,

Postgres, MongoDB, SQL, Memcached, Redis, etc as DB,

I know a little DevOps, such as managing AWS EC instances, S3 storage, Lambdas, Heroku, Load Balancing (Nginx?), Continous Integration, etc.

Miscellaneous: HTTP, TCP/IP, WebSocket, protocols, Service/Web Workers, Oauth, Swagger, ElectronJS, PWAs, etc.

djdj1992 commented 6 years ago

I have mostly worked on server side technologies like PHP, ASP.NET, MVC and frontend I am comfortable with bootstrap.

Also have some knowledge of front end API Integration!

MorphyMeri commented 6 years ago

I would like to suggest something ! Create groups and assign group head (who are basically familiar with github and coding ), then assign new comers/beginners . the benefit is the group head can choose the issue and can assign to the beginners accordingly. Lets say there are 10 group heads and 5 people are assigned (according to skills,knowledge,etc) to each group head there will be 50 people excluding the group heads. The important thing is the group heads should know the skills of assigned people so that he can assign the right task for the beginners. This way it will be much organised. I also have the idea to select the group head and the assignment process, If you guys are interested i will follow up

aravindharinair commented 6 years ago

@MorphyMeri the group head idea is great :smile: but regarding them assigning the tasks, I'm not so sure. Personally, I think it'd be better for a new-comer to choose his/her own task as per what they feel comfortable in. They can coordinate with the heads assigned to them, to understand what they are supposed to do in detail and clear doubts while working on it. This is my personal opinion though.

shashank-sharma commented 6 years ago

@aravindharinair I agree what you said. Your point is that new-comer should feel comfortable about working on an issue rather than pressurizing him with the given task. But I guess we need some sort of maintainers so that the community organize properly. Let those maintainers help each new-comers on random if they find anyone in difficult situation

aravindharinair commented 6 years ago

@shashank-sharma , exactly. The maintainers/group heads would be assisting with tasks and monitoring them rather than assigning tasks.

MorphyMeri commented 6 years ago

@aravindharinair @shashank-sharma your point is good but new comer who is a beginner or not so familiar with github will struggle to find the tasks. what i meant is we need to assist them with tasks , or show them the right task to do.

MorphyMeri commented 6 years ago

Also it should be the Group head responsibility to know his team. This improves not just coding skills but also managing a team , co-ordination, etc.

MorphyMeri commented 6 years ago

@aravindharinair I have mentioned that the group head should know the skills of his team so that he can assign the right task, or simply the group head gives the list of issues and the group members will select the issue which they are comfortable in solving :)

aravindharinair commented 6 years ago

@morphymeri , I understood that. But even if the group leader learns the skills of his team, they will be different from their interests, don't you think? For example, @kundanvishen knows a whole lot of stuff, but he might be interested in particular areas like say Bootstrap and Angular but not that into NodeJS. So rather than assigning tasks as per skill, it would be better to do so based on interests. That was the reason why I suggested letting the group members choose their tasks (your concluding remark - head states task, members choose)

shashank-sharma commented 6 years ago

@MorphyMeri Let newcomers decide what they want to do. Like we will provide all set of easy issues available for that project. Then we will let them choose if they don't want to work then they will leave. We can't spoon feed to them

irshad2809 commented 6 years ago

Like @shashank-sharma suggested , well create list of tasks / work , then all members will select tasks which they are comfortable with . This may be bit complex/hard to manage/handle , but it will insure that everyone is able to do the task they have chosen.

shashank-sharma commented 6 years ago

@irshad2809 Exactly, but I want other people to understand and work for it. Like someone saying that I am working for website or something else. So that we can keep track of all progress and then plan next step. Then only we can plan of inviting new people else for everyone right now its looking confusing like what is happening

kundanvishen commented 6 years ago

@Technical-NGO/general

A good discussion going on here.

Here's how I think the events are going to roll on.

We will identify among ourselves who are already in the industry and have some projects under their belt. These are the people who will guide the beginners. What we have to understand here is that there's a difference between "doing the things, and doing them the right way".

As a beginner, you must accept that there would be scenarios where you would feel impossible to pull up a task, but with the right guidance, and the right approach towards problem-solving, you would do just fine.

Being a developer, this is what you would do during most of your carrier:

You would be given an impossible and daunting task. Your responsibility is to break the task into modules, and sub-modules until you arrive at a point where you can do those small tasks. Eventually, you would end up completing that task. Then find a better way to do the same task.

Coming to the point, We will create few teams with a mix of experience and skill. Every team would work on an independent project.

For TLs: It would be the responsibility of the team leader to break the project into modules/tasks, and assign the tasks to respective team members after the mutual agreement (very important). It would be the team leader's responsibility to ensure best development practice, ensure effective communication, and avoid any obstacles to development, help fellow developers with their doubts and be ready to take up the responsibility when and when the situation arises.

For Beginners: It's okay to make mistakes, that is how you learn! But it's not okay to make same mistakes repeatedly, try to find the solution on your own, trying googling up the things. Only when you see no other way, or you find yourself spending just too much time on a non-trivial problem, you go to your mentor. Try to take up more responsibilities, belief in yourself. If you don't then why would anyone else will?

I would be formatting this information in a better and elaborative way, later this week. And I would need help in doing so.

MorphyMeri commented 6 years ago

@kundanvishen well said . I have some ideas for selecting team leader. Idea-1: Select personally through idetification

Idea-2: Let us create a form with bunch of requirements(skill,time he can spend,projects etc) and ask for volunteers. Because we dont want people who are very busy as a team leader.

Idea-3: Selection through skill, People who are interested should go through a small assignment or test which will determine their interest , skill, etc. Because in some cases people who fill forms and who are skilled will be not be that interested or spend time here. So an assignment or test can eliminate any doubt of that person

The point here is to eliminate people who are busy and partially interested

kundanvishen commented 6 years ago

@MorphyMeri that's a really good advice, a balance of Idea-1 & 2 would be my approach. Idea -3? No one qualified enough would do that. 😆

MorphyMeri commented 6 years ago

@kundanvishen haha okay whatever works ! If you need help in anything ping me in slack

kundanvishen commented 6 years ago

Fill this document if you are willing to lead a team/project: https://goo.gl/forms/YAvCfVAdxV9bK3Ke2

crazyglasses commented 6 years ago

Hey, I wanted to ask if the group has a client ( an NGO for whom you are developing the software for ? ) or any general application ideas that would be acceptable for a wide variety of NGOs, maybe then a lot of people would get more clarity and the organization would grow.

aravindharinair commented 6 years ago

@crazyglasses , as of now, no. We don't have a client.

shashank-sharma commented 6 years ago

@crazyglasses @aravindharinair Before we even get any client we need people who are dedicated for this community and willing to contribute. As you can see the current status of this organization is offline. When we started this organization we had active members but then it slowly decreased to no active members. Let me know what you think about this.

aravindharinair commented 6 years ago

@shashank-sharma , I agree. Personally, I got hung up with Uni projects and exams and placement prep. I knows it's not a reason to not contribute here, but that's what happened. We need to bring back the old energy (and more contributions). I'll take the initiative and try to design a homepage. As the activity here increases, I hope more people would pitch in and contribute...

aravindharinair commented 6 years ago

@shashank-sharma , you can tick off the 3rd point for now. Minimum requirements met. And add new objective: make it better. :smile:

shashank-sharma commented 6 years ago

Sure, did that. Let's see what we can do, we might need one discussion with everybody and then move ahead.