# Developers: What's your process?



## digibucc (Aug 15, 2014)

In an effort to be BETTER, I am always on the lookout for new ideas in regards to my process when developing a site, and tools to get the job done. I don't want just web developers to reply though, as I know I can learn from coders as well. This is obviously a very rough list off the top of my head but I will elaborate as I go on.

*What's your process? What tools do you use?*

First:
- running linux (ubuntu).
- lamp stack on my development machine, serves for development and client previews
- languages: PHP / HTML / CSS / JS

I code in my IDE of choice, PHPStorm
- code directly to local web server root, changes live immediately.
- using PHPStorm's local vcs and git (as well as bitbucket) I have the ability to backtrack to the beginning.
- clone github projects using the integrated function when necessary.
- do the job 
- view changes immediately on local server, commit fixes, push milestones and upload via ftp
- I use virtual machines to test my sites in different configs, and I remote into my imac to test that
- I test in windows 7 and 8 (ie 10 & 11) chrome and firefox in windows, mac, and linux, as well as safari in mac.
- I use xcode's ios simulator to test iphone devices, and I use android x86 machines to test android

I'll add more as I think of it, but that's the meaty bits. Feel free to go into more detail.

What's your client interaction process?
do you use (a) development framework(s)?
do you use any time management techniques?
unit testing? code repositories? AWESOME RESOURCES?

share!


----------



## digibucc (Aug 16, 2014)

no one? !


----------



## Disparia (Aug 19, 2014)

At work:

I have partial administrative rights on 4 Windows Server 2008 R2 VMs; two dev and two production. Can install software, manage IIS 7.5, the database, etc.

Using Sublime Text, I open the fileshare on dev and edit those files directly. When it's time to push to production I use Winmege to review changes between the dev and production versions. The database is MSSQL so I use SQL Server Management Studio for database related stuff.

The user environment is IE10+, Firefox ESR, and Chrome running on Windows 7 and the latter two on MacOS so I have it pretty easy. I almost entirely use jQuery for javascript but no framework for PHP.


At home:

With Technet Subscriptions phased out I've been working a new home server which will probably run Ubuntu and MySQL. I don't freelance, so it's mostly for personal projects. Would still use Sublime Text, but there's MySQL Workbench for the database (Navicat is better, but is paid software).


----------



## GhostRyder (Aug 19, 2014)

digibucc said:


> In an effort to be BETTER, I am always on the lookout for new ideas in regards to my process when developing a site, and tools to get the job done. I don't want just web developers to reply though, as I know I can learn from coders as well. This is obviously a very rough list off the top of my head but I will elaborate as I go on.
> 
> *What's your process? What tools do you use?*
> 
> ...


Depends on what im doing but I have a general process I go through...

Normally I program in C++, Basic, Java, and Python though I have to do SQL work from time to time at the office when it involves servers issues.  But when it comes to programming I generally use a few different programs depending on what im trying to accomplish as different environments suit me more for different tasks.

I program in C++ inside of a solaris environment using a notepad and just running through the basic compilers written for me or that I have edited to the task.  But that is mostly when im doing basic simple tasks as I do not need much to complete it and its easy to run a virtual solaris environment from my personal server where ever I need to be.  Normally the process I go through with that is search my past work and check for code I may have already written and check to see if ti works or modify it for a new purpose.  All depends on what im doing...

When im writing for fun for some personal apps/games I work on in my free time and with friends its a completely different idea.  I sometimes use Visual Studio for the simplicity but mostly stick to notepad++ because it just works and is easy to see and find things.  Right now im working with a group of friends from school a few years back on a 3D game using a textbook engine we wrote together (Its not that great so do not think its special, its mostly based on textbook code with some adjustments here and there) but I normally just sit down pull up the notepad and run what is working of the game through the compiler and then decide what has not been done yet or whats broken and begin coding.  I sometimes pull up a video for a break when im stuck hoping that distractions will lead to inspiration or help me decipher the problem.  But I normally right now because of work spend only an hour or 2 a day on this task and a little more when we are all working together.

With that last task, we use some game developer textbooks from school for alot of the information we need when thinking about the system and we work with but our time is normally spent together talking about what has been accomplished and what needs to be done next to go on from there.  For instance last weekend we worked on just adding trees to the environment and they refused to be anchored properly (Caused by an issue in our cheap engine) and we spent about 2 hours discussing a way to fix this or where the issue lies because certain objects to not anchor well on sloped plains.  We ended up with a simple solution of creating an addition plain below the sloped areas and working on the art to match the slope just based on placement which solved the issue at least for now depending on the object but we may end up having to go back to the engine and figuring out a better way to fix it if possible.

All relative of course to what is being worked on...I am by no means an expert and even with my degree in CS I still have alot of work to do to get better at the tasks in general.


----------



## FordGT90Concept (Aug 21, 2014)

My process is really only three steps:
1) Solve the experimental problems.
2) Finish it (including tests/debugging).
3) Publish it (public testing/feedback).

#1 is what makes it worth doing.  If there are no experimental problems, I generally don't have the motivation to even begin the project.  If there's an experimental problem I don't have a solution for, I will not likely start the project.  Some projects of mine were delayed for years, for example, because I didn't have a vision for the user experience (e.g. the BOINC Config Utility); likewise, I have never started some projects because my goals for it are too ambitious and there's no clear solution to meet those goals.

