Pros
An extraordinary level of flexibility in where/how you work in software development. Many IBMers work at home. This is great for allowing time to deal with the demands of life.
Cons
The pressure to perform and deliver is intense and consistent while the reward is 'having a job'. The flexibility (ability to work at home at any hour) also has the ability to morph into a strong negative depending on your managements expectations and people skills. You will be expected to work from home during the evenings/late night. You will be expected to work weekends when management deems it necessary. Management will send you email on the weekend and expect a response. Management will call you on the weekend to instruct you to work on a hot problem/defect.