For me, coding is about a minute of thinking and hours of busy work.  If that minute isn't really fascinating, it likely isn't worth tackling the hours.


----------



## Aquinus (Aug 21, 2014)

My process varies depending on what language I'm using and the dataset I'm working with. More often than not I need to work with a 100GB PostgreSQL database with whatever language I use at work. I have access to all of our servers, but we have two development servers. When I develop in Clojure, I need to get the project I'm working on, pull all the dependencies on it, then start a REPL before I start editing code in VIM. I use Fireplace.vim along with several other plugs to make writing a LISP in VIM as easy as possible (I dislike EMACS). Then you have your typical write code feedback loop until you're done.

The PHP code I write a little different because we have a Ruby script (which I wrote,) that basically pulls all of our PHP code repos, pulls them together, and creates a working site out of them (since most of our PHP are Moodle plugins.)

Deploying PHP code is pretty easy, but Clojure is a little different since it's a JVM language and compiles down to a jar, so a service container would be in order for any long-running Clojure service so you need to use something like Upstart or SysV-style startup scripts.

Other than that, development is pretty simple on my end. I should note that none of the development I do ever is on a GUI interface (only on a browser if I ever do). I almost exclusive develop using VIM as an editor.


----------



## Mindweaver (Aug 21, 2014)

Hmm let's see.. not in order and this is just website stuff?

Web Page stuff

notepad
notepad++
Microsoft visual studio 2010

SQL

MSSQL - SQL Server Management Studio

I'm probably forgetting something....


----------



## silentbogo (Sep 4, 2014)

*HOME: *Win7 + lightened combination of Apache2.4+PHP+MySQL
*HOME(TESTING): *Ubuntu 14.04 Apache && Nginx + PHP+MySQL
*WORK:* FreeBSD 10 and pretty much the same thing

Back in the day I've used a russian toolkit called DenWer (same as xAMPP, only much older), but over time it became too heavy and outdated. 

Coding tool of choice: Notepad++ and nano

When it comes to web design or PHP coding - I hate everything heavy and complicated. 
I've used Zend Studio and Code Gear PHP when I was in high school, but those days are over. No more training wheels.

I'm still trying to teach my cousin(almost a Bachelor of Computer Science!) that the best way to learn good coding ethics is by writing everything by hand.


----------



## MustSeeMelons (Sep 4, 2014)

Work - Eclipse & SVN, pgAdmin III, notepad++
Home - Eclipse, Visual Studio, notepad++

Usually I'm working with Java and SQL if needed, the process is as follows:

1) Understand what feature I have to do and what would be an acceptable implementation of it. If I'm not sure, ask the lead dev for some advice.
2) Do the coding, torture my local server long enough so everything seems to be working, upload to SVN
3) Wait till it hits the fan

I'm a new developer, so my process is quite simple. In the midst of trying something new - just started some PHP/MySQL with a WAMP server^^


----------



## Guitar (Sep 4, 2014)

The devs here all primarily use Macs and IntelliJ. I have tried Eclipse for a tutorial, hated it. I'm not a dev, btw. Lots of them used to use Eclipse and don't because IntelliJ is so much better apparently. I do DevOps but just switched to a Mac and find it much more useful than Windows for this, primarily because of the Terminal and the ease of being able to run Vagrant and the ChefDK and such. We use a paid version of GIT for repositories, switched from SVN and everybody seems to like the change. We do Java however.


----------



## Aquinus (Sep 4, 2014)

Guitarrassdeamor said:


> The devs here all primarily use Macs and IntelliJ. I have tried Eclipse for a tutorial, hated it. I'm not a dev, btw. Lots of them used to use Eclipse and don't because IntelliJ is so much better apparently. I do DevOps but just switched to a Mac and find it much more useful than Windows for this, primarily because of the Terminal and the ease of being able to run Vagrant and the ChefDK and such. We use a paid version of GIT for repositories, switched from SVN and everybody seems to like the change. We do Java however.



I use a Mac for work too, but I only use it for a browser and a terminal. Everything I do in on a dev server. Even for my own projects I will use my own "server".


----------



## silentbogo (Sep 4, 2014)

Guitarrassdeamor said:


> The devs here all primarily use Macs and IntelliJ. I have tried Eclipse for a tutorial, hated it. I'm not a dev, btw. Lots of them used to use Eclipse and don't because IntelliJ is so much better apparently. I do DevOps but just switched to a Mac and find it much more useful than Windows for this, primarily because of the Terminal and the ease of being able to run Vagrant and the ChefDK and such. We use a paid version of GIT for repositories, switched from SVN and everybody seems to like the change. We do Java however.


Haven't done much with Java lately, but when I had Java Programming course in college and Eclipse just became popular, I choose to go with NetBeans, because it was more intuitive than Eclipse at the time (but definitely not simpler).


----------



## BiggieShady (Sep 4, 2014)

I develop in C#, for web it's ASP.NET MVC, for web services its MVC WebAPI ... I do it all in Visual Studio plus single plugin (GitExtensions). All external libraries are added quickly with nuget through package manager console powershell.

For PHP web development I strongly reccomend one of the most supported Model-View-Controller frameworks, take your pick:


----------

